【书山有路】SQL必知必会 第12课

本章的主题是“联结表”,主要介绍什么是联结,为什么使用联结,如何编写使用联结的SELECT语句。

概念

  • 由没有联结条件的表关系返回的结果为笛卡尔积。检索出的行的数目将是第一个表中的行数乘以第二个表中的行数。笛卡尔积又称为Cross Join

警告

  • 要保证所有的联结都有WHERE子句,否则DBMS将返回比想要的数据多得多的数据。
  • DBMS在运行时关联指定的每个表,以处理联结。这种处理可能非常耗费资源,因此应该注意,不要联结不必要的表。联结的表越多,性能下降越厉害。

联结

SQL最强大的功能之一就是能在数据查询的执行中联结(join)表。联结是利用SQL的SELECT能执行的最重要的操作,很好地理解联结及其语法是学习SQL的极为重要的部分。

关系表

相同的数据出现多次绝不是一件好事,这是关系数据库设计的基础。关系表的设计就是要把信息分解成多个表,一类数据一个表。各表通过某些共同的值互相关联。

笛卡尔积

使用下面的SQL命令:

SELECT vend_name,prod_name,prod_price
FROM Vendors, Products
WHERE Vendors.vend_id = Products.vend_id;

内连接

目前为止使用的联结称为等值联结,它基于两个表之间的相等测试。这种联结也称为内联结。可以使用另外一种语法:

SELECT vend_name, prod_name, prod_price
FROM Vendors INNER JOIN Products
ON Vendors.vend_id = Products.vend_id;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值