本文主要介绍Mysql命令百科。分享的命令是最基本的,推荐给大家。感兴趣的朋友可以参考一下。
一、连接数据库
格式:mysql -h主机地址-u用户名-P用户密码
1.1.连接到这台机器上的MYSQL。
首先打开DOS窗口,然后进入目录mysqlbin,然后输入命令mysql -u root -p,按enter键提示输入密码。
注意,用户名前可以有也可以没有空格,但密码前一定不能有空格,否则会要求您重新输入密码。
如果是刚刚安装MYSQL,超级用户root没有密码,直接按回车键就可以进入MYSQL。mysql提示是:MYSQL。
1.2连接到远程主机上的MYSQL。
假设远程主机的IP是110.110.110.110,用户名是root,密码是abcd123。键入以下命令:
MySQL-h 110 . 110 . 110 . 110-u root-p 123;(注意:u和root之间不需要加空格,其他都一样)
1.3退出MYSQL命令:
出口(回车)二、增加用户
格式:授予对数据库的select权限。*以“密码”标识的用户名@登录主机
2.1 增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。
首先以root身份连接到MYSQL,然后键入以下命令:
复制代码如下:grant select,insert,update,delete on *。*发给由“ABC”标识的[email=test1 @ "]test1 @ "[/email];
但是用户的增加是很危险的。你想如果有人知道test1的密码,那么他就可以在互联网上的任何一台电脑上登录你的mysql数据库,对你的数据为所欲为,
解决办法见2.2
。2.2增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作
(localhost指的是本地主机,也就是MYSQL数据库所在的主机),这样即使用户使用了知道test2的密码,也不能直接从网上访问数据库,只能通过MYSQL主机上的网页访问。复制代码如下:在mydb上grant select,insert,update,delete。*到“ABC”标识的[email=test 2 @ localhost]test 2 @ localhost[/email];
如果您不希望test2有密码,您可以键入另一个命令来删除密码。
复制代码如下:在mydb上grant select,insert,update,delete。*发送到由""标识的[email=test2 @ localhost]test2 @ localhost[/email]
三、操作数据库
3.1创建数据库
注意:在创建数据库之前连接到Mysql服务器。
命令:创建数据库数据库名称
示例1:建立一个名为xhkdb的数据库
复制代码如下:mysql创建数据库xhkdb
示例2:创建数据库并分配用户
创建数据库数据库名称;
授予对数据库名称的select、insert、update、delete、create、drop、alter。*到“密码”标识的username @ localhost
为数据库名 @ localhost =OLD _ PASSWORD( PASSWORD )设置密码;
依次执行三个命令来完成数据库创建。
注:中文的“密码”和“数据库”是用户自己需要的。
3.2显示数据库
命令:显示数据库(注意:末尾有一个s)
复制代码如下:mysql显示数据库
3.3 删除数据库
命令:删除数据库数据库名称
例如,删除名为xhkdb的数据库。
复制代码如下:mysql drop database xhkdb
示例1:删除已确定存在的数据库。
复制代码如下:MySQL drop database drop _ database;
查询正常,0行受影响(0.00秒)
示例2:删除不确定存在的数据库
MySQL drop database drop _ database;
错误1008 (HY000):无法删除数据库 drop _ database ;数据库不存在
//出现错误,无法删除 drop_database 数据库。数据库不存在。
mysql drop database如果存在drop _ database
好,0行受影响,1个警告(0.00秒)//生成一个警告,说明该数据库不存在。
mysql创建数据库drop _ database
查询正常,1行受影响(0.00秒)
mysql drop database如果存在drop _ database///if exists判断数据库是否存在。如果不存在,就不会产生错误。
查询正常,0行受影响(0.00秒)
3.4连接到数据库
命令:使用数据库名称
比如,如果xhkdb数据库存在,尝试访问:mysql使用xhkdb;
屏幕提示:数据库已更改
Use语句可以通知MySQL使用db_name数据库作为后续语句的默认(当前)数据库。在段结束或发出不同的USE语句之前,该数据库一直是默认数据库:
mysql使用db1
MySQL SELECT COUNT(*)FROM my table;#从db1.mytable中选择
mysql使用db2
MySQL SELECT COUNT(*)FROM my table;#从db2.mytable中选择
使用USE语句标记特定的当前数据库不会阻止您访问其他数据库中的表。以下示例可以从db1数据库访问author表,从db2数据库访问edit表:
mysql使用db1
mysql SELECT author_name,editor_name FROM author,db2.editor
-其中author . editor _ id=DB2 . editor . editor _ id;
要退出数据库或连接到其他数据库,只需直接使用“其他数据库名称”。
3.5当前选择的数据库
命令:
mysql select database();
MySQL中的SELECT命令类似于其他编程语言中的print或write。你可以用它来显示字符串、数字、数学表达式的结果等等。如何使用MySQL中SELECT命令的特殊功能?
(1).显示MYSQL的版本
mysql选择版();
-
|版本()|
-
| 6 . 0 . 4-阿尔法社区|
-
集合中的1行(0.02秒)
(2).显示当前时间。
MySQL select now();
-
|现在()|
-
| 2009-09-15 22:35:32 |
-
集合中的1行(0.04秒)
(3).显示年、月、日。
SELECT day of month(CURRENT _ DATE);
-
|年月日(当前日期)|
-
| 15 |
-
集合中的1行(0.01秒)
选择月份(当前日期);
-
|月(当前日期)|
-
| 9 |
-
集合中的1行(0.00秒)
选择年份(当前日期);
-
|年(当前日期)|
-
| 2009 |
-
集合中的1行(0.00秒)
(4).显示字符串。
mysql选择“欢迎来到我的博客!”;
-
欢迎来到我的博客!|
-
欢迎来到我的博客!|
-
集合中的1行(0.00秒)
(5).用作计算器
select((4 * 4)/10)25;
-
| ((4 * 4)/10 ) 25 |
-
| 26.60 |
-
集合中的1行(0.00秒)
(6).连接字符串。
select CONCAT(f_name, ,l_name)
作为名称
来自员工数据
其中title=营销主管;
-
|姓名|
-
莫妮卡塞格尔
哈尔西姆莱
约瑟夫欧文
-
集合中的3行(0.00秒)
注意:这里使用CONCAT()函数来连接字符串。此外,我们还使用之前学到的为结果列“CONCAT(f_name),”,l_name”提供一个假名。
四、对表的操作
4.1创建一个表
命令:创建表名(字段名1类型1 [,字段名n类型n]);
例如,创建一个名为MyClass的表。
mysql创建表MyClass(
id int(4) not null主键auto_increment,
name char(20)不为空,
sex int(4) not null默认为“0”,
度double(16,2));
4.2获取表结构
命令:desc表名,或显示表名中的列
MySQL desc my class;
mysql显示MyClass中的列;
在使用MySQL数据库的desc表名时,我们看到Key列,可能有四个值,分别是、 PRI 、 UNI 、 MUL 。
(1).如果键为空,则该列的值可以重复,表示该列没有索引,或者是具有非唯一复合索引的非前导列;
(2).如果Key是PRI,则该列是主键的一部分;
(3).如果Key为UNI,则该列为唯一值索引的第一列(前导列),不能包含NULL);价值观。
(4).如果Key为MUL,则该列的值可以重复。此列是非唯一索引的前导列(第一列)或唯一索引的组成部分,但可以包含空值NULL。
如果一个列的定义同时满足上述四个条件中的许多条件,例如,一个列同时是PRI和UNI,那么当使用“desc表名”时,显示的键值根据优先级PRI-UNI-MUL显示。此时,显示PRI。
唯一索引列可以显示为PRI,该列不能包含空值,并且该表没有主键。
如果多个列构成一个唯一的复合索引,则唯一的索引列可以显示为MUL,因为尽管索引的多个列的组合是唯一的,例如ID名称是唯一的,但是只要ID名称是唯一的,任何单个列都不能有重复值。
4.3删除表
命令:删除表名
例如,删除名为MyClass的表。
复制代码如下:mysql drop table MyClass
DROP TABLE用于取消一个或多个表。您必须对每个表拥有DROP权限。的所有表数据和表定义都将被取消,所以使用此语句时要小心!
注意:对于带有分区的表,DROP TABLE将永久取消表的定义,取消所有分区,并取消存储在这些分区中的所有数据。DROP TABLE也会被取消和取消。
表具有关联的分区定义(。par)文件。
对于不存在的表,IF EXISTS用于防止错误。使用iExists时,将为每个不存在的表生成一个注释。
限制和级联可以使分区更容易。目前,限制和级联不起作用。
4.4向表插入数据
命令:insert into表名[(字段名1[,字段名n ])]值(值1 )[,(值n )]
例如,在表MyClass中插入了两条记录。这两个记录表明,1号汤姆的分数是96.45,2号琼的分数是82.99,3号汤姆的分数是96.45。
王得了96.5分。
mysql插入到MyClass值(1, Tom ,96.45,(2, Joan ,82.99,(2, Wang ,96.59);
注意:insert into一次只能在表中插入一条记录。
4.5查询表
(1)查询所有行。
命令:选择字段1,字段2,from表名where表达式
例如,查看表MyClass中的所有数据
mysql select * from MyClass
(2)查询前几行数据。
例如,查看表MyClass中的前两行数据。
MySQL select * from my class order by id limit 0,2;
Select通常与where一起使用,以查询更精确和复杂的数据。
4.6删除表格
命令:从表名中删除where表达式
例如,删除表MyClass中的记录编号1。
mysql从id=1的MyClass中删除;
4.7修改表中的数据
语法:update table name set field=new value,… where条件
MySQL update my class set name= Mary 其中id=1;
示例1:单个表的MySQL UPDATE语句:
复制代码如下:update[low _ priority][ignore]TBL _名称集列_名称1=表达式1 [,列_名称2=表达式2.[where where _ definition][order by.][限制行数]
示例2:多个表的UPDATE语句:
复制代码如下:update[low _ priority][ignore]table _ references set col _ name 1=expr 1[,col _ name2=expr2.[where where _ definition]
UPDATE语法可以用新值更新原始表行中的列。SET子句指示要修改的列和要给出的值。WHERE子句指定应该更新哪些行。如果没有WHERE子句,则更新所有行。如果指定了ORDER BY子句,则按指定的顺序更新行。LIMIT子句用于限制可以更新的行数。
4.8增加表字段
命令:更改表名添加字段类型其他;
例如,将类型为int(4)且默认值为0的字段passtest添加到表MyClass中。
mysql alter table MyClass add passtest int(4) default 0[/code]
加索引:
mysql alter table表名添加索引名(字段名1[,字段名2…]);例如:MySQL alter table employee add index EMP _ name(name);
加主关键字的索引:
mysql alter table表名添加主键(字段名);例如:MySQL alter table employee add主键(id);
加唯一限制条件的索引:
mysql alter table表名添加唯一索引名(字段名);例如:MySQL alter table employee add unique EMP _ name 2(card number);
删除某个索引:
mysql alter table表名drop索引名;例如:MySQL alter table employee drop index EMP _ name;
增加字段:
MySQL ALTER TABLE TABLE _ name ADD field _ name field _ type;修改原字段名称及类型:
MySQL ALTER TABLE TABLE _ name CHANGE old _ field _ name new _ field _ name field _ type;修改字段类型
:MySQL alter TABLE TABLE _ name MODIFY column _ name field _ type new _ type删除字段:
MySQL ALTER TABLE TABLE _ name DROP field _ name;4.9修改表名
命令:将表原表名重命名为新表名;
例如,在表中,MyClass的名称更改为YouClass。
复制代码如下:MySQL将table my class重命名为your class
执行RENAME时,不能有任何锁定的表或活动的事务。您还必须对原始表拥有ALTER和DROP权限,并对新表拥有CREATE和INSERT权限。
如果MySQL在多表重命名中遇到任何错误,它将反转所有已重命名的表的重命名,并将所有内容恢复到原始状态。
MySQL 3.23.23中增加了重命名表。
五、备份数据
在DOS命令的[URL=file:// MySQL bin] MySQL bin[/URL]目录下执行。
(1).导出整个数据库
导出的文件默认存在于mysqlbin目录下。
Mysqldump -u username -p数据库名称导出的文件名
mysqldump -u用户名-p123456数据库名输出文件名. sql
(2).导出一个表
Mydump-u username -p数据库名称表名导出的文件名
mysqldump -u用户名-p数据库名表名输出文件名. sql
(3).导出一个数据库结构
mysqldump -u用户名-p-d添加-删除-表数据库名输出文件名. sql
-d No dataAdd-drop-table在每个create语句之前添加一个删除表
(4).带语言参数导出
mysqldump-u root-pdefault-character-set=latin1set-charset=gbkskip-opt database _ name outfile _ name . SQL
例如,将aaa库备份到文件back_aaa:
复制代码如下:[root @ test 1 root]# CD/home/data/MySQL
[root @ test1 MySQL]# MySQL dump-u root-p-opt AAA back _ AAA
六、一个完整的数据库创建实例
如果存在学校,删除数据库;//删除存在的学校
创建数据库学校;//建立图书馆学校
利用学校;//打开图书馆学校
创建教师//创建表格教师
(
id int(3) auto_increment not null主键,
name char(10)不为空,
地址varchar(50)默认为“深圳”,
年份日期
);//表创建结束
//以下是插入的字段
插入教师价值观(、 glchengang 、 深圳一中、 1976年10月10日 );
插入教师价值观(、杰克、深圳一中、 1975-12-23 );
注:在建表中
(1)将ID设置为数值型字段,长度为3:int(3);并让它自动给每条记录加一:auto _ increment;不能为空:不能为空;并让他成为主字段的主键。
(2)将名称设置为长度为10的字符字段。
(3)设置地址为字符字段,长度为50,默认值为深圳。
如果在mysql提示符下键入以上命令,是可以的,但是不方便调试。
(1)可以把上面的命令照原样写成一个文本文件,假设是school.sql,然后复制到c:并输入目录[url=file://mysqlbin]
mysqlbin[/url],然后键入以下命令:MySQL-u root-p password C: school . SQL。
如果成功,一行将留空,不显示任何内容;如果有错误,会提示您。(上面的命令已经调试过了,只有去掉//的注释才能使用)。
(2)、或者进入命令行后使用mysql源码c: school . SQL;还可以将school.sql文件导入数据库。
以上是Mysql命令的完整版本。希望对你熟练使用Mysql命令有帮助。