【287天】每日项目总结系列025(2017.11.19)

叨叨两句

  1. ~sql

1、多表之间的关系

外键:保证引用的完整性和数据的准确性
添加外键的sql语句:alter table 表名 add foreign key(外键列名) references 主键表名(主键列名)
删除外键的SQL语句:alter table 表名 drop foreign key 外键名
一对多:在多的一方添加一个外键指向一的一方的主键
多对多:建立一张第三方表,该表除了id字段以外,还至少有两个字段分别做为外键指向两张表的主键
一对一:先当成一对多来搞,而后给多的一方的外键字段添加unique约束code

2、多表链接查询

1.交叉查询:查询出来的结果集是一个笛卡尔积,有不少错误数据
2.要筛选出正确数据,就要使用链接查询
2.2内链接查询(知足条件则显示,不知足则不显示)it

2.2.1隐式内链接
    select * from a,b where a.外键=b.主键
2.2.2显示内链接
    select * from a [inner] join b on a.外键=b.主键

2.3外链接查询(主表的数据所有显示,从表的数据若知足条件则显示若不知足条件则以null显示)io

2.3.1左外链接(以join左边的表为主表)
select * from a left [outer] join b on a.外键=b.主键
2.3.2右外链接(以join右边的表为主表)
select * from a right [outer] join b on a.外键=b.主键

2.4子查询(一个select语句中嵌套另一个select语句,也就是说一个select语句做为另一个select语句的条件)table

2.5联合查询(合并两个select语句查询到的结果集)select

union    会去重
union all 不会去重

2.6分页查询 limit a,b a表示开始查询的数据条目的下标 b表示查询多少条数据sql语句

a = (curpage-1)*b