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

2023-12-24 05:53:41

添加外键约束:
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 ?

文章来源:https://blog.csdn.net/2301_77405161/article/details/135164601
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。