回顾 : 续上一篇SQL及其基本操作 上
DQL查询语句还有哪些功能?
1. 排序查询
关键字 :order by
;语法:order by 子句
另外还有排序方式 ASC
(升序,默认的) DESC
(降序)
需要注意的是如果值相同的话可以对使用多个排序条件
例如
2.聚合函数
什么是聚合函数?
也就是将一列数据作为一个整体,进行纵向计算
关键字 :count
(计算个数) ;max
(最大值); min
(最小值);sum
;(求和); avg
(平均值)
要注意count(*)
;当遇到null时就会被排除;那么一般需要计算是都是采用主键
3.分组查询
关键字:group by
;语法:group by 分组字段
where和having的区别?
- where 在分组之前进行限定,如果不满足条件,则不参与分组。
- having在分组之后进行限定,如果不满足结果,则不会被查询出来。
- where 后不可以跟聚合函数,having可以进行聚合函数的判断。
4.分页查询
关键字:limit
;语法:limit 开始的索引,每页查询的条数
公式:开始的索引 = (当前的页码 - 1) * 每页显示的条数
要注意的是limit
是MySQL特有的分页查询关键字
约束
什么是约束?
约束就是对表中的数据进行限定以保证数据的正确性、有效性和完整性。
那么约束有哪几种?
1.非空约束
非空约束顾名思义就是某一列的值不能为null
关键字:not null
;
例如可以在创建表时添加约束
可以在创建表后添加约束
2.唯一约束
唯一约束就是某一列的值不能有重复
关键字:unique
先说几个注意问题:唯一约束可以有null值但是只能有一个;删除唯一约束是用drop index 约束字段名
3.主键约束
什么是主键?
首先是非空且唯一的;一个表只能有一个主键;主键就是表中记录的唯一标识
关键字:primary key
添加主键约束可以在创建表时在数据类型后面添加主键;也可以在创建表后通过alter table
方式添加主键
另外在主键后面还可以添加一个自动增长关键字:auto_increment
自动增长就是自动添加递增数字
移除自动增长
4.外键约束
什么叫外键约束?
外键约束就是使表与表之间产生关系;从而保证数据的正确性;另一个方面减少了数据冗余问题
语法:constraint
外键名称 foreign key
(外键列名称) reference
主表名称(主表列名称)
可以再创建表时添加;通常都是在最后一个外键列的下一项添加
也可以在创建表后添加;因为添加外键通常在主表中添加那么就要先有副表
首先创建两张表
然后添加外键
删除外键
有外键约束的结果
外键约束有一个级联操作
什么是级联操作?
级联操作的目的是当外键表中的数据发生变化时主表中的数据也随之变化
语法:在外键约束的语法上添加on update cascade
级联的效果
删除级联:on delete cascade
CET4P247
- explosive
- era
- arise
- happen
- poem
- element
- accidental