mysql
DDL语句
DDL对数据库操作的语句,包括数据库,表和字段的创建,查询,删除,修改
DDL数据库操作
查询所有数据库
show databases;
创建数据库
create database [if not exit] 数据库名称;
删除数据库
drop database [if exit] 数据库名称;
使用数据库
use 数据库名称;
查看当前使用数据库
select databases();
DDL表操作
查询当前数据库所有表
show tables;
查询表结构
desc 表名;
查询指定表的建表语句
show create table 表名;
创建表,[]内为可选
create table 表名{
字段一 字段一类型[comment 字段一注释],
字段二 字段二类型[comment 字段二注释],
字段三 字段三类型[comment 字段三注释]
}[comment表注释]
删除表
drop table [if exit] 表名;
删除表,并重新创建该表
truncate table 表名;
DDL表字段操作
添加字段
alter table 表名 add 字段名 字段类型(长度) [commment 注释][约束];
修改字段类型
alter table 表名 modify 字段名 新字段类型(长度);
修改字段(字段名,字段类型)
alter table 表名 change 旧字段名 新字段名 类型;
删除字段
alter table 表名 drop 字段名;
修改表名
alter table 表名 rename to 新表名;
DML语句
DML语句是对表数据的增删改操作
DML表数据操作
添加数据,给指定字段添加数据
insert into 表名(字段名1.字段名2,...) values(值1,值2,...);
给全部字段添加数据
insert into 表名 valuse(值1,值2,...);
批量添加数据
insert into 表名(字段1,字段2,...) values(值1,值2,...),(值1,值2,...);
insert into 表名 values(值1,值2,...),(值1,值2,...);
修改数据
update 表名 set 字段名1=值1,字段名2=值2,...[where 条件];
删除数据
delete from 表名 [where 条件];
DQL语句
DQL是对表数据的查询
DQL条件查询
基础查询
基础查询
select 字段 from 表名;
查询全部数据
select * from 表名;
给字段取别名,as可以省略
select 字段 as 字段别名 from 表名;
去除重复数据
select distinct * from 表名;
条件查询
select 字段 from 表名 where 条件列表;
条件
比较运算符 | 功能 |
---|---|
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
= | 等于 |
!=或<> | 不等于 |
between…and… | 在某个范围之间(包含最大值,最小值) |
in() | 在in之后列表选一个值都符合条件 |
like 占位符 | 模糊匹配(_匹配单个字符,%匹配任意字符) |
is null | 是空 |
逻辑运算符 | 功能 |
---|---|
and 或 && | 并且(多个条件同时成立) |
or或|| | 或者(多个条件任意成立一个) |
not 或! | 非,不是 |
DQL聚合函数
常见聚合函数
函数 | 功能 |
---|---|
count | 统计数量 |
max | 最大值 |
min | 最小值 |
avg | 平均值 |
sum | 求和 |
select 聚合函数(字段) from 表名;
null值不参与聚合函数的计算
DQL分组查询
select 字段 from 表名[where 条件] group by 分组字段 [having 分组后的过滤条件];
where与having的区别
1.执行时机不同,where在分组前执行,having是在分组后执行
2.判断条件不同,where不能对聚合函数进行判断,而having可以.
DQL排序查询
select 字段 from 表名 order by 字段1 排序方式1,字段2 排序方式2;
排序方式:
asc:升序(默认值,从小到大排序)
desc:降序(从大到小排序)
如果是多字段排序,当一个字段值相同时,才会根据第二个字段排序规则
DQL分页查询
select 字段 from 表名 limit 起始索引.查询记录数;
起始索引从0开始, 起始索引 = (查询页码-1) * 每页显示记录数
DQL编写顺序
select 字段 from 表名 where 条件 group by 分组字段 having 分组后条件列表 order by 排序字段列表 limit 分页参数
DCL语句
DCL是用来管理数据库用户,控制数据库的访问权限.
DCL用户管理
查询用户,用户信息存储在mysql数据库中的user表中
use mysql; 进入数据库
select * from user;
创建用户
create user '用户名'@'主机名' identified by '密码';
修改用户密码
alter user '用户名'@'主机名' identified with mysql_native_password by '新密码';
删除用户
drop user '用户名'@'主机名';
DCL权限控制
查询权限
show grants for 用户;
授予权限
grant 权限列表 on 数据库名.表名 to 用户;
撤销权限
revoke 权限列表 on 数据库名.表名 from 用户;