mysql高級聯結-使用表別名和使用聯結條件

使用表別名

別名除了用于列名和計算字段外,SQL還允許給表名起別名。這樣做有兩個主要理由:

1.縮短sql語句

2.允許在單條 SELECT 語句中多次使用相同的表。

請看下面的 SELECT 語句。它與前一章的例子中所用的語句基本相同,但改成了使用別名:

輸入:

select?cust_name,cust_contact?from?customers?as?c,order?as?o,orderitems?as?oi?where?c.cust_id?o.cust_id?and?oi.order_num?=?o.order_num?and?prod_id?=?'TNT2';

分析:可以看到, FROM 子句中3個表全都具有別名。 customers AS c建立 c 作為 customers 的別名,等等。這使得能使用省寫的 c 而不是全名 customers 。在此例子中,表別名只用于 WHERE 子句。但是,表別名不僅能用于 WHERE 子句,它還可以用于 SELECT 的列表、 ORDER BY 子句

以及語句的其他部分。

應該注意,表別名只在查詢執行中使用。與列別名不一樣,表別名不返回到客戶機。

使用聯結和聯結條件

在總結關于聯結的內容前,有必要匯總一下關于聯結及其使用的某些要點。

1.注意所使用的聯結類型。一般我們使用內部聯結,但使用外部聯結也是有效的。

2.保證使用正確的聯結條件,否則將返回不正確的數據。

3.應該總是提供聯結條件,否則會得出笛卡兒積。

4.在一個聯結中可以包含多個表,甚至對于每個聯結可以采用不同的聯結類型。雖然這樣做是合法的,一般也很有用,但應該在一起測試它們前,分別測試每個聯結。這將使故障排除更為簡單。

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享