分组
--1,概述
把数据按照一个规则划分成一个一个的组
对分组后的数据进行过滤就用固定搭配having
--2,语法
group by 字段 having 要过滤的字段
事务
–1,概述
为了保证多条SQL语句要么同时成功,要么就同时失败
MySQL默认就开启了事务,一条SQL一个事务
如果想实现多条SQL在一个事务里执行,只能手动管理事务
开启事务:start transaction/begin
结束事务:commit(成功就提交,失败就自动回滚)/rollback(回滚)
–2,事务的4个特性
ACID
A是原子性–是指多条SQL要么都成功要么都失败
C是一致性–总和守恒
I是隔离性–数据库允许高并发,同时增删改查数据
D是持久性–是指对数据的操作持久有效
–3,事务的隔离级别
读未提交–效率最高,但是安全性最差(多并发时数据可能出错)
读已提交–效率较低,但是安全性较高(oracle数据库的默认级别)
可重复读–效率较低,但是安全性较高(MySQL数据库的默认级别)
串行 – 效率最低,安全性最高(实现表级锁)
索引
–1,测试
#索引
#查看索引,主键会自动创建索引
SHOW INDEX FROM teachers
#创建索引
#语法:CREATE INDEX 索引名 ON 表名 (字段名)
CREATE INDEX name_index ON teachers (tname) #普通的索引可以 提高查询效率
#创建唯一索引 --索引列出现的值必须唯一
#ALTER TABLE 表名 ADD UNIQUE (字段名)
ALTER TABLE teachers ADD UNIQUE (tbirthday)
创建复合索引
ALTER TABLE teachers ADD INDEX fuhe_index(prof,depart)