SQL语句分类
分类 | 说明 |
---|---|
DDL | 数据定义语言,用来定义数据库对象(数据库、表、字段) |
DML | 数据操作语言,用来对数据库表中的数据进行增删改 |
DQL | 数据查询语言,用来查询表中的记录 |
DCL | 数据控制语言,用来创建数据库用户、控制数据库的访问权限 |
DDL语句
1. 数据库操作
查询
查询所有数据库
show databases;
查询当前数据库
select database();
创建
create database 数据库名;
删除
drop database 数据库名;
使用
use 数据库名;
2. 表操作
查询
查询当前数据库的所有表
show tables;
查询表结构
desc 表名;
查询指定表的建表语句
show create table 表名;
创建
create table 表名(
字段1 字段1类型[comment 字段1注释],
字段2 字段2类型[comment 字段2注释],
...
字段n 字段n类型[comment 字段n注释]
)[comment 表注释];
修改
添加字段
alter table 表名 add 字段名 类型(长度) [comment 注释] [约束];
修改数据类型
alter table 表名 modify 字段名 新数据类型(长度);
修改字段名和字段类型
alter table 表名 change 旧字段名 新字段名 类型(长度) [comment 注释];
删除字段
alter table 表名 drop 字段名;
修改表名
alter table 表名 rename to 新表名;
删除
删除表
drop table [if exists] 表名;
删除指定表,并重新创建该表
truncate table 表名;
DML语句
1. 添加数据
给指定字段添加数据
insert into 表名(字段名1,字段名2,...) values(值1,值2,...);
给全部字段添加数据
insert into 表名 values(值1,值2,...);
批量添加数据(多行)
insert into 表名(字段名1,字段名2,...) values(值1,值2,...),(值1,值2,...),(值1,值2,...);
insert into 表名 values(值1,值2,...),(值1,值2,...),(值1,值2,...);
2. 修改数据
update 表名 set 字段1=值1,字段名2=值2,... [where 条件];
3. 删除数据
delete from 表名 [where 条件];
DQL语句
select 字段列表
from 表名列表
where 条件列表
group by 分组字段列表
having 分组后条件列表
order by 排序字段列表
limit 分页参数
1. 基本查询
查询多个字段
select 字段1,字段2,字段3,... from 表名
select * from 表名
设置别名
select 字段1 [as 别名1],字段2 [as 别名2],... from 表名
去除重复数据
select distinct 字段列表 from 表名
2. 条件查询
语法
select 字段列表 from 表名 where 条件列表;
条件
比较运算符 | 功能 |
---|---|
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
= | 等于 |
<>或!= | 不等于 |
between...and... | 在某个范围之内(含最大值、最小值) |
in(...) | 在in之后的列表中的值,多选一 |
like 占位符 | 模糊匹配(_匹配单个字,%匹配任意个字符) |
is null | 是null |
逻辑运算符 | 功能 |
---|---|
and 或 && | 并且(多个条件同时成立) |
or 或 || | 或者(多个条件任意一个成立) |
not 或 ! | 非,不是 |
3. 聚合函数
常见函数 | 功能 |
---|---|
count | 统计数量 |
max | 最大值 |
min | 最小值 |
avg | 平均值 |
sum | 求和 |
语法
select 聚合函数(字段列表) from 表名;
4. 分组查询
语法
select 字段列表 from 表名 [where 条件] group by 分组字段名 [having 分组后过滤条件]
5. 排序查询
语法
select 字段列表 from 表名 order by 字段1 排序方式1,字段2 排序方式2;--asc或desc
6. 分页查询
语法
select 字段列表 from 表名 limit 起始索引,查询记录数;
-- 起始索引从0开始,起始索引=(查询页码-1)*每页显示的记录数(MySQL里用的是limit,其它的数据库的关键字不一样)
DCL语句
1. 管理用户
查询用户
use mysql;
select * from user;
创建用户
create user '用户名'@'主机名' identified by '密码';
修改用户密码
alter user '用户名'@'主机名' indentified with mysql_native_password by '新密码'
删除用户
drop user '用户名'@'主机名';
2. 权限控制
权限列表 | 说明 |
---|---|
all,all privileges | 所有权限 |
select | 查询数据 |
insert | 插入数据 |
update | 修改数据 |
delete | 删除数据 |
alter | 修改表 |
drop | 删除数据库/表/视图 |
create | 创建数据库、表 |
查询权限
show grants for '用户名'@'主机名';
授予权限
grant 权限列表 on 数据库名.表名 to '用户名'%'主机名';
撤销权限
revoke 权限列表 on 数据库名.表名 from '用户名'%'主机名';
文章内容通过观看B站视频10天精通《MySql》课程总结而出。