-
关系表:保证把信息分解成多个表,一类数据一个表,各表通过某些常用的值互联关联
-
主键:该表的唯一标识。 外键:为某个表中的一列,包含了另一个表的主键值
-
可伸缩性:能够适应不断增加的工作量而不失败,设计良好的数据库==可伸缩性好/scale well
-
联结:是一种机制,用来在一条SELECT语句中关联表,因此称之为联结。可以联结多个表返回一组输出。
-
**如何创建联结?**规定要连接的所有表以及如何将它们关联
SELECT vend_name,prod_name,prod_prices FROM vendors,products WHERE vendors.vend_id = products.vend _id 通过这个完全限定名进行匹配 ORDER BY vend_name,prod_name;
-
内部联结:以上属于等值联结,基于两个表之间的相等测试,也被称为内部联结。换一个语法:
SELECT vend_name,prod_name,prod_prices FROM vendors INNER JOIN products 不同 ON vendors.vend_id = products.vend _id; 不同
ANSI SQL规范首选INNER JOIN语法,明确的使用联结语法能确保不会忘记联结条件
-
联结多个表:首先列出所有的表,之后定义表之间的关系
SELECT prod_name,vend_name,prod_prices,quantity FROM orderitems,products,vendors WHERE products.vend_id = vendors.vend_id AND orderitems.prid_id = products.prod_id AND order_num = 20005;
不要联结过多的表,对性能影响大。
-
14章的子查询可以改为联结查询
SELECT cust_name,cust_contact FROM customers WHERE (SELECT cust_id FROM orders WHERE order_num IN (SELECT order_num FROM orderitems WHERE prod_id = 'TNT2'));
SELECT cust_name,cust_contact FROM customers,orders,orderitems WHERE costomers.cust_id = orders.cust.id AND orderitems.order_num = orders.order_num AND prod_id = 'TNT2';
MySQL-15联结表-必知必会
最新推荐文章于 2024-08-13 23:22:43 发布