1.单表增强
1.1 查询加强
1.2 分页查询
1.3 分组加强
1.4 多子句查询
2.多表查询
2.1 多表笛卡尔集
两张表同时查询时,从第一张表取出一行和第二张表每一行进行组合,查询结果含有两张表的所有列,行数为两张表相乘,这样的结果称为笛卡尔集 例:emp有13行,dept有4行 查询结果54行
emp表(13行): dept表(4行): 两张表查询结果: 多表查询的关键在于条件的过滤
2.2 自连接
3. 子查询
子查询:子查询是指嵌入在其它 sql 语句中的 select 语句,也叫嵌套查询。 单行子查询:单行子查询是指只返回一行数据的子查询语句。 多行子查询:多行子查询指返回多行数据的子查询 使用关键字 in。 子查询临时表 将子查询结果当做表使用
4.all和any
5.多列子查询
6.表复制和去重
7.合并查询
单独查询第一条语句 单独查询第二条语句 UNION ALL 合并查询第一二条语句(不能去重)
UNION 合并查询第一二条语句(可以去重)
8.外连接
8.1 左外连接
8.2 右外连接
9.约束
9.1 主键
9.1.1 主键的使用
9.1.2 主键的使用细节
9.2 unique
9.2.1 unique的使用
9.2.2 unique的细节说明
9.3 外键
9.3.1 外键的使用
主表和从表建立外键约束,如果学生表插入的班级编号不存在,则插入失败。但学生表的班级编号可以为nill,建立外键约束后,想要删除主表的记录必须先确定从表没有外键指向该记录
9.3.2 外键的细节说明
想要删除主表的记录必须先确定从表没有外键指向该记录
9.4 check
mysql 5.7还不支持check,只做语法校验,不会生效,添加数据时如果数据不再约束范围之内,也会被存到表中。mysql8中新增了check的新特性。
10.练习:商品表设计
11.自增长
11.1 自增长使用
11.2 自增长细节说明
当添加时给自增长字段指定的值,以该指定的值为准,并且自增的值该为从该值开始
12.索引
12.1 索引的机制
12.2 建立索引
索引的类型 索引的添加
12.3 索引的删除,修改和查询
12.4 创建索引的规则
13 事务
13.1 事务理解
开始一个事务后设置保存点,进行一系列dml(增删改),中间可设置保存点,当发现前面dml中有错误时可回到之前的保存点,当提交后则没有机会回滚。回退到a点后不能再回退到b
13.2 事务操作
回退事务 提交事务
13.3 事务的细节
13.4 事务的隔离级别
13.4.1 理解
不可重复读主要差别在于不可重复读是修改或删除产生的,幻读是插入操作产生的。
不可重复读和幻读理解:本来开始事务1到提交前所看的信息应该为开启事务这个时间点到之前的信息,在中间没有数据的添加、修改和删除。如果在另一个事务2提交后,事务2修改删除的数据在事务1中查询到,就是不可重复读,事务2增添的数据在事务1中查询到,就是幻读。
13.4.2 读未提交(read uncommitted)
发生脏读:如图,左边的事务还未提交,右边的控制台已经读取到左边的改变 下面发生不可重复读和幻读
13.4.3 读已提交(read committed)
不发生脏读 发生不可重复读和幻读
13.4.4 可重复读(repeteable read)
不发生脏读 不发生不可重复读和幻读
13.4.5 可串行化(serializable)
当隔离级别为可串行化时,其他事务操作时,本事务会自动加锁,无法操作
13.5 设置隔离级别以及事务acid特性
设置隔离级别 事务acid特性
14.存储引擎
15.视图
15.1 视图的原理
概念
15.2 视图的使用
15.3 视图的使用细节
15.4 视图的最佳实践
15.5 视图联系——多表联合查询建立视图
16.mysql管理
16.1 用户管理
mysql用户 用户操作 创建用户 删除用户 修改用户密码
16.2 权限管理
权限说明 给用户授权 回收用户权限 创建用户并给用户创建查询和添加的权限 被创建用户查询和添加权限的使用 执行无权限操作时会报错 回收权限
16.3 mysql管理细节
|