DOS 下操作Mysql 命令大全


**

MySQL命令大全

**


一、登录 mysql

1、连接到本机上的 mysql

命令: mysql -u用户名 -p用户密码

首先需要进入到 mysql\bin目录下,再键入命令

例: mysql -uroot -proot
注:用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码。 
如果刚安装好 mysql,超级用户root是没有密码的,直接回车即可进入到mysql中了,mysql的提示符是: mysql> 

2、连接到远程主机上的mysql

假设远程主机的IP为:192.168.78.128,用户名为root,密码为abcd123。

命令: mysql -hIP地址 -u用户名 -p用户密码

例: mysql -h192.168.78.128 -uroot -p123;

注:-u与root之间可以不用加空格

3、退出mysql命令: exit/quit

二、修改密码

格式:mysqladmin -u用户名 -p旧密码 password 新密码

1、给root加个密码12345:

首先在dos下进入目录mysql\bin,然后键入以下命令 
    mysqladmin -u root -password 12345;
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。 

2、再将root的密码改为abc12345:

    mysqladmin -uroot -p12345 password abc12345;

三、增加新用户

注意:和上面不同,下面的因为是mysql环境中的命令,所以后面都带一个分号作为命令结束符;
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”

1、增加一个用户jack密码为abc,可以在任何主机上登录,并对所有数据库有新增、删除、修改、查询的权限。首先用root用户连入mysql,然后键入以下命令:

    grant select,insert,update,delete on *.* to jack@”%” Identified by “abc”;


    但增加的用户是十分危险的,你想如某个人知道jack的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了。

2、增加一个用户sunmu密码为abc,只能在localhost上登录,并可以对数据库mydb进行新增、删除、修改、查询的操作(localhost指本地主机,即mysql数据库服务所在主机),这样用户即使用知道sunmu的密码,也无法从internet上直接访问数据库,只能通过mysql主机上的web进行访问。

    grant select,insert,update,delete on mydb.* to sunmu@localhost identified by “abc”; 


如果你不想sunmu有密码,可以再打一个命令将密码消掉。 
    grant select,insert,update,delete on mydb.* to sunmu@localhost identified by “”; 

四、数据库操作

1、创建数据库

注意:创建数据库之前要先连接Mysql服务器 
命令:create database <数据库名> 


例1:建立一个名为mydb的数据库 
   mysql> create database 数据库名; 


例2:创建数据库并分配用户 
create database 数据库名; 
grant select,insert,update,delete,create,drop,alter on 数据库名.* to 用户名@localhost identified by “密码”; 
set password for 用户名@localhost = old_password('密码'); 


依次执行3个命令完成数据库创建。注意:中文 “密码”和“数据库”是户自己需要设置的。 

2、显示数据库

命令:show databases (注:最后有个s) 
mysql> show databases; 


注意:为了不再显示的时候乱码,要修改数据库默认编码。以utf-8编码页面为例进行说明:
1)、修改mysql的配置文件:my.ini 里面修改 default-character-set=gbk
2)、代码运行时修改:
   Java代码:jdbc:mysql://192.168.78.128:3306/aiyou?useUnicode=true&characterEncoding=utf-8

3、删除数据库

命令:drop database <数据库名> 
例如:删除名为 mydb的数据库 
mysql> drop database mydb; 


例1:删除一个已经确定存在的数据库 
   mysql> drop database drop_database; 


例2:删除一个不确定存在的数据库 
   mysql> drop database drop_database; 
   ERROR 1008 (HY000): Can't drop database 'drop_database'; database doesn't exist 
      //发生错误,不能删除'drop_database'数据库,该数据库不存在。 
   mysql> drop database if exists drop_database; 
   Query OK, 0 rows affected, 1 warning (0.00 sec)//产生一个警告说明此数据库不存在 
   mysql> create database drop_database; 
   Query OK, 1 row affected (0.00 sec) 
   mysql> drop database if exists drop_database;//if exists 判断数据库是否存在,不存在也不产生错误 
   Query OK, 0 rows affected (0.00 sec) 

4、连接数据库

命令: use <数据库名> 


例:如果mydb数据库存在,则输入命令: 
   mysql> use mydb;
屏幕提示:Database changed 


use 语句可以通告mysql把db_name数据库作为默认(当前)数据库使用,用于后续语句。
该数据库保持为默认数据库,直到语段的结尾,或者直到发布一个不同的use语句:
   mysql> use abc; 
   mysql> select count(*) from mytable;
   mysql> use db2; 
   mysql> select count(*) from mytable;


