外键

外键条件

    外键要存在,首先必须保证表的存储引擎是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  ---每个班选出第一个学生

你可能感兴趣的:(外键)