第三章

Querying Data in Tables

•select

•select [distinct] cloumn_list from table_name [order by coumn_name [asc | desc] [, column_name [asc | desc]…]]

•[ ] 可寫可不寫

•| 擇一

•distinct:查詢不重覆的資料

•查詢特定欄位

•select column_name1, column_name2, … from table_name

•查詢所有欄位

•select * from table_name

•查詢其他資料庫的值

•select * from database_name.擁有者.table_name

•一般「擁有者」都會省略

•先決條件,必須要有使用的權限

•查詢結果中返回結果集,結果集的信息可以被格式化,包含

–重命名列標題

–包括字符串

–更改列的順序

•更改查詢結果的欄位名稱

•select column_name [ as ] “new_coumn_name” from table_name

•查詢結果增加一個固定字串

•select coumn_name, “固定字串”, coumn_name from table_name

•查詢結果的順序

•select 第一欄, 第二欄 from table_name

•你多種方法可以修改的結果集的資訊

–從結果集消除重複值

–結果集的排序行

–執行數學計算的結果集內

•從結果集消除重複值

•select [distinct] cloumn_list from table_name

•要加在欄位的前面

•distinct 後面可以放多個欄位,就會變成查詢多個欄位的惟一

•結果集的排序行

•select cloumn_list from table_name order by coumn_name [asc | desc]

•desc:由大到小

•不加的話是由小到大

•如果要排序的欄位有兩個以上,有按照順序以序排序

•執行數學計算的結果集內

•select column_name1 + column_name2 from table_name

•直接使用數學運算符數

•+、-、*、/

•%(餘數)

•合併兩個select

•select column_name1, column_name2 from table_name union [ all ] select column_name1, column_name2 from table_name

•union 不會列出重覆資料,union all 會列出重覆資料

•條件資料型類必需要相容,欄位數要相同

•結果的欄位名稱,以第一個查詢為主

•條件

•select column_name, … from table_name where column_name = “值”

•NULLs:空值

–不等於 0,不等於 “”,不可比較

–使用 is NULL 查詢空值

–使用 is non-NULLs 查詢不是空值

•in:同時多個值

•between:範圍

–不適用「字元」

•like:字串中的特定字元

•% 可有可無 (萬用字元)

•_ 任一單一字元

•[ ] 符合定義的任一字元

•[^] 不符合定義的任一字元

•可以一起使用

•如果要查詢的字元是特殊字元的話,要加入 escape (跳脫字元) 「$」(例:查詢 _ ,”$_”)

•複合條件

–and 和 or

–and 二者都要符合

–or 擇一

–順序為 not , and , or

•比較運算符

•字符比較,包含在引號中的值

•數字比較,不包含在引號中的值

NULLs

•一個NULL表示未知值

–NULL不等於0

–NULL不等於””

•NULL被認為是小於,大於或等於任何其他值

•兩個NULL不互相等於

•列定義為允許空值(nullable columns)或不允許為NULL

•任何涉及NULL的算術運算,會回傳NULL結果

•找到NULL的列,使用的條件是NULL

IN

•select column_list from table where column in (value1, values2, …)

•查詢多個關鍵值

BETWEEN

•select column_list from table where column between value1 and value2

•給定範圍內搜索

LIKE

•select column_list from table where column like wildcard_pattern

•給定的字符樣式的關鍵字

•萬用字元是一個字符(或字符集),可以讓你指定的Adaptive Server查尋某些字符模式

•Escape字符是用來表示一個字符是文字

•select distinct type from titles where type like “%$_%” escape “$”

複合條件

•select column_list from table where condition1 { and | or } condition2

–使用這些關鍵字加入條件

•and必須滿足兩個條件

•or只需要滿足一個條件

–當使用複合條件,每個條件必須說明充分

•錯誤範例:select title from titles where type = ‘mod_cook” or “trad_cook”

邏輯運

•多個邏輯運算符的順序

•not > and > or

•使用括號強制計算的順序,或讓你的意圖明確