进阶操作
- 一.约束
- 1.约束类型
- 2.NULL约束
- 3.unique:唯一约束
- 4.default:默认值约束
- 5.primary key:主键约束
- 6.foreign key:外键约束
- 7.check约束(了解内容)
- 二.表的设计
- 1.一对一
- 2.一对多
- 3.多对多
- 三.新增
- 四.查询
- 1.聚合函数
- 1.1 count
- 1.2 sum
- 1.3 avg
- 1.4 max
- 1.5 min
- 2.group by 字句
- 3.having
一.约束
1.约束类型
NOT NULL - 指示某列不能存储 NULL 值。
UNIQUE - 保证某列的每行必须有唯一的值。
DEFAULT - 规定没有给列赋值时的默认值。
PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
CHECK - 保证列中的值符合指定的条件。对于MySQL数据库,对CHECK子句进行分析,但是忽略CHECK子句
2.NULL约束
3.unique:唯一约束
4.default:默认值约束
这是咋们设置了相应的name值,那么我们不设置呢?是不是默认的hello呢?
用来进行指定列查询
我们没有给name赋值,但是它有一个默认值,这就是default的用法.
5.primary key:主键约束
对于整数类型的主键,常配搭自增长auto_increment来使用。插入数据对应字段不给值时,使用最大值+1
6.foreign key:外键约束
注意事项:
1.外键约束在所有的条件写完之后最后写
2.本表的条件或列必须在引用的表中存在
3.新增记录的时候,先查询父表中是否存在’
4.删除数据的时候,必须先删除子表中的数据,使他不依赖于父表,再删除父表的记录.
7.check约束(了解内容)
create table test_user (
id int,
name varchar(20),
sex varchar(1),
check (sex =‘男’ or sex=‘女’)
);
二.表的设计
1.一对一
2.一对多
3.多对多
三.新增
– 创建用户表
DROP TABLE IF EXISTS test_user;
CREATE TABLE test_user (
id INT primary key auto_increment,
name VARCHAR(20) comment ‘姓名’,
age INT comment ‘年龄’,
email VARCHAR(20) comment ‘邮箱’,
sex varchar(1) comment ‘性别’,
mobile varchar(20) comment ‘手机号’
);
四.查询
1.聚合函数
1.1 count
1.2 sum
1.3 avg
1.4 max
1.5 min
2.group by 字句
SELECT 中使用 GROUP BY 子句可以对指定列进行分组查询。需要满足:使用 GROUP BY 进行分组查询时,SELECT 指定的字段必须是“分组依据字段”,其他字段若想出现在SELECT 中则必须包含在聚合函数中。
分组之前 用where
分组之后 用having
3.having
having字句用于分组之后的,所以我们要求平均薪资大于20000的必须先分组之后才知道谁是大于20000薪资的.