第十二课 联结表
来源:互联网 发布:优化推广什么意思 编辑:程序博客网 时间:2024/05/22 01:32
第十二课 联结表
预习与回顾:
第十一课学习了什么是子查询,如何使用它们,子查询常用于WHERE子句的IN操作符中,以及用来填充计算列;第十二课学习什么是联结,为什么使用联结,如何编写使用联结的SELECT语句。
12.1、联结
!!数据查询的执行中联结(join)表。!!
A、 关系表
各表通过某些共同的值互相关联(所以才叫关系数据库)。表中具有唯一的标识。此标识称为主键(pri
marykey)。可伸缩(scale)能够适应不断增加的工作量而不失败。设计良好的数据库或应用程序称为可伸缩性好(scale well)。
B、 Why?联结
联结是一种机制,用来在一条SELECT语句中关联表,因此称为联结。联结不是物理实体。换句话说,它在实际的数据库表中并不存在。DBMS会根据需要建立联结,它在查询执行期间一直存在。
12.2、创建联结
输入▼
SELECT vend_name, prod_name, prod_price
FROM Vendors, Products
WHEREVendors.vend_id = Products.vend_id; ---所指定的两列(prod_name和prod_price)在一个表中,而第三列(vend_name)在另一个表中。
!!在引用的列可能出现歧义时,必须使用完全限定列名(用一个句点分隔表名和列名)。!!
!!WEHER子句的重要性!!
笛卡儿积(cartesian product):由没有联结条件的表关系返回的结果为笛卡儿积。检索出的行的数目将是第一个表中的行数乘以第二个表中的行数。叉联结:有时,返回笛卡儿积的联结,也称叉联结(cross join)。
输入▼
SELECT vend_name, prod_name, prod_price
FROM Vendors, Products;
内联结:等值联结(equijoin),它基于两个表之间的相等测试。这种联结也称为内联结(inner join)。
输入▼
SELECT vend_name, prod_name, prod_price
FROM Vendors INNER JOINProducts
ONVendors.vend_id = Products.vend_id;
联结多个表:
输入▼
SELECT prod_name, vend_name, prod_price, quantity
FROM OrderItems,Products, Vendors
WHEREProducts.vend_id = Vendors.vend_id
AND OrderItems.prod_id = Products.prod_id
AND order_num = 20007;
代替11.2--5输入▼
SELECT cust_name, cust_contact
FROM Customers, Orders,OrderItems
WHERECustomers.cust_id = Orders.cust_id
ANDOrderItems.order_num = Orders.order_num
AND prod_id = 'RGAN01';
- 第十二课 联结表
- SQL必知必会 笔记 第十二章 联结表
- 联结表
- SQl 表的联结
- MySQL联结表
- 表的联结方法
- SQL-联结表
- MySQL-联结表
- mysql表联结
- 15 联结表
- 15 联结表
- MySQL联结表与创建高级联结表.md
- SQL必知必会(三) 联结表、创建高级联结、组合查询
- 第十三课 创建高级联结
- SQL——联结表
- 数据库的多表联结
- 【oracle概念】表联结方式
- mysql多表联结查询
- Jzoj3523 JIH的玩偶
- View not attached to window manager
- bzoj1493 线段树
- [高等数学]导数与微分
- 谈谈LCA和RMQ那些事。。。
- 第十二课 联结表
- C#代码实现 快速排序
- Redis集群的几个注意事项
- elasticsearch vs mongodb
- JAVA Freemarker(4)-- 语法大全
- 分治+递归:归并排序的递归算法
- 洛谷 2822 [NOIP2016] 组合数问题 递推
- Antd Tabs如何修改TabPane样式
- day30 Linux中安装JDK, MySQL, tomcat, 部署nginx集群, 以及window中部署tomcat+nginx集群