自学书籍.MySQL必知必会 - 联结表

关系表:

1.关系表的设计就是要保证把信息分解成多个表,一类数据一个表,各表通过某些常用的值(即关系设计中的关系)互相关联

2.外键为某个表中的一列,它包含另一个表中的主键值,定义了两个表之间的关系,关系数据库可以有效的存储和方便的管理,所以关系数据库比非关系数据库可伸缩性要强


为什么要使用联结:

1.使用关系表必然数据会分布在不同的表中,为了单条SELECT语句检索出数据,必须使用联结

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


WHERE子句的重要性:

1.默认没有使用WHERE子句的限制,会返回笛卡尔积,检索出来的行数其实是第一个表的行数*第二个表的行数

SELECT vend_name, prod_name, prod_price
FROM vendors, products
ORDER BY vend_name, prod_name;


内部联结:

1.基于两个表之间的相等测试,等值连结,这种连接称为内部联结

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


联结多个比表:

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;
或
SELECT prod_name, vend_name, prod_price, quantity
FROM products
     INNER JOIN vendors
  ON products.vend_id = vendors.vend_id
     INNER JOIN orderitems
  ON orderitems.prod_id = products.prod_id AND order_num = 20005;

说明:等值连接也称为内部连接,为最常用的联结方式

你可能感兴趣的:(自学书籍.MySQL必知必会 - 联结表)