一、DDL数据库定义语言
1、登录mySQL
mysql -u"用户名" -p"密码" -h"登录地址
-h:默认为本机
示例:

2、查看当前存在的数据库
show databases;
示例:

3、创建数据库database
create database 数据库名称;
创建数据库db01
示例:

4、删除数据库database
drop database 数据库名称;
删除数据库db01
示例:

5、使用数据库
在数据库中创建/修改数据表时,需先使用数据库
use 数据库名称
使用数据库db01
示例:

二、DML数据库操作语言
数据表结构

一列为一个字段,一行为一条记录
1、查看当前数据库下存在的数据表
use 数据库名;
show tables;
示例:

新创建的数据库中未存在数据表
2、创建数据表
create table 数据表名称 (字段01 数据类型 约束,字段02 数据类型 约束...);
在数据库中创建数据表时,需要先使用数据库,但也可以用数据库.数据表的方式调用数据表
在数据库db01下创建数据表tab01
示例:

3、查询数据表结构
desc 数据表名称;
查询数据表tab01的结构
示例:

4、删除数据表
drop table 数据表名称;
删除数据表tab01
示例:

5、向数据表中插入数据
1、插入一条数据记录
insert into 数据表名称 values (数据01,数据02..);
向数据表插入数据记录时,数据记录中的数据需与数据表的字段一一对应,并且数据类型相同
向数据表tab01中插入一条数据记录
示例:

2、插入多条数据记录
也可以一次向数据表中插入多条数据记录,不同数据记录之间用逗号隔开
示例:

3、只向数据表的部分字段插入数据
insert into 数据表名称(字段01,字段02,...) values (数据01,数据02,...);
插入的数据也需和字段一一对应
示例:

只向部分字段插入数据时,本条数据记录,其余未插入数据的字段为NULL值
也可以向部分字段一次插入多条数据
示例:

6、删除数据表中的数据记录
delet from 表名 where 字段=数值01;
删除数据表tab01中字段name为张三的数据记录
示例:

7、修改数据表的结构
1、向数据表插入一个新字段
在数据表的末尾插入一个新字段
alter table 表名 add 字段 数据类型 约束;
向表tab01中插入height字段,数据类型为int
示例:

在数据表的开头插入一个字段,在末尾加上first即可
示例:

2、删除数据表中的一个字段
alter table 表名 drop 字段;
删除数据表tab01中的height字段
示例:

3、修改数据表中某个字段的数据类型
alter table 表名 modify 字段 数据类型;
修改数据表tab01中的id字段数据类型为varchar
示例:

4、修改字段名和字段数据类型
alter table 表名 change 字段名 新字段名 数据类型;
新数据类型可以和字段原数据类型相同
修改数据表tab01字段id的名字为id_number,数据类型为int
示例:

5、alter修改用户密码
alter user "用户名"@"登录主机" identified by "新密码";
或者还可以使用mysqladmin命令修改用户密码
三、DQL数据库查询语言
1、查询数据表中的所有数据记录
select * from 数据表名;
查询数据表tab01中的所有数据记录
示例:

2、只查询数据表中部分字段的数据记录
select 字段01,字段02,... from 数据表名;
查询数据表tab01中的name和age字段的数据记录
示例:

3、将数据记录按照某个字段进行降序排列输出
select * from 数据表名 order by 字段 desc;
将tab01的数据记录按照age字段进行降序输出
示例:

4、将数据记录按照某个字段进行升序排列输出
select * from 数据表名 order by 字段 asc;
将tab01的数据记录按照age字段进行升序输出
示例:

++条件查询++
5、查询字段数据在规定的取值范围内的数据记录
select * from 数据表名 where 字段 between 数值01 and 数值02;
查询字段age中数据在20--30范围内的数据记录
示例:

6、查询满足 字段01数据=数据01 并且 字段02数据=数据02 的数据记录
select * from 数据表名 where 字段01=数据01 AND 字段02=数据02;
查询 字段name=张三,并且 字段age=23 的数据记录
示例:

7、查询满足 字段01数据=数值01 或者 字段02数据=数据02 的数据记录
select * from 数据表名 where 字段01=数据01 OR 字段02=数据02;
查询 字段name=李四 或者 字段age=23 的数据记录
示例:

8、查询字段数据在规定的数值中的数据
select * from 数据表名 where 字段 in (数据1,数据2,...);
查询字段age的数值为21,23,24的数据记录
示例:

相比与between and, in 的数值范围更加精确
9、查询字段数据为NULL值的数据记录
select * from 数据表名 where 字段 is NULL;
查询字段mail中数据为NULL值的数据记录
示例:

四、DCL数据库控制语言
1、创建用户
create user "用户名"@"登录主机" identified by "密码";
创建本地用户user01,密码为MySQL@123
示例:

登录主机可以为本地也可以为其他远程服务器的IP地址
mysql的用户信息存放在数据库mysql的数据表user中,可以使用select查询用户信息
2、赋予用户权限
grant 权限(字段01,字段02) on 数据库.数据表 to "用户名"@"登录主机";
权限:
all:所有操作权限
create,创建权限
drop,删除权限
select,查询数据权限
insert,插入数据权限
update,更新数据权限
delete,删除数据权限 等....
数据库.数据表
示例:
*.*,对所有库、表、字段都有操作权限
mysql.*,只对mysql库及库中的表有操作权限
mysql.user,只对mysql库中的user表有操作权限
给用户user01赋予数据库db01中tab01表的所有权限
示例:

show grants for "用户名"@"登录主机"\G; 查看用户的所有权限
3、收回用户的权限
revoke 权限 on 数据库.数据表 from "用户名"@"登录主机";
收回用户user01对tab01表的所有权限
示例:

4、删除用户
drop user "用户名"@"登录主机";
删除本地用户user01
示例:
