目录
一、ddl数据定义语言
1,数据库操作
show databases; 展示当前数据库
create database name; 创建一个名为name的数据库,如果存在则报错
create database if not exists name; 创建一个名为name的数据库,已存在则不创建
create database name default charset utf8; 创建默认字符集是utf8的数据库
drop database (if exists) name; 删除名为name的数据库
use name; 使用名为name的数据库
2,表操作
show tables; 查询当前数据库中所有表
desc name; 查询当前表结构
show create table name; 查询name表的建表语句
create table name(name1 type1 comment ' ', ... namen typen comment ' ') comment ' '; 创建表
//comment 注释 //unsigned 无符号,例如 int unsigned 无符号整型
修改表操作
alter table tablename add name type; 在tablename表中添加name字段
alter table tbname modify name type; 修改name字段的类型
alter table tbname change oldname newname type; 改变name字段的名称和类型
alter table tbname rename to newname; 修改tbname表名为newname
表删除操作
drop table (if exists) tbname; 删除名为tbname的表
truncate table tbname; 删除表并重建
二、dml数据操作语言
1,添加数据
insert into tbname(name1,name2,....) values (value1, value2,...); 插入指定字段数据
insert into tbname values (value1, value2, ....); 为所有字段添加数据
也可在values后跟多个括号,来一次添加多条数据。
2,修改数据
updata tbname set name1 = value1, name2 = value2, ... where 条件 ;
delete from tbname where 条件 ;
无where即全部执行该操作。
三、dql数据查询语言
1,基本查询
select 字段1,字段2,... from 表名 ; *代表查询所有
select 字段1 as 别名 from 表名; 设置别名
select distinct 字段1 from 表名; 去重查找
2,条件查询
select 字段 from 表名 where 条件;
特殊条件:
is null 是null
is not null 非null
between ... and ... 在某个范围之内含边界
like() 模糊匹配( _ 匹配单个字符,% 匹配任意个字符)
3,聚合函数
null值不参与聚合运算
count 统计数量
max 最大值
min 最小值
avg 平均值
sum 求和
select 聚合函数(字段名) from 表名;
4,分组查询
select 字段名 from 表名 (where 条件) group by 分组字段名 (having 条件);
执行顺序:where > 分组 > 聚合函数 > having
where在分组和聚合函数计算前过滤,无法把聚合函数作为过滤条件,having在分组后对结果进行过滤,可将聚合函数作为条件。
分组后,查询的字段只能为分组字段和聚合函数
5,排序查询
select 字段 from 表名 order by 字段1 排序方式,字段2 排序方式2 ... ;
asc 升序(默认)
desc 降序
6,分页查询
select 字段 from 表名 limit 起始索引,查询记录数;
起始索引是0(默认),分页查询不同数据库有不同的实现,在mysql中是limit。
7,执行顺序
综合 select 字段列表 from 表名 where 条件列表 group by 分组字段列表
having 分组后条件列表 order by 排序字段列表 limit 分页参数
执行顺序:from, where, group by, having, select, order by, limit
四、dcl数据控制语言
1,管理用户
select * from mysql.user; 查询所有用户
create user '用户名'@'主机名' identified by '密码' ; 创建用户
alter user '用户名'@'主机' identified with mysql_native_password by '新密码'; 修改用户密码
drop user '用户名'@'主机名'; 删除用户
mysql使用 用户名@主机名 唯一识别一台主机
2,权限控制
all 所有权限
select 查询数据
insert 插入数据
update 修改数据
delect 删除数据
alter 修改表
drop 删除数据库表
creation 创建数据库表
show grants for '用户名'@'主机名';
grant 权限 on 数据库名.表名 to '用户名'@'主机名';
remove 权限列表 on 数据库名.表名 from '用户名'@'主机名';