-- 一对一,一对多(多对一),多对多
-- 多对多的表示 第三张表
-- 第三张表作为从表 拥有其他两个主表的外键
二.合并查询
--UNION取两个表并集(字段名 类型相同)
--UNION ALL 把两个表的数据合在一起
三.多表查询
select * from 表1,表2;
这样查询会产生笛卡尔积(会产生大量的无用数据)
去除错误数据,利用两张表的编号相同来去除
99查询法(利用表中的字段相同 去除重复数据)
select * from 表1 a,表2 b where a.字段=b.字段;
四.连接查询
--内连接
on后面是去除重复数据的条件
select * from 表一 A INNER JION 表二 B on A.字段=B.字段;
--外链接 左外链接 右外链接
--关键词 OUTER可以省略
--左外连接以左边的表为主 会查询出左边表的所有数据
--右外链接反之
--自然连接 关键词 NATURAL JOIN
自动匹配两个表中 相同字段的值
要求字段名和类型相同
--死查询(嵌套查询)
select * from 表名1 where 字段1 筛选条件(
select 字段1 from 表名1 where 条件);
--自连接查询
要查找的信息在一张表里,但一次查不出来,把自己这张表当做两个表来查询
select 字段1,字段2 from 表1 a,表2 b where a.字段1=b.字段2 and 条件;
查询代码的书写顺序和执行顺序
查询语句书写顺序:select – from- where- group by- having- order by-limit
查询语句执行顺序:from - where -group by - having - select - order by-limit