我是谁?勇吉拉
40.多对多关系创建
老师表,学生表,关系表
外键约束在的时候,无法删除被引用的表。
41.为什么拆分表
避免大量冗余数据的出现,表与表的结构会更加清晰。
42.合并结果集 union 与union all
多表查询之合并结果集:把2个select的查询结果合并到一起。union合并时去除重复记录,union all 合并时不去重。
注意:被合并的两个结果,列数,列类型必须相同
43.笛卡尔集现象
连接查询:跨表查询,需要关联多个表进行查询
笛卡尔集:集合(a,b),集合(1,2),笛卡尔积为(a,1),(a,2),(b,1),(b,2)
同时查询两个表出现的是笛卡尔集的结果。
44.去除笛卡尔集
查询时表后面加别名,就可以起别名。
逐行判断,id相等才提取。
45.内连接之等值连接
外键约束添加数据,不约束查询数据
等值连接:inner join/join ,去笛卡尔集的另外一种写法
还有多表连接、非等值连接、自连接
46.左连接left join
保留左边表所有数据,右边只查出满足条件的内容
47.右连接right join
与左连接相反,保留右边表所有数据,左边只查出满足条件的内容
48.多表联查
多对多,三表联查,先2个表连接,再把连接的结果和第三个表连接
99查询法
内连接
49.非等值连接准备数据
on之后可以不跟等号,就是非等值连接
建3张表
50.非等值连接实现
99查询
内连接查询
51.自然连接
连接查询会产生无用的笛卡尔集,常用主外键去除,自然连接无需给出主外键等式,会自动找到这一等式。
要求:两张表中列名称和类型完全一致;会去除相同的列。
52.navicat中query build简洁
创建好外键联系后,可以在查询-》查询创建工具(query build),可以可视化显示。还可以用点点点查询数据,并自动生成select语句
参照完整性是为了防止数据输入的错误,查询的时候关系不大。