数据库(多对多表关系及关联查询)

添加外键约束:
alter table 表名 drop foreign_key fk(外键约束)_ 表名_列名_列名

  添加约束规则:
  1.主表中没有对应记录,不能将记录添加到从表
  2.从表存在与主表对应的记录,不能从主表中删除该行
  3.删除主标前,先删从表
  
  删除外键:alter table 表名 drop foreign key fk_表名_列名_列名
  多对多选择:一对多或多对一都可以添加一个外键实现
   
  关联查询,多表关联 信息来自两张表中
  关联是没有任何限制,会产生笛卡尔乘积现象
  要添加有效连接条件
  按功能分:内连接:
  把满足两张表中交交集部分数据查询出来
   select 结果 from 表1,表2 where 表1 column1=表2.column2  

            外连接:左外连接:即使不满足条件,也会把左边表数据查询出来
                  select  结果


                       右外连接:即使不满足条件,也会把右边表数据查询出来
    select 列名1,列名2*from 表名 inner join 表名2  on 列名 =列名
  eg:  select number ,name,gender,from stu inner join major on mjorid=id
  内连接中:
 出现两张表有相同的列名时,我们要进行定义:
 1.

 select 
 s.number ,s.name,s.phone   m.name
 from stu s
 inner join major m on s.majorid=m.id  

满足条件关联在一起
 2.

 select 
 s.number,s.name,gender,m.name 
 from stu s,major m
 where s.majorid=m.id

  先产生一个笛卡尔乘积,后进行条件筛选
 

eg:
 统计每个专业有多少学生:
 

select count(number),
 m.name  mname
 from 
 stu s right join major m on s.majorid =m.id
 group by m.name  

你可能感兴趣的:(数据库,sql,mysql)