外键条件
外键要存在,首先必须保证表的存储引擎是innodb
列类型必须与父表的主键类型一致
一张表中的外键名字不能重复
增加外键的字段数据已经存在,必须保证数据与父表主键要求对应
外键约束
有三种约束模式
district:严格模式(默认的)
cascade:级联模式
set null:置空模式
语法:foreign key(外键字段) references 父表(主键字段) on delete 模式(set null) on update 模式(cascade);
联合查询
基本语法:
select语句1
union [union 选项]
select语句2……
union 选项
all:保留所有,不管重复
distinct:去重,默认的
按位置分类
from子查询
where子查询
exists子查询
按结果分类
标量子查询
例:
select * from student where = (select id from class where name = 'Python1809'); ---id 一定只有一个值(一行一列)
列子查询列子查询
=any等价于in; --其中一个即可
any等价于some; -- 二者是一样的
=all为全部
还可以 != any != some != all
例:
select * from student where in (select id from class);
行子查询
例:
select * form student where (age,height) = (select max(age) , max(height) from student);
(age,height)称为行元素
表子查询
例:
select * from (select * from student order by height desc) as s group by c_id ---每个班选出第一个学生