【数据库】SQL相关知识点总结1(数据库约束、三大范式、关系模型、聚合函数)
【数据库】SQL相关知识点总结1(数据库约束、三大范式、关系模型、聚合函数)
- 1. 数据库约束
- 2. 三大范式
- 2.1 第一范式
- 2.2 第二范式
- 2.3 第三范式
- 3. 关系模型
- 3.1 一对一关系
- 3.2 一对多关系
- 3.3 多对多关系
- 4. 聚合函数
1. 数据库约束
- 非空设计 NOT NULL
CREATE TABLE `table` (
`id` bigint NOT NULL
);
- 唯一约束 UNIQUE
CREATE TABLE `table` (
`id` bigint UNIQUE
);
- 主键约束 PRIMARY KEY
CREATE TABLE `table` (
`id` bigint NOT NULL,
PRIMARY KEY (`id`)
);
- 默认约束 DEFAULT
CREATE TABLE `table` (
`id` bigint NOT NULL,
`age` bigint DEFAULT(18),
PRIMARY KEY (`id`)
);
- 外键约束 FORIGN KEY
ALTER TABLE `table2`ADD INDEX(`name`);
CREATE TABLE `table1` (
`id` bigint NOT NULL,
`age` bigint NULL,
`name` varchar(255) NULL,
PRIMARY KEY (`id`),
CONSTRAINT `name` FOREIGN KEY (`name`) REFERENCES `table2` (`name`)
);
2. 三大范式
2.1 第一范式
定义:要求每个列表都不可再分
反例:
正例:
2.2 第二范式
定义:在满⾜第⼀范式的基础上,不存在⾮关键字段对任意候选键的部分函数依赖。存在于表中定义了复合主键的情况下。
反例:
正例:
2.3 第三范式
定义:在满⾜第⼆范式的基础上,不存在⾮关键字段,对任⼀候选键的传递依赖。
反例:课程名称与课程编号存在传递依赖,所以将重新建一个新表
正例:
3. 关系模型
3.1 一对一关系
3.2 一对多关系
3.3 多对多关系
多对多需要重新创建一个关联表
4. 聚合函数
以下表为例:
- COUNT(列) 统计结果的条数
SELECT COUNT(math) FROM `exam`;
- SUM(列) 求和
SELECT SUM(math) FROM `exam`;
5. AVG(列) 求平均值
SELECT AVG(math) FROM `exam`;
- MIN(列) 求最小值
SELECT MIN(math) FROM `exam`;
- MAX(列) 求最大值
SELECT MAX(math) FROM `exam`;