文章目录
- 🍎1.数据库约束
- 🍐约束类型
- 🍆1.1NOT NULL
- 🍆1.2UNIQUE
- 🍆1.3DEFAULT
- 🍆1.4PRIMARY KEY
- 🍆1.5FOREIGN KEY
- 🍏2.查询操作
- 🍟2.1聚合查询
- 🍔2.1.1聚合函数
- 🍔2.1.2GROUP BY
- 🍔2.1.3HAVING
🍎1.数据库约束
🍐约束类型
- NOT NULL - 指示某列不能存储 NULL 值。
- UNIQUE - 保证某列的每行必须有唯一的值。
- DEFAULT - 规定没有给列赋值时的默认值。
- PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
- FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
- CHECK - 保证列中的值符合指定的条件。对于MySQL数据库,对CHECK子句进行分析,但是忽略CHECK子句。
🍆1.1NOT NULL
创建表时,指定某一列不为空
例如在生成一个用户信息表时,此时身份证ID这一列就可以建立NOT NULL约束
🍆1.2UNIQUE
唯一约束
设置表中某列的数据唯一不重复
例如每个人的身份证是唯一的
🍆1.3DEFAULT
默认值约束
表创建好后,我们向表中填充内容时,如果某一列没有插入数据,则系统会默认生成一个数据来填充
此时我们在向表中填充数据时,如果没有输入姓名,则系统会默认将无名氏作为他的姓名。
🍆1.4PRIMARY KEY
主键约束
主键就相当于是NOT NULL 和 UNIQUE的结合体
主键不能为空,也不能重复
主键通常搭配auto_increment来使用
auto_increment的作用是当插入的数据没有赋值时,使用最大值+1
我们可以看到我们并没有给到id赋值,而在表中id确实是+1自增的。
当我们赋予一个id100时,那么id会从最大值100向后自增
🍆1.5FOREIGN KEY
外键约束
foreign key (字段名) references 主表(列)
外键用于关联其他表的主键或唯一键,
例如有一个学生表和班级表
学生只能是一个班级的,而班级可以有很多学生
🍏2.查询操作
🍟2.1聚合查询
🍔2.1.1聚合函数
函数 | 说明 |
---|---|
COUNT([DISTINCT] expr) | 返回查询到的数据的数量 |
SUM([DISTINCT] expr) | 返回查询到的数据的总和,不是数字没有意义 |
AVG([DISTINCT] expr) | 返回查询到的数据的平均值,不是数字没有意义 |
MAX([DISTINCT] expr) | 返回查询到的数据的最大值,不是数字没有意义 |
MIN([DISTINCT] expr) | 返回查询到的数据的最小值,不是数字没有意义 |
例如在如下这张表中查询平均年龄,使用AVG函数
🍔2.1.2GROUP BY
SELECT 中使用 GROUP BY 子句可以对指定列进行分组查询。需要满足:使用 GROUP BY 进行分组查询时,SELECT 指定的字段必须是“分组依据字段”,其他字段若想出现在SELECT 中则必须包含在聚合函数中。
select column1, sum(column2), .. from table group by column1,column3;
例如有如下一个表,表中的数据为:部门,姓名,薪资。
我们要在这个表中统计出各个部门的员工的平均工资,那么该如何计算呢?
首先我们将这些数据根据部门进行分类,之后在对各个部门的薪资进行均值计算
🍔2.1.3HAVING
GROUP BY 子句进行分组以后,需要对分组结果再进行条件过滤时,不能使用 WHERE 语句,而需要用HAVING
在上个表中,我们按照部门进行分类之后,要查询出平均工资小于1500的角色和平均工资
以上就是本篇文章所有内容,如果对你有帮助的话,点赞关注支持一下吧!