13创建高级连结
创建高级连结
1.使用表别名
理由:
1.缩短SQL语句
2.允许在单条SQL语句中使用多次相同的表
1.1创建方法
使用AS关键字
SELECT cust_name, cust_contacts |
2.使用不同类型的连结
2.1自连结
对同一张表进行两次嵌套查询时,可以使用子查询,也可以使用给每次查询的表起别名的自连结来防止二义性。
SELECT c1.cust_id, c1.cust_name, c1.cust_contact |
2.2自然连结
无论何时对表进行连结,至少有一个列出现在不止一个表中(被连结的列)。
然而检索结果中,相同的列只出现一次,这就是自然连结,由SELECT语句选择时用户自主完成。(即每一列都是唯一的,不允许第二次出现)
2.3外部连结
在两个表的关联列内容并不完全一致时,即其中一个列有另一个没有的内容时,使用外部连结来使其显示而不是忽略。
SELECT Customers.cust_id, Orders.order_num |
在From子句中使用关键字OUTER JOIN。使用LEFT或RIGHT来注明以哪一张表为基准。(即确定显示哪一张表的所有信息)。
另一种简化语法
在where中使用
*=
或=*
注明外部连结的左右基准
SELECT Customers.cust_id, Orders.order_num |
全外部连结
找出两张表中的所有信息,即使在另一张表中不存在。
方法:将关键字中的LEFT或RIGHT改为FULL。
3.使用带聚集的连结
聚集函数可以从单个表汇集数据,也可以和连结一起使用。
SELECT Customers.cust_id, COUNT(Orders.order_num) AS num_order |
发布于