我爱编程

【MySQL必知必会】第15章:

2018-04-09  本文已影响23人  100gle

15.1 联结

SQL最强大的功能之一就是能在数据检索查询的执行中联结(join)表,但在掌握联结之前需要了解一下的名词概念:

关系表

关系表是指包含了共同关联列的众多表格,一般表格的数量大于等于2

主键和外键

15.2 创建联结

简单联结

基本的联结通过WHERE子句就可以进行创建:

SELECT vend_name, prod_name, prod_price
FROM vendors, products
WHERE vendors.vend_id = products.vend_id
ORDER BY vend_name, prod_name;

笛卡尔积

没有联结条件的表返回的结果为笛卡尔积,即检索出的行的数目N是第一个表中的行树n乘以第二个表中的行数m
可以近似理解为,当第一列中只有5个值($n=5$),第二列中有10个值($m=10$),那么返回的笛卡尔积就是50($N=nm=510$),此时返回的行数就50行

15.3 内联结

使用WHERE语句来进行联结是等值联结(即一一对应),等值联结也称为内联结,但是其并不使用WHERE子句,而是使用其他语法:

SELECT vend_name, prod_name, prod_price
FROM vendors INNER JOIN products
ON vendors.vend_id = products.vend_id;

15.4 多表联结

SELECT语句中可联结的表的数目没有限制,创建联结也基本类似:

SELECT prod_name, vend_name, prod_price, quantity
FROM orderitems, products, vendors
WHERE products.vend_id = vendors.vend_id
    AND orderitems.prod_id = products.prod_id
    AND order_num = 20005;
上一篇下一篇

猜你喜欢

热点阅读