叨叨两句
~
一、多表之间的关系
外键:保证引用的完整性和数据的准确性
添加外键的sql语句:alter table 表名 add foreign key(外键列名) references 主键表名(主键列名)
删除外键的SQL语句:alter table 表名 drop foreign key 外键名
一对多:在多的一方添加一个外键指向一的一方的主键
多对多:创建一张第三方表,该表除了id字段之外,还至少有两个字段分别作为外键指向两张表的主键
一对一:先当成一对多来搞,然后给多的一方的外键字段添加unique约束
二、多表连接查询
1.交叉查询:查询出来的结果集是一个笛卡尔积,有很多错误数据
2.要筛选出正确数据,就要使用连接查询
2.2内连接查询(满足条件则显示,不满足则不显示)
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显示)
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语句的条件)
2.5联合查询(合并两个select语句查询到的结果集)
union 会去重
union all 不会去重
2.6分页查询 limit a,b a表示开始查询的数据条目的下标 b表示查询多少条数据
a = (curpage-1)*b
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。