SQL中select語句的語法結構是:“SELECT select_list [ INTO..] FROM table_name [ WHERE…] [ GROUP BY…][ HAVING…][ ORDER BY…];”。
SELECT語句由一系列靈活的子句組成,這些子句共同確定檢索哪些數據。用戶使用SELECT語句除可以查看普通數據庫中的表格和視圖的信息外,還可以查看SQL Server的系統信息。在介紹SELECT語句的使用之前,有必要對SELECT語句的基本語法結構及執行過程作一下介紹。
SELECT語句的語法結構
雖然SELECT語句的完整語法較復雜,但其主要子句可歸納如下:
SELECT?select_list [?INTO?new_table] FROM?table_name [?WHERE?search_condition] [?GROUP?BY?group_by_expression] [?HAVING?search_condition] [?ORDER?BY?order_expression?[?ASC|DESC?]?]
必需的子句只有SELECT子句和FROM子句,其他的子句都是可選的。各子句具體含義如下:
—? ? SELECT子句:指定由查詢返回的列。
—? ? INTO子句:將檢索結果存儲到新表或視圖中。
—? ? FROM子句:用于指定引用的列所在的表或視圖。如果對象不止一個,那么它們之間必須用逗號分開。
—? ? WHERE子句:指定用于限制返回的行的搜索條件。如果SELECT語句沒有WHERE子句,DBMS假設目標表中的所有行都滿足搜索條件。
—? ? GROUP BY子句:指定用來放置輸出行的組,并且如果SELECT子句
—? ? HAVING子句:指定組或聚合的搜索條件。HAVING通常與GROUP BY子句一起使用。如果不使用GROUP BY子句,HAVING的行為與WHERE子句一樣。
—? ? ORDER BY子句:指定結果集的排序。ASC關鍵字表示升序排列結果,DESC關鍵字表示降序排列結果。如果沒有指定任何一個關鍵字,那么ASC就是默認的關鍵字。如果沒有ORDER BY子句,DBMS將根據輸入表中的數據的存放位置來顯示數據。
SELECT各子句的順序及功能
SELECT語句中的子句順序非常重要。可以省略可選子句,但這些子句在使用時必須按適當的順序出現。它們在SELECT查詢語句中的排列順序及主要作用如表4.1所示。
表4.1? SELECT查詢語句各子句的順序及作用
順序序號 |
子句關鍵詞 |
子句功能 |
1 |
SELECT |
從指定表中取出指定列的數據 |
2 |
FROM |
指定要查詢操作的表 |
3 |
WHERE |
用來規定一種選擇查詢的標準 |
4 |
GROUP BY |
對結果集進行分組,常與聚合函數一起使用 |
5 |
HAVING |
返回選取的結果集中行的數目 |
6 |
ORDER BY |
指定分組的搜尋條件 |
如果在同一個SELECT查詢語句中,用到了表4.1中所示的一些查詢子句,則各查詢子句的排列就依照它們的順序序號由低到高的順序。