MySQL常用命令
mysql命令行中指定程序选项的规则
--在命令名后面紧跟选项;
--选项参量以一个和两个破折号开始,取决于它具有短名还是长名。例如,-?和--help是指导MySQL程序显示帮助消息的短选项和长选项;
--选项名对大小写敏感。-v和-V均有效,但具有不同的含义。(它们是--verbose和--version选项的短名);
--部分选项在选项名后面紧随选项值。例如,-hlocalhost或--host=localhost表示客户程序的MySQL服务器主机。选项值可以告诉程序MySQL服务器运行的主机名;
--对于带选项值的长选项,通过一个‘=’将选项名和值隔离开来。对于带选项值的短选项,选项值可以紧随选项字母后面,或者二者之间可以用一个空格隔开。(-hlocalhost和-h localhost是等效的);
--例外情况是指定MySQL密码的选项,对于短形式-p,如果给出了 密码值,必须紧跟在选项后面,中间不能插入空格。这样要求的原因是如果选项后面有空格,程序没有办法来告知后面的参量是密码值还是其它某种参量。
1、连接Mysql
格式: mysql -h主机地址 -u用户名 -p用户密码
1.1 连接到本机上的MYSQL。
命令:mysql -u root -p,注意用户名前可以有空格也可以没有空格,但是密码前没有空格,否则让你重新输入密码。
如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>
1.2 连接到远程主机上的MYSQL。
假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -u root -p 123;(注:u与root之间可以不用加空格,其它也一样)
另:mysql -h服务器IP地址 -u用户名 -p密码 -P 服务器端MySQL端口号 -D 数据库名
注意:服务器端口标志-P一定要大写以区别于用户密码-p,如果直接连接数据库,标志-D也要大写;
1.3 退出MYSQL命令:
exit
2、修改密码
格式:mysqladmin -u用户名 -p旧密码 password 新密码
2.1 给root加个密码123456。
首先在DOS下进入目录mysql\bin,然后键入以下命令
mysqladmin -uroot password 123456
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2.2 再将root的密码改为654321。
mysqladmin -uroot -p123456 password 654321
3、增加新用户
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
3.1 增加一个新用户,并授予用户所有权限:
grant all privileges on *.* to 'wugongzi'@'%' identified by '123456' with grant option;
all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。
on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到test库的user表中,可以这么写:test.user
to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。比如:"wugongzi"@"192.168.0.%",表示wugongzi这个用户只能在192.168.0IP段登录
identified by:指定用户的登录密码
with grant option:表示允许用户将自己的权限授权给其它用户
3.2 增加一个新用户,并授予用户查询、插入、修改、删除的权限
grant select,insert,update,delete on *.* to 'wugongzi'@'%' identified by '123456' with grant option;
4、数据库操作
4.1 创建数据库
命令:create database <数据库名>
例1:建立一个名为dev的数据库
mysql> create database dev;
例2:创建数据库并分配用户
①CREATE DATABASE 数据库名;
②GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 数据库名.* TO 数据库名@localhost IDENTIFIED BY '密码';
③SET PASSWORD FOR '数据库名'@'localhost' = OLD_PASSWORD('密码');
4.2 显示数据库
命令:show databases (注意:最后有个s)
mysql> show databases;
4.3 删除数据库
命令:drop database <数据库名>
例如:删除名为 dev的数据库
mysql> drop database dev;
4.4 连接数据库
命令: use <数据库名>
4.5 显示当前选择的数据库
命令:mysql> select database();
MySQL中SELECT命令类似于其他编程语言里的print或者write,你可以用它来显示一个字符串、数字、数学表达式的结果等等。如何使用MySQL中SELECT命令的特殊功能?
1.显示MYSQL的版本
select version();
- 显示当前时间
mysql> select now();
select now();
- 显示年月日
SELECT YEAR(CURRENT_DATE),MONTH(CURRENT_DATE),DAYOFMONTH(CURRENT_DATE);
- 显示字符串
SELECT "welecome to my blog!";
- 当计算器用
select ((4 * 4) / 10 ) + 25;
5、数据表操作
5.1 创建数据表
命令:create table <表名> ( <字段名1> <类型1> [,..<字段名n> <类型n>]);
5.2 删除数据表
命令:drop table <表名>
5.3 表插入数据
命令:insert into <表名> [( <字段名1>[,..<字段名n > ])] values ( 值1 )[, ( 值n )]
5.4 查询表中的数据
命令: select <字段1,字段2,...> from < 表名 > where < 表达式 >
5.5 删除表中数据
命令:delete from 表名 where 表达式
5.6 修改表中数据
语法:update 表名 set 字段=新值,… where 条件
5.7 增加字段
命令:alter table 表名 add字段 类型 其他;
5.9 修改表名
命令:rename table 原表名 to 新表名;
6、备份数据库
1.导出整个数据库
导出文件默认是存在mysql\bin目录下
mysqldump -u用户名 -p密码 数据库名 > 文件名.sql
2.导出一个表
mysqldump -u用户名 -p密码 数据库名 表名> 文件名.sql
注:
-d 结构(--no-data:不导出任何数据,只导出数据库表结构)
-t 数据(--no-create-info:只导出数据,而不添加CREATE TABLE 语句)
-n (--no-create-db:只导出数据,而不添加CREATE DATABASE 语句)
-R (--routines:导出存储过程以及自定义函数)
-E (--events:导出事件)
--triggers (默认导出触发器,使用--skip-triggers屏蔽导出)
-B (--databases:导出数据库列表,单个库时可省略)
--tables 表列表(单个表时可省略)
①同时导出结构以及数据时可同时省略-d和-t
②同时 不 导出结构和数据可使用-ntd
③只导出存储过程和函数可使用-R -ntd
④导出所有(结构&数据&存储过程&函数&事件&触发器)使用-R -E(相当于①,省略了-d -t;触发器默认导出)
⑤只导出结构&函数&事件&触发器使用 -R -E -d