1.select 4.对分组后的记录进行统计计算
2.from 1.从指定的表中取出所有的记录
3where 2.根据条件进行筛选记录
4.group by 3.根据指定的字段进行分组
5.having 5.对统计后的结果再次进行筛选
6.order by 6.根据指定的字段进行排序
7.limit 7.取出指定的偏移量和行数的部分记录
2.事务
1.什么是事务:
1.是数据库操作的最基本的单元,在逻辑上是一组操作,要么都成功,如果其中有一条失败,就都失败
2. 事务的特性
1. 原⼦性: 有多个操作,要么都成功,如果有⼀个失败,就所有的 都失败
2. ⼀致性: 操作之前和操作之后的总量不变
3. 隔离性: 在并发操作中,多事务操作,多事务之间不互相影响
4. 持久性: 当事务操作完成之后,进⾏事务的提交,数据库才真 正发⽣变化
3. mysql的事务处理 只⽀持InnoDb 和 BDB 数据表类型
1. 表类型 优点 缺点
2. MyISAM 快速度,占⽤空间⼩ 不⽀持事务和外键
3. InnoDB ⽀持事务和外键 速度慢,占⽤空间⼤
4. BDB ⽀持事务 ,不⽀持外键 速度慢,占⽤空间⼤
4. ⾃动提交模式
1. 使⽤set autocommit 来改变⾃动提交的模式
2. set autocommit =0 #关闭⾃动提交
3. set autocommit =1 #开启 ⾃动提交
4. mysql中默认的是⾃动提交
5. select @@autocomiit; #查看⾃动提交的模式
6. 事务的实现⽅法
1. start transaction(begin) 开启⼀个事务,标记事务的⼀个起点
2. commit 提交⼀个事务给数据库
3. rollback 将事务回滚,数据回到本次事务初始的状态
7. 事务的处理步骤
1. 关闭⾃动提交
2. 开启⼀个事务
3. commit 或 rollback
4. 开启⾃动提交
3. 索引
1. 索引的作⽤
1. 提⾼查询的速度
2. 确保数据的唯⼀性
3. 可以加速表和表之间连接,实现表与表之间参照完整性
4. 使⽤分组和排序⼦句进⾏检索时,可以显著减少分组和排序 的时间
2. 索引的分类
1. 主键索引(primary key)
1. 学⽣表中的学号,就是⼀个唯⼀标识,可以作为主键
2. 唯⼀索引( unique key)
1. 避免在同⼀个表中,某列数据的值重复
2. 与主键的区别
1. 主键索引只能有⼀个
2. 唯⼀索引可以有多个
3. 常规索引( index | key)
1. 作⽤: 快速定位特定数据
2. index和key都可以设置常规索引,主要⽤于查找条件字段
3. 不宜添加太多常规索引, 影响数据的插⼊和删除和修改 的速度
5. 索引准则
1. 索引不是越多越好
2. ⼩数据量的表建议不要加索引
3. 索引⼀般⽤在查找条件的字段上,如 where order by 后边 的列名
4. 字段的值是多个的不适合做索引
5. 字段内容不是经常变化的,适合做索引,如果给经常变化 的字段添加索引反⽽会降低性能
6. 不宜添加过多索引,每添加⼀条索引都会占⽤磁盘空间
6. 查看表的索引和删除索引
4. 备份
1. 数据库的备份⾮常有必要
2. 数据转移
3. 备份⽅法
1. 数据库的管理 ⼯具 sqlyog navicate
2. mysqldump 备份⼯具
1. 格式: mysqldump -h主机名 -u⽤户名 -p密码 数据库名 table1 table2 >路径⽂件.sql
3. -t 只有数据没有表结构
4. -d 只有表结构没有数据
3. 恢复数据库
1. mysql -u⽤户名 -p密码 数据库名< 备份的⽂件.sql
1. 要先有这个数据库
2. ⽤source语句
1. 先进⼊mysql客户端 mysql -uroot -p密码
2. source ***.sql
3. 使⽤sql语句导⼊和导出数据
1. 如果命令不能⽤查 https://baijiahao.baidu.com/s? id=1731318787265238561&wfr=spider&for=pc
2. select * into outfile "路径⽂件名" from 表名 #输⼊ 的⽂件名不能先存在
3. load data infile "⽂件名" into table 表名