一、关系表
就是将信息分解成多个表,一类数据一个表。各表通过某些共同的值互相关联。
优点:
1、数据信息不会重复记录,不会浪费时间和空间;
2、如果数据信息有变化,只需更改一次单个表中的记录即可。
3、数据是一致的,从而处理数据和生成报表更加简单。
二、为什么使用联结?
使用联结将多个表中的数据通过一条sql语句检索出来。
使用交互式DBMS工具,即图形界面,用来交互式地定义表关系。这些工具极其有助于维护引用完整性。也就是在使用关系表中,仅在关系列中插入合法数据是非常重要的。
三、创建联结(等值联结)
例如:需要将厂商名、产品名、产品的价格都对应显示出来;
SELECT vend_name, prod_name, prod_price
FROM Vendors, Products
WHERE Vendors.vend_id = Products.vend_id;
同时查询两个表、展示两个表中的对应内容。
使用where子句进行联结。这里的联结就是第一个表中的第一行与第二个表中的每一行进行匹配,然后顺序执行。
四、内联结
内联结也就是等值联结,就是两个表中的值相等的联结。
还有一种和前面where子句联结返回的结果是一致的。
用INNER JOIN 来联结两个表;
用ON 来代替where;
SELECT vend_name, prod_name, prod_price
FROM Verdors INNER JOIN Products
ON Vendors.vend_id = Products.vend_id;
五、联结多个表(联结表越多,资源消耗越多,性能也越差)
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 = 20007;
使用不同方式的SQL操作可能会得出一样的结果,所以没有绝对正确或错误的方法。
数据库的性能可能会受操作类型、所使用的DBMS、表中的数据量、是否存在索引或键等条件的影响。所以得多做实验,查看性能,选择最合适的方法。