使用use语句为一个特定的当前的数据库做标记,不会阻碍您访问其它数据库中的表。下面的例子可以从mydb数据库访问abc库中的表: 
   mysql> use mydb; 
   mysql> select author_name,editor_name from author.abc.school where author.editor_id = abc.editor.editor_id;

5、当前选择的数据库

命令: select database(); 
mysql中select命令类似于其他编程语言里的print或者write,你可以用它来显示一个字符串、数字、数学表达式的结果等等。如何使用mysql中select命令的特殊功能? 


1)、显示mysql的版本 
mysql> select version();


2)、显示当前时间 
mysql> select now();


3)、显示年、月、日 
mysql> select year(current_date);


mysql> select month(current_date);


mysql> select dayofmonth(current_date); 


4)、显示字符串
mysql> select "hello mysql!";


5)、当计算器用 
mysql> select ((3+3)-5)*6/8;


6)、串接字符串 
select concat(f_name, " ", l_name) 
AS Name 
from employee_data 
where title = 'Marketing Executive';
注意:这里用到concat()函数,用来把字符串串接起来。另外,我们还用到以前学到的AS给结果列'CONCAT(f_name, " ", l_name)'起了个假名。 

五、数据库表操作

1、创建数据表

命令: create table <表名> ( <字段名1> <类型1> [<字段名n> <类型n>]); 


例如,建立一个名为mydb的表,如下:
字段名 数字类型    数据宽度    是否为空    是否主键    自动增加    默认值
id  int 4   否   primary key auto_increment  
name    char    20  否           
age int 40
salary double   16  是           


mysql> create table mydb( 
> id int(4) not null primary key auto_increment, 
> name char(20) not null, 
> age int(4) not null, 
> salary double(16,2) default '15000'); 

2、删除数据表

命令:drop table <表名> 


例如:删除表名为 mydb 的表
   mysql> drop table mydb;

注:drop table 用于删除一个或多个表。但必须拥有每个表的 drop 权限。所有的表数据和表定义将会被取消,所以该语句需要慎用。对于一个带分区的表,drop table 会永久性地取消表定义,取消各分区,并取消储存在这些分区中的所有数据。drop table 还会取消与被取消的表有关联的分区定义(.par)文件。对与不存在的表,可以使用 if exists 用于防止错误发生。当使用if exists时,对于每个不存在的表,会生成一个note。 restrictcascade可以使分区更容易。目前,restrictcascade不起作用。

3、表插入数据

命令:insert into <表名> [( <字段名1>[<字段名n> ])] values ( 值1 )[( 值n )]
例:往表 mydb中插入二条记录, 这二条记录表示:id1的名为jack的薪资为15000, id2的名为sunmu的薪资为23000。
   mysql> insert into mydb(id,name,salary) values(1,'jack',15000);
   mysql> insert into mydb(id,name,salary) values(2,'sunmu',23000);
注:insert into 每次只能向表中插入一条记录。 

4、查询表中的数据
1)、查询所有行

命令: select * from < 表名 >;
例如:查看表 mydb 中所有数据
   mysql> select * from mydb; 

2)、查询某几列数据

命令: select <字段1,字段2...> from < 表名 > where < 条件表达式 >
例:查看表 mydb 中所有薪资大于15000的员工姓名
   mysql> select * from mydb where salary >= 15000;

2)、查询前几行数据

例:查看表 mydb 中前3行数据 
mysql> select * from mydb order by id limit 0,3;


select一般配合where使用,以查询更精确更复杂的数据。 

5、删除表中数据

命令: delete from < 表名 > where < 条件表达式 >; 
例:删除表 mydb中id1的记录 
    mysql> delete from mydb where id=1; 

6、修改表中数据

命令: update < 表名 > set < 字段 > = < 更新值 > where < 条件表达式 >
例:将 mydb 表中所有薪资低于15000的员工,将薪资修改为15000
   mysql> update mydb set salary=15000 where salary < 15000; 


例:单表下的 update 语句: 
   update [low_priority] [ignore] tbl_name set col_name1=expr1 [col_name2=expr2...] [where where_definition] [limit row_count]


例:多表下的 update 语句:
   update [low_priority] [ignore] table_references set col_name1=expr1 [col_name2=expr2...] [where where_definition]


说明:
update 用于更新表中原有行或列的值;
set 用于指定要修改的列和值;
where 用于指定更新的条件,如果没有where子句,将默认更新所有的行;
limit 用于限制被更新的行的数目;

