limit::分页查询
方式一:只取前几条
方式二,从n+1条数据开始展示,设置总共展示几条
order by (ASC 可以省略不写):升序
order by desc:降序
统计每年入职的员工
select year(hiredate),count(1) from emp group by year(hiredate) ;
count :统计总数
max/min :求最大值最小值
sum/avg :求和/求平均值
group by 是用来对查询完了的结果进行分组 与之搭配的是having
聚合函数与非聚合函数的组合必须要用group by来分组才可无误差执行,group by后必须用非聚合函数来分组,否则业务意义不对
注意:where里不能用别名,而且不能出现聚合函数,
having中没做要求,
但是where比较高效 在分组前查询 减少数据
特性:
原子性:把多条SQL看成一个原子,要么都成功,要么都失败
隔离性:数据库为了保证高性能,也支持高并发,但也产生了安全隐患,要保证多喝操作之间是隔离的
持久性:对数据库的操作是产生持久影响的
一致性:保证数据在多个系统中是一致的
隔离级别:
读未提交:性能最好,但安全性最差
读已提交:性能较差,安全性较高,是oracle数据库的默认隔离级别
可重复读:性能较差,安全性较高,是mysql数据库的默认隔离级别
串行化:性能最差,安全性最高
查询mysql的隔离级别
开始事务:star transaction
结束事务:commit / rollback
commit 是提交事务 才会真正对数据库造成改变
rollback 会撤销此前所有操作,回滚到事务起点
事务处理:
1.mysql中只有使用了innodb数据库引擎的数据库才支持事务
2.事务处理是用来维护数据的完整性,要么都执行,要么都不执行
3.事务是用来管理增删改的,查不会’损坏’数据
4.mysql的事务是默认开启的
5.事务也可以手动开启,star后需要手动提交事务
表强化 6约束:
主键约束
唯一约束
非空约束
检查约束
check 检查值是否符合要求
默认约束
default 自动生成默认值
外键约束
给字段添加外键约束,通过外键描述两张表的关系
foreign key(user_id)
特点:子表受主表约束,主表想删除数据也受子表约束,想删除除非子表中的数据也删除
通过建立关系避免表的重复
注意:and 比 or高效,后者查到的数据多
事务的四大特性:
原子性:把多条sql看成一个原子,密不可分,要么都成功,要么都失败
隔离性:高性能的同时也存在高并发,要保证操作的隔离性
一致性:保证数据在多个系统中是一致的
持久性:对数据库的操作是持久存在的
隔离级别
读已提交 性能最好 安全性最差
读未提交 性能较差 安全性较强 oracle
可重复读 性能较差 安全性较强 mysql
串行化 性能最差 安全性最强
字段约束
主键约束
唯一约束
非空约束
检查约束 check
外键约束
语法:foreign key(子表的主键) references 主表表名(主表id)
默认约束 default
`



