表与表之间的关系:
1.一对多
一对多的建表原则:在多的一方创建一个字段,字段作为外键指向一方的主键.
2.多对多
多对多的建表原则:需要创建第三张表,中间表中至少要有两个字段,这两个字段分别作为外键指向各自一方的主键。
3.一对一
一对一的建表原则:主键对应,让一对一的双方的主键进行建立关系,唯一且非空。
多表查询:
1.合并结果集
作用:合并结果集就是把两个select语句的查询结果合并到一起
合并结果集有两种方式:
union:去除重复记录;
union all:不去除重复记录;
被合并的两个结果列数必须相同类型可以不同。
2.连接查询
作用:求出多个表的乘积,可以通过过滤筛选需要的数据。添加where限定语句查询出两张表有关系的列相同的数据。
3.子查询
子查询即为嵌套查询,如果一条语句中包含两个即以上select,那么就是子查询语句,里面的查询叫做子查询,外面的查询叫做父查询,一般是先执行子查询,后执行父查询。
子查询出现的位置:
a:where后,作为被查询条件的一部分,同时还可使用以下关键字:any(跟结果集里面的部分多行单列进行比较,满足就返回true);all(跟所有的进行比较,都满足才返回true)
b:from后,作临时表
内连接:
遵循方式:select * from 表1 inner join 表2 on 表1.列名=表2.列名.
特点:查询结果必须满足条件
外连接:
a:左外连接:以左表为主表,右表为从表。
左连接是先查询出左表,然后查询右表,左表中满足条件和不满足条件都显示出来,右边不满足条件的为null
b:右外连接:以右表为主表,左表为从表。