多表的属性之间存在多种关系:
多表设置:
一对多:
在 “多”的表上添加外键字段,指向对应的表的主键。
一对一:
在两者任意的一方添加指向对应表主键的外键,实现关联。
多对多:
通过另外设置一张关系表,像矩阵记录图一样,设置id,表一id,关联的表二id。
多表查询:
两张表关联起来,有交集。如果直接查询两张表,得到的是两张表的笛卡尔积,也就是两张表每条数据的所有交叉组合。而内外连接查询就是为了去掉笛卡尔积中不需要的数据,取其需要的数据。
内连接:
只返回交集的数据,sql语句:
select 字段1,字段2
from
表1,表2
where
条件
或:
select 字段1,字段2
from
表1
join
表2
on
条件
外连接:
外连接不光返回两张表的交集,还返回其中一张表的所有
1.左外连接:返回左表的所有以及两者的交集:
sql语句:
select 字段1,字段2
from
表1
left join
表2
on
条件
2.右外连接:返回左表的所有以及两者的交集:
sql语句:
select 字段1,字段2
from
表1
right join
表2
on
条件
子查询
子查询就是在查询中嵌套查询,用来查到更复杂的数据。
具体就是把一次查询得到的数据作为标量或列或行或者表,对其进行第二次筛选。
例如行子查询:
-- 选出和杨玉环一样入职时间和工作的人
select *
from
表1
where
(entrydate,job)=(select entrydate,job from 表1 where name = '杨玉环');


被折叠的 条评论
为什么被折叠?



