等值联结(内部联结):基于两个表之间的相等测试。
外键:某个表中的一列,它也是另一个表的主键值,定义两个表之间的关系。
如:venders表的主键vend_id也是products的外键,将两个表关联,利用供应商ID(vend_id)可以了解供应商的详细信息。
联结:不是物理实体,存在于查询的执行当中。
用selete语句来实现关联
例:搜索每个供应商订的产品
selete vend_name,prod_name,prod_price
from venders,products
where venders.vend_id=products.vend_id
order by vend_name,prod_name;
where子句的重要性:作为过滤条件,它只包含那些匹配给定条件的行。
所以应该保证所有的联结都有where子句。
另一种写法:(内部联结)
selete vend_name,prod_name,prod_price
from venders inner join products
on venders.vend_id=products.vend_id;
联结表的数目没有限制:但是表越多,性能下降越厉害。
例:由订单物品表关联产品表,由它进一步得到供应商的信息,即订单号20005的单子,它的产品,以及订购相应产品的供应商。
selete prod_name,vend_name,prod_price,quantity
from orderitems,venders,products
where venders.vend_id=products.vend_id
and orderitems.prod_id=products.prod_id
and order_num=20005;
维护引用的完整性:即在products中存在的供应商ID一定是合法值(即venders中存在该供应商)。
关系数据库的可伸缩性远比非关系型数据库要好。
可伸缩性:能够适应增大的工作量