多表连接查询
1.并(union)
并(union):将具有相同字段数目和字段类型的两张表关联到一起进行查询
(1)union
union:去掉重复记录
select 列 from 表1
union
select 列 from 表2
(2)union all
union all:不去重
select 列 from 表1
union all
select 列 from 表2
2.笛卡尔积
笛卡尔积:将两张表的所有字段进行合并,两站表中的记录会进行组合
select * from 表1,表2;
3.连接查询(join)
连接查询(join):基础是笛卡尔积
(1)内连接(inner join)
内连接(inner join):保留关系中符合条件的记录
A、自然连接(natural join)
自然连接(natural join):不设置连接条件,根据表中相同的字段进行记录匹配,去掉重复的字段。
B、等值连接(inner join…on…)——重要
等值连接(inner join...on...):连接的表要有相同的字段,匹配字段值相同的记录
在关键字'on'后使用'='进行连接条件的设置
B、不等连接(inner join…on…)
在关键字'on'后使用'>、<、<=、>=、!='进行连接条件的设置
(2)外连接(outer join)
外连接(outer join):在表的笛卡尔集中,不仅保留所有匹配的数据记录,而且还会保留部分不匹配的数据记录。
A、左外连接(left join)重要!!!
A、左外连接(left join):又称左连接,将笛卡尔积中满足条件的记录和左表中不满足条件的记录匹配出来。
select * from 左表 left join 右表 on 条件;
B、右外连接(right join)重要!!!
B、右外连接(right join):又称右连接,将笛卡尔积中满足条件的记录和右表中不满足条件的记录匹配出来。
C、全外连接(full join)
全外连接(full join):将笛卡尔积中满足条件的记录和左右表中不满足条件的记录都匹配出来。
实体之间的关系
1.一对一的关系(1:1)
一对一的关系(1:1):一个对应一个身份证。在对应的表中增加一列
2.一对多的关系(1:n)
一对多的关系(1:n):班级和学生(一个班级可以有多个学生,一个学生只能存在于一个班级),两张表建立主外键关联,一端不动,多端设置外键对应一端的主键
3.多对多的关系(m:n)
多对多的关系(m:n):学生和课程(一个学生可以学习多门课程,一门课程可以被多个学生学习),生成一个中间表,将其转换成两个一对多的关系
数据库的设计
数据库的设计(PowerDesigner软件的应用)
1.模型
(1)CDM
CDM(Conceptual Data Model):概念数据模型,就是实体图
(2)PDM
PDM(Physical Data Model):物理概念模型,就是表格。是由CDM转换而来