- 
外键约束:
 - 
概述:一个(A)表的一列指向另一个(B)表的一列(B表的主键约束),那么A表的这一列就是外键约束。
 
- 
格式:foreign key (外键字段)references 主表(字段)
 
- 
特点:从表外键的值是对主表主键的引用; 从表外键类型必须与主表主键类型一致
 
- 
目的:保证数据完整性
 
 
- 
- 
多表查询:
 - 
笛卡尔积:
 语法:select *from A,B; 将两个表乘积显示 
 SELECT 字段1,字段2 FROM 表1,表2; 
 文章源自小温Talk.听闻 | 小温Talk-https://azureyun.azurewebsites.net/907.html
- 
隐式查询(条件查询)——sql96规范
 
 
- 
SELECT 字段1,字段2 FROM 表1,,表2 where 条件; 文章源自小温Talk.听闻 | 小温Talk-https://azureyun.azurewebsites.net/907.html
SELECT pname,cname FROM persons,cars WHERE pid=pids; 文章源自小温Talk.听闻 | 小温Talk-https://azureyun.azurewebsites.net/907.html
- 
显示查询——sql99规范
 *显示内连接查询 表 
 inner (线) join
 表 on 条件 文章源自小温Talk.听闻 | 小温Talk-https://azureyun.azurewebsites.net/907.htmlselect 【字段】 from 表1 inner join 表2 on 条件; 文章源自小温Talk.听闻 | 小温Talk-https://azureyun.azurewebsites.net/907.html *显示左外连接查询 表 
 left(线) join
 表 on 条件 文章源自小温Talk.听闻 | 小温Talk-https://azureyun.azurewebsites.net/907.htmlselect 【字段】 from 表1 left join 表2 on 条件; 文章源自小温Talk.听闻 | 小温Talk-https://azureyun.azurewebsites.net/907.html *显示右外连接查询 right join on 文章源自小温Talk.听闻 | 小温Talk-https://azureyun.azurewebsites.net/907.html select 【字段】 from 表1 
 right (线) join
 表2 on 条件; 文章源自小温Talk.听闻 | 小温Talk-https://azureyun.azurewebsites.net/907.html左右的区别:左外连接已关键字左边的为主,有外连接已关键字右边的为主 文章源自小温Talk.听闻 | 小温Talk-https://azureyun.azurewebsites.net/907.html 
- 
子查询:以一条语句的结果作为另一条语句的条件
  
 注意:如果结果条件是多条数据,就不能用等号,用in 
 
- 
表与表之间的关系:
 - 
一对多关系:
 
 
- 
常见实例:客户与订单 分类和商品 部门和员工
建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键
- 
多对多关系:
 
常见实例:学生和课程 商品和订单 人和角色
建表原则:需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键(就是一个多对多拆分成两个一对多)
 
	
联合主键:多个字段都作为主键,非空唯一
非空:任何主键都不能为空,
唯一:多个主键的值不能完全重复
- 
一对一关系:
 
实际开发中应用不多,因为一对一可以创建成一张表
建表原则
外键唯一:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一unique
外键是主键: 主表的主键和从表的主键,形成主外键关系
- 
注意事项:
 - 
从表不能够添加(更新)主表中不存在的数据
 
- 
主表不能够删除(更新)从表中已经存在的数据
 
 
- 
4.关系分析:
用户表(user)
订单表(order)
商品信息表(product)
商品类别表(category)
 
	
5.自连接查询:
查询员工及直属领导的名字
companys
cid(员工id) cname(员工的名字) pid
1 zhangsan 3
2 lisi 4
3 rongrong 5
4 jinlian 5
5 boss
 
				
文章末尾固定信息

