用SELECT語句可以實現數據庫的查詢操作,同時,它還可以使用各種子句對查詢結果進行分組統計、合計、排序等操作。SELECT語句還可以將查詢結果生成另一個表(臨時表或永久表)。
SELECT語句的語法格式:
SELECT [ALL|DISTINCT] select_list [INTO [new_table_name]] [FROM {table_name,table_name2,...|view_name,view_name2,...}] [WHERE clause] [GROUP BY clause(子句)] [HAVING clause(子句)] [ORDER BY clause(子句)] [COMPUTE clause(子句)] [FOR BROWSE]
在使用中,子句可以省略,但在列出時按以上順序。
1、簡單查詢
簡單查詢包括SELECT列表、FROM子句和WHERE子句,它們分別指出所查詢的列、查詢對象(表或視圖)、搜索條件等。
如:查詢TongFuHotel表中年齡小於30歲的男性
1 SELECT TongFuHotel.Name,TongFuHotel.Job 2 FROM TongFuHotel 3 WHERE TongFuHotel.Age<30 AND TongFuHotel.Sex='男'
(1)SELECT列表語句
SELECT列表語句(select_list)指定所選擇的列,它可以為一組列名列表、星號、表達式、變量等構成。當用星號表示則為選擇指定表或視圖中的所有列。
SELECT *FROM TongFuHotel
使用SELECT列表語句時,多個被指定的列名之間用逗號分隔。SELECT列表還可以對數值列進行算術運算(包括加、減、乘、除、取模等)。其中,加、減、乘、除操作適用於任何數值型(如int、smallint、tinyint、decimal、numeric、float、money、smallmoney等),而取模運算不能用於money和smallmoney數據類型。此外,還可以指定字符串常量或變量改變它們的輸出結果。
在SELECT語句中使用ALL|DISTINCT選項來顯示所有行(ALL)或刪除重復的行(DISTINCT),缺省時為ALL。使用DISTINCT選項時,對於所有數據重復的SELECT列表數值只顯示一次。
SELECT DISTINCT job FROM TongFuHotel
(2)FROM子句
FROM子句指定SELECT語句查詢相關的表或視圖。最多可指定16個表或視圖,相互之間用逗號分隔。如果這些表或視圖屬於不同的數據庫,可用“數據庫.所有者名稱.對象”格式指定表或視圖。
在FROM子句中可為每個表或視圖指定一個別名,別名緊跟在對象名稱之后,用空格分隔,允許使用別名引用表中各列。
1 SELECT Name,Job 2 FROM TongFuHotel t 3 WHERE t.Age<30 AND t.Sex='男'
(3)WHERE子句限定搜索條件
①WHERE語句可包含條件運算符
a、比較運算符 >、<、>=、<=、=、<>、!>、!< (大小比較)
b、范圍運算符 BWTWEEN...AND、NOT BETWEEN...AND (判斷表達式值是否在指定范圍之內)
c、列表運算符 IN、NOT IN (判斷表達式值是否為列表中的指定項)
d、模式匹配符 LIKE、NOT LIKE (判斷列植是否與指定的字符統配格式相符)
e、空值判斷符 IS NULL、NOT IS NULL (判斷表達式值是否為空)
f、邏輯運算符 AND、OR、NOT (用於多條件的邏輯連接)
②WHERE語句可包含模式匹配符
a、%:可匹配任意類型長度的字符
b、_:匹配單個任意字符,常用於限制表達式的字符長度
c、[]:指定一個字符、字符串或范圍,要求所匹配對象為它們中的任一字符
d、[^]:取值與[]相同,但要求所匹配對象為指定字符以外的任一字符
參考文獻:精通C#數據庫編程.王華傑,黃山編著——北京:科學出版社,2003.10
