怎么入门mysql 初学mysql

MYSQL数据库初学者使用指南有很多朋友虽然安装好了mysql但却不知如何使用它 在这篇文章中我们就从连接MYSQL 修改密码 增加用户等方面来学习一些MYSQL的常用命令一 连接MYSQL 格式 mysql h主机地址 u用户名-p用户密码 例 连接到本机上的MYSQL 首先在打开DOS窗口 然后进入目录 mysqlbin 再键入命令mysql uroot p 回车后提示你输密码 如果刚安装好MYSQL 超级用户root是没有密码的 故直接回车即可进入到MYSQL中了 MYSQL的提示符是 mysql 例 连接到远程主机上的MYSQL 假设远程主机的IP为 用户名为root 密码为abcd 则键入以下命令 mysql h uroot pabcd退出MYSQL命令 exit (回车)二 修改密码 格式 mysqladmin u用户名 p旧密码 password 新密码 例 给root加个密码ab 首先在DOS下进入目录mysqlbin 然后键入以下命令mysqladmin uroot password ab 注 因为开始时root没有密码 所以 p旧密码一项就可以省略了例 再将root的密码改为djg mysqladmin uroot pab password djg三 增加新用户 (注意 和上面不同 下面的因为是MYSQL环境中的命令 所以后面都带一个分号作为命令结束符)格式 grant select on 数据库 * to 用户名@登录主机 identified by 密码 例 增加一个用户test 密码为abc 让他可以在任何主机上登录 并对所有数据库有查询 插入 修改 删除的权限 首先用以root用户连入MYSQL 然后键入以下命令 grant select insert update delete on * * to test @ % Identified by abc ;但例 增加的用户是十分危险的 你想如某个人知道test 的密码 那么他就可以在internet上的任何一台计算机上登录你的mysql数据库并对你的资料可以为所欲为了 解决办法见例 例 增加一个用户test 密码为abc 让他只可以在localhost上登录 并可以对数据库mydb进行查询 插入 修改 删除的操作(localhost指本地主机 即MYSQL数据库所在的那台主机) 这样用户即使用知道test 的密码 他也无法从internet上直接访问数据库 只能通过MYSQL主机上的web页来访问了 grant select insert update delete on mydb * to test @localhost identified by abc ;如果你不想test 有密码 可以再打一个命令将密码消掉 grant select insert update delete on mydb * to test @localhost identified by ;注意 你必须首先登录到MYSQL中 以下操作都是在MYSQL的提示符下进行的 而且每个命令以分号结束 四一 操作技巧 如果你打命令时 回车后发现忘记加分号 你无须重打一遍命令 只要打个分号回车就可以了 也就是说你可以把一个完整的命令分成几行来打 完后用分号作结束标志就OK 你可以使用光标上下键调出以前的命令 但以前我用过的一个MYSQL旧版本不支持 我现在用的是 mysql beta win五 显示命令显示数据库列表 show databases;刚开始时才两个数据库 mysql和test mysql库很重要它里面有MYSQL的系统信息 我们改密码和新增用户 实际上就是用这个库进行操作显示库中的资料表 use mysql //打开库 学过FOXBASE的一定不会陌生吧show tables; 显示资料表的结构 describe 表名; 建库 create database 库名; 建表 use 库名 create table 表名 (字段设定列表)删库和删表:drop database 库名;drop table 表名将表中记录清空 delete from 表名; 显示表中的记录 select * from 表名;六 一个建库和建表以及插入数据的实例 drop database if exists school; //如果存在SCHOOL则删除create database school; //建立库SCHOOLuse school; //打开库SCHOOLcreate table teacher //建立表TEACHER(id int( ) auto_increment not null primary key name char( ) not null address varchar( ) default 深圳 year date); //建表结束//以下为插入字段insert into teacher valuess( glchengang 深圳一中 );insert into teacher valuess( jack 深圳一中 );注 在建表中( )将ID设为长度为 的数字字段:int( )并让它每个记录自动加一:auto_increment并不能为空:not null而且让他成为主字段primary key( )将NAME设为长度为 的字符字段( )将ADDRESS设为长度 的字符字段 而且缺省值为深圳 varchar和char有什么区别呢 只有等以后的文章再说了 ( )将YEAR设为日期字段 如果你在mysql提示符键入上面的命令也可以 但不方便调试 你可以将以上命令原样写入一个文本文件中假设为school sql 然后复制到c:下 并在DOS状态进入目录mysqlbin 然后键入以下命令 mysql uroot p密码c:school sql如果成功 空出一行无任何显示 如有错误 会有提示 (以上命令已经调试 你只要将//的注释去掉即可使用)七 将文本资料转到数据库中文本资料应符合的格式 字段资料之间用tab键隔开 null值用n来代替 例rose 深圳二中mike 深圳一中数据传入命令 load data local infile 文件名 into table 表名;注意 你最好将文件复制到mysqlbin目录下 并且要先用use命令打表所在的库八 备份数据库(命令在DOS的mysqlbin目录下执行)mysqldump opt schoolschool bbb注释:将数据库school备份到school bbb文件 school bbb是一个文本文件 文件名任取 打开看看你会有新发现 后记 其实MYSQL的对数据库的操作与其它的SQL类数据库大同小异 您最好找本将SQL的书看看 我在这里只介绍一些基本的 其实我也就只懂这些了 呵呵 最好的MYSQL教程还是 晏子 译的 MYSQL中文参考手册 不仅免费每个相关网站都有下载 而且它是最权威的 可惜不是象 PHP 中文手册 那样是chm的格式 在查找函数命令的时候不太方便 lishixinzhi/Article/program/MySQL/201311/29306
MySQL新手如何快速入门一、SQL速成
以下是一些重要的SQL快速参考,有关SQL的语法和在标准SQL上增加的特性,请查询MySQL手册 。
1.创建表
表是数据库的最基本元素之一 , 表与表之间可以相互独立,也可以相互关联 。创建表的基本语法如下:
create table table_name
(column_name datatype {identity |null|not null},
…)
其中参数table_name和column_name必须满足用户数据库中的识别器(identifier)的要求,参数datatype是一个标准的SQL类型或由用户数据库提供的类型 。用户要使用non-null从句为各字段输入数据 。
create table还有一些其他选项,如创建临时表和使用select子句从其他的表中读取某些字段组成新表等 。还有,在创建表是可用PRIMARY KEY、KEY、INDEX等标识符设定某些字段为主键或索引等 。
书写上要注意:
在一对圆括号里的列出完整的字段清单 。
字段名间用逗号隔开 。
字段名间的逗号后要加一个空格 。
最后一个字段名后不用逗号 。
所有的SQL陈述都以分号";"结束 。
例:
mysql CREATE TABLE test (blob_col BLOB, index(blob_col(10)));
2.创建索引
索引用于对数据库的查询 。一般数据库建有多种索引方案,每种方案都精于某一特定的查询类 。索引可以加速对数据库的查询过程 。创建索引的基本语法如下:
create index index_name
on table_name (col_name[(length)],... )
例:
mysql CREATE INDEX part_of_name ON customer (name(10));
3.改变表结构
在数据库的使用过程中 , 有时需要改变它的表结构,包括改变字段名,甚至改变不同数据库字段间的关系 。可以实现上述改变的命令是alter,其基本语法如下:
alter table table_name alter_spec [, alter_spec ...]
例:
mysql ALTER TABLE t1 CHANGE a b INTEGER;
4.删除数据对象
很多数据库是动态使用的,有时可能需要删除某个表或索引 。大多数数据库对象可以下面的命令删除:
drop object_name
mysql DROP TABLE tb1;
5.执行查询
查询是使用最多的SQL命令 。查询数据库需要凭借结构、索引和字段类型等因素 。大多数数据库含有一个优化器(optimizer) , 把用户的查询语句转换成可选的形式,以提高查询效率 。
值得注意的是MySQL不支持SQL92标准的嵌套的where子句,即它只支持一个where子句 。其基本语法如下:
SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [HIGH_PRIORITY] [DISTINCT | DISTINCTROW | ALL]
select_expression,... [INTO {OUTFILE | DUMPFILE} 'file_name' export_options] [FROM table_references [WHERE where_definition] [GROUP BY col_name,...] [HAVING where_definition] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...] [LIMIT [offset,] rows] [PROCEDURE procedure_name] ]
其中where从句是定义选择标准的地方,where_definition可以有不同的格式,但都遵循下面的形式:
字段名操作表达式
字段名操作字段名
在第一种形式下,标准把字段的值与表达式进行比较;在第二种形式下,把两个字段的值进行比较 。根据所比较的数据类型,search_condition中的操作可能选以下几种:
= 检查是否相等
!= 检查是否不等
(或=) 检查左边值是否大于(或大于等于)右边值
(或=) 检查左边值是否小于(或小于等于)右边值 [not] between 检查左边值是否在某个范围内 [not] in 检查左边是否某个特定集的成员 [not] like 检查左边是否为右边的子串
is [not] null 检查左边是否为空值
在这里,可以用通配符_代表任何一个字符,%代表任何字符串 。使用关键字、和可以生成复杂的词 , 它们运行检查时使用布尔表达式的多重标准集 。
例:
mysql select t1.name, t2.salary from employee AS t1, info AS t2 where t1.name = t2.name;
mysql select college, region, seed from tournament
ORDER BY region, seed;
mysql select col_name from tbl_name WHERE col_name0;
mysql怎么用操作步骤如下:
1、打开任务管理器、-、启动、MySQL、服务(右键、开始(S)、即可)怎么入门mysql,
2、打开下载好的连接工具、Navicat、选择要连接的数据库(MySQL、、、)
3、弹出、MySQL、-、新建连接、窗口怎么入门mysql,
4、完成以上步骤之后怎么入门mysql,点击、测试连接,
5、出现、连接成功、,完成啦,
MySQL数据库新特性之存储过程入门教程 在MYSQL 中 终于引入了存储过程这一新特性 这将大大增强MYSQL 的数据库处理能力 在本文中 将指导读者快速掌握MYSQL 的存储过程的基本知识 带领用户入门
存储过程介绍
存储过程是一组为了完成特定功能的SQL语句集 经编译后存储在数据库中 用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它 存储过程可由应用程序通过一个调用来执行 而且允许用户声明变量 同时 存储过程可以接收和输出参数 返回执行存储过程的状态值 也可以嵌套调用
存储过程的优点
作为存储过程 有以下这些优点
( )减少网络通信量 调用一个行数不多的存储过程与直接调用SQL语句的网络通信量可能不会有很大的差别 可是如果存储过程包含上百行SQL语句 那么其性能绝对比一条一条的调用SQL语句要高得多
( )执行速度更快 存储过程创建的时候 数据库已经对其进行了一次解析和优化 其次 存储过程一旦执行 在内存中就会保留一份这个存储过程 这样下次再执行同样的存储过程时 可以从内存中直接中读取
( )更强的安全性 存储过程是通过向用户授予权限(而不是基于表) 它们可以提供对特定数据的访问 提高代码安全 比如防止 SQL注入
( ) 业务逻辑可以封装存储过程中 这样不仅容易维护 而且执行效率也高
当然存储过程也有一些缺点 比如
可移植性方面 当从一种数据库迁移到另外一种数据库时 不少的存储过程的编写要进行部分修改
存储过程需要花费一定的学习时间去学习 比如学习其语法等
在MYSQL中 推荐使用MYSQL Query Browswer()这个工具去进行存储过程的开发和管理 下面分步骤来学习MYSQL中的存储过程
定义存储过程的结束符
在存储过程中 通常要输入很多SQL语句 而SQL语句中每个语句以分号来结束 因此要告诉存储过程 什么位置是意味着整个存储过程结束 所以我们在编写存储过程前 先定义分隔符 我们这里定义 // 为分隔符 我们使用DELIMITER //这样的语法 就可以定义结束符了 当然你可以自己定义其他喜欢的符号
如何创建存储过程
下面先看下一个简单的例子 代码如下
DELIMITER //CREATEPROCEDURE `p ` ()LANGUAGE SQLDETERMINISTICSQL SECURITY DEFINERMENTA procedure BEGINSELECT Hello World ! ;END//
下面讲解下存储过程的组成部分
)首先在定义好终结符后 使用CREATE PROCEDURE 存储过程名的方法创建存储过程 LANGUAGE选项指定了使用的语言 这里默认是使用SQL
)DETERMINISTIC关键词的作用是 当确定每次的存储过程的输入和输出都是相同的内容时 可以使用该关键词 否则默认为NOT DETERMINISTIC
) SQL SECURITY关键词 是表示调用时检查用户的权限 当值为INVOKER时 表示是用户调用该存储过程时检查 默认为DEFINER 即创建存储过程时检查
) MENT部分是存储过程的注释说明部分
lishixinzhi/Article/program/MySQL/201404/30557
mysql使用教程 mysql怎么使用1、打开浏览器搜索“sqlyog”并下载这个客户端软件 。
2、然后安装之后打开客户端软件 。
3、然后点击“新建”新建一个连接怎么入门mysql,然后填写mysql主机地址、用户名、密码,端口,然后点击下面怎么入门mysql的连接 。
4、然后在左侧选择自己要连接怎么入门mysql的数据库 。
5、然后在Query下面的空白地方输写自己的sql语句 。
【怎么入门mysql 初学mysql】 6、然后点击如图所示的图标,进行执行自己写好的sql语句 , 就完成怎么入门mysql了sql的基本操作 。
MySQL从入门到精通(九) MySQL锁,各种锁 锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,除传统的计算资源(CPU、RAM、I/O)争用外 , 数据也是一种供许多用户共享的资源,如何保证数据并发访问的一致性 , 有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素,从这个角度来说,锁对数据库而言是尤其重要,也更加复杂 。MySQL中的锁 , 按照锁的粒度分为:1、全局锁,就锁定数据库中的所有表 。2、表级锁 , 每次操作锁住整张表 。3、行级锁,每次操作锁住对应的行数据 。
全局锁就是对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续的DML的写语句,DDL语句,已经更新操作的事务提交语句都将阻塞 。其典型的使用场景就是做全库的逻辑备份,对所有的表进行锁定,从而获取一致性视图 , 保证数据的完整性 。但是对数据库加全局锁是有弊端的,如在主库上备份,那么在备份期间都不能执行更新 , 业务会受影响 , 第二如果是在从库上备份,那么在备份期间从库不能执行主库同步过来的二进制日志,会导致主从延迟 。
解决办法是在innodb引擎中,备份时加上--single-transaction参数来完成不加锁的一致性数据备份 。
添加全局锁: flush tables with read lock; 解锁 unlock tables 。
表级锁,每次操作会锁住整张表.锁定粒度大,发送锁冲突的概率最高,并发读最低,应用在myisam、innodb、BOB等存储引擎中 。表级锁分为: 表锁、元数据锁(meta data lock, MDL)和意向锁 。
表锁又分为: 表共享读锁 read lock、表独占写锁write lock
语法: 1、加锁 lock tables 表名 ... read/write
2、释放锁 unlock tables 或者关闭客户端连接
注意: 读锁不会阻塞其它客户端的读 , 但是会阻塞其它客户端的写,写锁既会阻塞其它客户端的读,又会阻塞其它客户端的写 。大家可以拿一张表来测试看看 。
元数据锁,在加锁过程中是系统自动控制的,无需显示使用,在访问一张表的时候会自动加上,MDL锁主要作用是维护表元数据的数据一致性,在表上有活动事务的时候,不可以对元数据进行写入操作 。为了避免DML和DDL冲突,保证读写的正确性 。
在MySQL5.5中引入了MDL,当对一张表进行增删改查的时候,加MDL读锁(共享);当对表结构进行变更操作时 , 加MDL写锁(排他).
查看元数据锁:
select object_type,object_schema,object_name,lock_type,lock_duration from performance_schema_metadata_locks;
意向锁,为了避免DML在执行时 , 加的行锁与表锁的冲突,在innodb中引入了意向锁 , 使得表锁不用检查每行数据是否加锁,使用意向锁来减少表锁的检查 。意向锁分为,意向共享锁is由语句select ... lock in share mode添加 。意向排他锁ix,由insert,update,delete,select 。。。for update 添加 。
select object_schema,object_name,index_name,lock_type,lock_mode,lock_data from performance_schema.data_lock;
行级锁,每次操作锁住对应的行数据,锁定粒度最?。?发生锁冲突的概率最高,并发读最高,应用在innodb存储引擎中 。
innodb的数据是基于索引组织的 , 行锁是通过对索引上的索引项加锁来实现的,而不是对记录加的锁,对于行级锁,主要分为以下三类:
1、行锁或者叫record lock记录锁,锁定单个行记录的锁 , 防止其他事物对次行进行update和delete操作,在RC,RR隔离级别下都支持 。
2、间隙锁Gap lock,锁定索引记录间隙(不含该记录),确保索引记录间隙不变,防止其他事物在这个间隙进行insert操作,产生幻读,在RR隔离级别下都支持 。
3、临键锁Next-key-lock,行锁和间隙锁组合,同时锁住数据,并锁住数据前面的间隙Gap,在RR隔离级别下支持 。
innodb实现了以下两种类型的行锁
1、共享锁 S: 允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁 。
2、排他锁 X: 允许获取排他锁的事务更新数据 , 阻止其他事务获得相同数据集的共享锁和排他锁 。
insert 语句 排他锁 自动添加的
update语句 排他锁 自动添加
delete 语句 排他锁 自动添加
select 正常查询语句 不加锁。。。
select。。。lock in share mode 共享锁 需要手动在select 之后加lock in share mode
select。。。for update 排他锁 需要手动在select之后添加for update
默认情况下 , innodb在repeatable read事务隔离级别运行,innodb使用next-key锁进行搜索和索引扫描,以防止幻读 。
间隙锁唯一目的是防止其它事务插入间隙 , 间隙锁可以共存,一个事务采用的间隙锁不会阻止另一个事务在同一间隙上采用的间隙锁 。
关于怎么入门mysql和初学mysql的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读