7、字段操作

1)、加字段
命令: alter table < 表名 > add < 字段 > < 类型 > default < 默认值 >;
例: mysql> alter table mydb add salary double(16,2) default '0.00'


2)、加索引
命令: alter table < 表名 > add index < 索引名 > (字段名1[字段名2...]);
例: mysql> alter table mydb add index index_name (name);


3)、加主键索引
  mysql> alter table < 表名 > add primary key (字段名);
例: mysql> alter table mydb add primary key(id);


4)、加唯一索引
命令: mysql> alter table < 表名 > add unique < 索引名 > (字段名);
例: mysql> alter table mydb add unique index_name01(phone);


5)、删除某个索引
命令: mysql> alter table < 表名 > drop index < 索引名 >;
例: mysql>alter table mydb drop index index_name;


6)、修改原字段名称及类型
命令: mysql> alter table < 表名 > change < 旧字段名 > < 新字段名 > < 新字段类型 >;
例: mysql> alter table mydb change telephone phone char(11);


7)、删除字段
命令: mysql> alter table table_name drop field_name;
例: mysql> alter table mydb drop phone;

8、修改表名

命令: mysql> rename table < 原表名 > to < 新表名 >; 
例: mysql> rename table mydb to emp;


注:当执行 rename 命令时,不能有任何锁定的表或活动的事务。并且该表必须拥有 alter 和 drop 权限,以及对新表的 create 和 insert 权限。

六、数据库备份

数据库备份文件默认是存在 “ mysql\bin ” 目录下,也可指定其文件存放目录。
1、整库导出

命令: mysqldump -hIP地址 -u用户名 -p密码 数据库名 > 导出的文件名
例: mysqldump -h192.168.78.128 -uroot -proot mydb > output_filename.sql

2、单表导出

命令: mysqldump -hIP地址 -u用户名 -p密码 数据库名 表名 > 导出的文件名
例: mysqldump -h192.168.78.128 -uroot -proot mydb employee > output_filename.sql

3、导出单个数据库结构

命令: mysqldump -hIP地址 -u用户名 -p密码 -d –add-drop-table 数据库名 > output_filename.sql
例: mysqldump -h192.168.78.128 -uroot -proot -d –add-drop-table mydb > output_filename.sql

4、指定字符编码格式导出

命令: mysqldump -hIP地址 -u用户名 -p密码 –default-character-set=gbk –set-charset=utf-8skip-opt 数据库名 > output_filename.sql
例: mysqldump -h192.168.78.128 -uroot -proot –default-character-set=gbk –set-charset=utf-8skip-opt mydb > output_filename.sql

5、将 mydb 数据库备份到文件backups_mydb中

命令: mysqldump -hIP地址 -uroot -p密码 --opt mydb > backups_mydb
例: mysqldump -h192.168.78.128 -uroot -proot --opt mydb > backups_mydb

实例一:建库建表
先决条件:正常登录到 mysql 服务器!登录后不要 use 到任何库,如果已经使用某个库,则先退出再登录。

例:如果mydb库存在,则删除
mysql> drop database if exists mydbA;
例:建立mydbA数据库
mysql> create database mydbA;
例:打开mydbA库
mysql> use mydbA;
例:建立表employee
create table employee
(
    id int(3) auto_increment not null primary key,
    name char(10) not null,
    age char(2) not null,
    salary double(9,3) default '15000.000'
);
例:插入两条数据
insert into employee values(”,’jack’,'23’,'23000′);
insert into employee values(”,’sunmu’,'25’,'16000′);


注: 
    1、将 id 设为长度为3的整数型字段 int(3);并设置为自动增长字段:auto_increment;并允许为空:not null;该字段为主键:primary key;
    2、将name设为长度为10的字符字段;
    3、将age设为长度2的字符字段;
    4、将salary设为小数点前长度为9,小数点后长度为3的双精度浮点数;

实例三:关于建表

方法一:可以通过以 "文件名.sql" 文件的方式进行建库建表,在D盘中新建一个文本文件,并将以上语句复制到一个文本中,并重命名为 employee.sql,在doc窗口中执行该脚本,输入命令如下:
    mysql -hIP地址 -u用户名 -p用户密码 < D:\\employee.sql
注:如果成功,空出一行无任何显示;否则会提示导致错误的原因,在多少行。


方法二:正常登录mysql服务后使用,输入如下命令:
    mysql> source D:\\employee.sql;
  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值