关系表:
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;
说明:等值连接也称为内部连接,为最常用的联结方式