1.参照完整性:从表外键的值参照主表主键进行填充,或者从表外键为NULL。
一般软件开发实务中,外键都是参照主键进行编写
2.外键:主表主键如果出现在从表中,在从表中被称为外键。
3.SELECT的基本语法定义:
SELECT 表别名.列名1 别名,表别名.列名1 别名 --- 数据项选取
FROM 表名1 别名,表名2 别名......表名N 别名 --- 解决数据来源问题
WHERE 查询条件
例如:
-- 查询班级下学生的相关信息,项目包括:班级名称,班级状态,姓名,身份证号
SELECT A.CNAME,A.CSTATE,B.SNAME,SNUMBER
FROM CLASSES A,STUDENT B
WHERE A.CID = B.CID
4.等值连接:
将任意两个表的列,如果内容上相等,就可以拼接到一起练成一行,表示一个数据含义
(1)如果两个表存在主从关系,那么就是将主表主键与从表外键建立等值关系
5.笛卡尔积与连接查询:
笛卡尔积:两张表中记录总数的乘积,
形成的条件:SELECT语句中查询条件编写不恰当
连接查询:就是在笛卡尔积的基础上做数据的二次筛选
6.对于某一结构:电子商务系统中的角色;
(1)供应商:商品的所有者
(2)消费者:商品的购买者
(3)商品:媒介
(4)商品销售信息:描述的供销关系
注意:在电子商务系统中,供销商和消费者角色可以自由转换
7.多表关联查询,常见的表结构特征;
(1)单线连珠
由从表开始逐级向上,通过外键连接主键
如:查询所有供应商的商品销售信息(不考虑性能)
-- 包括:商品流水号商品名称,供应商ID,供应商名称,销售日期,销售数量
SELECT B.HYID,B.HYMC,A.SPID,A.SPMC,C.XSRQ,C.XSSL
FROM TSPB A,THYB B,C.TXSB
WHERE A.HYID = B.HYID
AND A.SPID = C.SPID
在处理多个表查询时,可以先连接两个逐个添加。
(2)一主多从
(3)一从多主
8.SQL语句的执行规律和编写原则:
(1)SQL同一子句下,按照倒序原则执行
(2)先做选择,后做连接,以提高性能
在编写WHERE的时候,将所有的选择条件写在后面,连接条件写在前面
对于FROM语句,从表在前,主表在后(基于主表驱动原则编写FROM)
当两个表不存在主从表关系时,谁的数据少谁放在后面
-- 查询消费者5的购物清单:消费者ID,消费者名称,购买日期,购买数量,所购商品名称
SELECT B.HYID,B.HYMC,C.SPMC,A.XSRQ,A.XSSL
FROM TSXB A,THYB B,TSPB C
WHERE A.SPID = C.SPID
AND A.HYID = B.HYID
AND B.HYID = 5