一、DDL
(Data Definition Language):数据定义语言,用来定义数据库对象,库、表、列等;创建、删除、修改:库,表结构;
1、DDL -数据库操作
show databases; 查看当前有哪些数据库
create database 数据库名; 创建数据库
use 数据库名; 使用数据库
select database(); 查看当前位于哪个数据库
drop database 数据库名; 删除数据
2、DDL-表操作
show tables; 查看当前数据库所有的表
create table 表名(字段 字段类型,字段 字段类型); 创建表
如:create table employee(id int comment '编号',name varchar(50) comment '姓名',
age int comment '年龄');
desc 表名; 查看当前表有哪些字段
show create table 表名; 查看这张表的建表语句
alter table 表名 add/modify/change/drop/rename to...; 修改表
drop table 表名;删除表
二、DML
(Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。
1.添加数据
insert into 表名(字段1,字段2...) values (值1,值2...);
2.修改数据
update 表名 set 字段1=值1,字段2=值2[where 条件];
3.删除数据
delete from 表名 [where 条件];
三、DQL
(Data QueryLanguage) 数据查询语言:是一种用于从数据库中检索数据的语言。
select 字段列表 , 字段名[as]别名
from 表名
where 条件列表, and or > < = like between ..and in
group by 分组字段列表,
having 分组后条件列表 ,分组之后过滤
order by 排序字段列表,升序asc,降序desc
limit 分页参数,起始索引(从0开始),每页展示多少条记录
四、DCL
(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。
1.用户管理
create user '用户名'@'主机名' identified by '密码'; 创建用户密码
alter user '用户名'@'主机名' identified with mysql_native_password by '密码'; 修改用户密码
drop user '用户名'@'主机名'; 删除用户密码
2.权限控制
grant 权限列表 on 数据库名 表名 to '用户名'@'主机名'; 授权
revoke 权限列表 on 数据库名 表名 from '用户名'@'主机名'; 撤销授权
五、函数
1.字符串函数
concat 字符串拼接
lower 将字符串全部转换为小写
upper 将字符串全部转换为大写
lpad 在字符串左边填充
rpad 右填充
trim 去除左右两侧空格
substring 截取字符串
2.数值函数
ceil 向上取整
floor 向下取整
mod 求模
rand 随机数(0-1之间的随机数)
round 四舍五入
3.日期函数
curdate 获取当前日期
curtime 获取当前时间
now 获取当前日期+时间
year、month、day
date_add 添加时间周期
datediff 两个日期相减差多少时间,第一个日期-第二个日期
4.流程函数
if 判断第一个表达式是否为true,如果为true 返回第二个参数,否则返回第三个参数
ifnull 判断第一个参数是否为null,如果为null 取二一个参数
case[...] when[...] then ... else ... end 条件分支的判断
六、约束
1.非空约束 NOT NULL
2.唯一约束 UNIQUE
3.主键约束 PRIMARY KEY
4.默认约束 DEFAULT
5.检查约束 CHECK
6.外键约束 FOREIGN KEY
七、多表查询
1.连接查询
内连接:相当于查询A、B交集部分数据。
隐式内连接:select...from 表a,表b where 条件...
显式内连接: select...from 表a inner join 表b on 条件...
外连接:
左外连接:查询左表所有数据,以及两张表交集部分数据。
select...from 表a left [outer] join 表b on 条件...
右外连接:查询右表所有数据,以及两张表交集部分数据。
select...from 表a right join 表b on 条件...
自连接:当前表与自身的连接查询,自连接必须使用表别名。
select...from 表a 别名1,表a 别名2 where 条件...
联合查询:union查询,把多次查询的结果合并起来,形成一个新的查询结果集。union all会将全部的数据直接合并在一起,union会对合并之后的数据去重。
2.子查询
sql语句中嵌套select语句,称为嵌套查询,又称子查询。
标量子查询:子查询结果为单个值,常用操作符:><=
列子查询:子查询结果为一列,常用操作符:IN、NOT IN、ANY、SOME、ALL
行子查询:子查询结果为一行,常用操作符:=、<>、IN、NOT IN
表子查询:子查询结果为多行多列,常用操作符:IN
八、事务
1.事务简介
事务是一组操作的集合,这些操作要么同时成功,要么全部失败。
2.事务操作
start transaction;开启事务
commit;提交事务
rollback;回滚事务
3.事务四大特性(ACID):
原子性(Atomicity):事务是不可分割的最小操作单元,要么全部成功,要么全失败。
一致性(Consistency):所有数据保持一致状态。
隔离性(Isolation):保证事务在不受外部并发操作影响的独立环境下运行。
持久性(Durability):事务一旦提交或回滚,对数据库中的数据的改变就是永久的。
4.并发事务问题
脏读、不可重复读、幻读
5.事务隔离级别--解决事务并发问题
read uncommitted、read committed、repeatable read、serializable