Board logo

標題: MySQL進階_SELECT篇(二) [打印本頁]

作者: narita    時間: 2011-9-6 02:45     標題: MySQL進階_SELECT篇(二)

select list:其中可以包含一項或多項下列內容:
1、「*」,表示按照create table的順序排列的所有列。
2、按照使用者所需順序排列的列名的清單。
3、可以使用別名取代列名,形式如下:column name as column_heading。
4、表達式(列名、常量、函數,或以算術或逐位運算符連接的列名、常量和函數的任何組合)。
5、內部函數或集合函數。
6、上述各項的任何一種組合。
FROM:決定SELECT命令中使用哪些表。一般都要求有此項,除非select_list中不含列名(例如,只有常量、算術表達式等)。如果表項中有多個表,用逗號將之分開。在關鍵詞FROM後面的表的順序不影響結果。
表名可以給出相關別名,以便使表達清晰。這裡的語法是tbl_name [AS] alias_name。例如:
select t1.name,t2.salary from employee as t1,info as t2 where t1.name=t2.name與select t1.name,t2.salary from employee t1,info t2 where t1.name=t2.name是完全等價的。
所有對該表的其他引用,例如在where子句和having子句中,都要用別名,別名不能以數字開頭。
where 子句設置了搜尋條件,它在insert,update,delete語句中的應用方法也與在select語句中的應用方法完全相同。搜尋條件緊跟在關鍵詞 where的後面。如果使用者要在語句中使用多個搜尋條件,則可用and或or連接。搜尋條件的基本語法是[not] expression comparison_operator expression;[not] expression [not] like 「match_string」;[not] expression is [not] null;[not] expression [not] between expression and expression;[not] column_name join_operator column_name;[not] boolean_expression。
and:用來聯結兩個條件,並在兩個條件都是TRUE的時候返回結果。當在同一語句中使用多個邏輯運算符時,and運算符總是最優先,除非使用者用括號改變了運算順序。
or:用來聯結兩個條件,當兩個條件中有任一條件是TRUE的時候返回結果。當在同一語句中使用多個邏輯運算符時,運算符or通常在運算符and之後進行運算。當然使用者可以使用括號改變運算的順序。
between:用來標識範圍下限的關鍵詞,and後面跟範圍上限的值。範圍where @val between x and y包含首尾值。如果between後面指定的第一個值大於第二個值,則該查詢不返回任何行。
column_name:在比較中使用的列名。在會產生歧義時,一定要指明列所在的表名。
comparison_operator:比較運算符。見下表:
符號 意義
=  等於
>  大於
<  小於
>=  大於等於
<=  小於等於
!=  不等於
<>  不等於
在比較char,varchar型資料時,「<」的意思是更接近字母表頭部,「>」代表更接近字母表尾部。一般來說,小寫字母大於大寫字母,大寫字母大於數字,但是這可能依賴於服務器上操作系統的比較順序。
在比較時,末尾的空格是被忽略的。例如,「Dirk」等於「Dirk 」。
在比較日期時,「<」表示早於,「>」表示晚於。
在使用比較運算符比較character和datetime資料時,需用引號將所有資料引起來。
expression:可能是列名、常數、函數或者是列名或常數的任意組合,以及以算術運算符或逐位運算符連接的函數。算術運算符如下表所示:
符號   意義
+    加號
-    減號   
*    乘號
/    除號
is null:在搜尋一個NULL值時使用。
like:關鍵詞,對char、varchar和datetime(不包括秒和毫秒)可以使用like,在MySQL中like也可以用在數字的表達式上。
當使用者在搜尋datetime型資料時,最好是使用關鍵詞like,因為完整的datetime記錄包含各種各樣的日期元件。例如使用者在列 arrival_time中加入一個值「9:20」,而子句where arrival_time=「9:20」卻沒有發現它,因為MySQL把錄入的資料轉換成了「Jan 1,1900 9:20AM」。然而子句where arrival_time like「%9:20%」就能找到它。
boolean_expression:返回「true」或「false」值的表達式。
match_string:由文字和通配符組成的串,用單引號或雙引號引起來,是匹配模式。通配符如下表所示:
符號  意義
%    0或多個文字的文字串
_    任何一單個文字




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)