當前位置:編程學習大全網 - 編程語言 - SQL的語法 詳細 介紹 ?

SQL的語法 詳細 介紹 ?

SELECT 子句

指定由查詢返回的列。

語法

SELECT [ ALL | DISTINCT ]

[ TOP n [ PERCENT ] [ WITH TIES ] ]

< select_list >

< select_list > ::=

{ *

| { table_name | view_name | table_alias }.*

| { column_name | expression | IDENTITYCOL | ROWGUIDCOL }

[ [ AS ] column_alias ]

| column_alias = expression

} [ ,...n ]

參數

ALL

指定在結果集中可以顯示重復行。ALL 是默認設置。

DISTINCT

指定在結果集中只能顯示唯壹行。為了 DISTINCT 關鍵字的用途,空值被認為相等。

TOP n [PERCENT]

指定只從查詢結果集中輸出前 n 行。n 是介於 0 和 4294967295 之間的整數。如果還指定了 PERCENT,則只從結果集中輸出前百分之 n 行。當指定時帶 PERCENT 時,n 必須是介於 0 和 100 之間的整數。

如果查詢包含 ORDER BY 子句,將輸出由 ORDER BY 子句排序的前 n 行(或前百分之 n 行)。如果查詢沒有 ORDER BY 子句,行的順序將任意。

WITH TIES

指定從基本結果集中返回附加的行,這些行包含與出現在 TOP n (PERCENT) 行最後的 ORDER BY 列中的值相同的值。如果指定了 ORDER BY 子句,則只能指定 TOP ...WITH TIES。

< select_list >

為結果集選擇的列。選擇列表是以逗號分隔的壹系列表達式。

*

指定在 FROM 子句內返回所有表和視圖內的所有列。列按 FROM 子句所指定的由表或視圖返回,並按它們在表或視圖中的順序返回。

table_name | view_name | table_alias.*

將 * 的作用域限制為指定的表或視圖。

column_name

是要返回的列名。限定 column_name 以避免二義性引用,當 FROM 子句中的兩個表內有包含重復名的列時會出現這種情況。例如,Northwind 數據庫中的 Customers 和 Orders 表內都有名為 ColumnID 的列。如果在查詢中聯接這兩個表,可以在選擇列表中將客戶 ID 指定為 Customers.CustomerID。

expression

是列名、常量、函數以及由運算符連接的列名、常量和函數的任意組合,或者是子查詢。

IDENTITYCOL

返回標識列。有關更多信息,請參見 IDENTITY(屬性)、ALTER TABLE 和 CREATE TABLE。

如果 FROM 子句中的多個表內有包含 IDENTITY 屬性的列,則必須用特定的表名(如 T1.IDENTITYCOL)限定 IDENTITYCOL。

ROWGUIDCOL

返回行全局唯壹標識列。

如果在 FROM 子句中有多個表具有 ROWGUIDCOL 屬性,則必須用特定的表名(如 T1.ROWGUIDCOL)限定 ROWGUIDCOL。

column_alias

是查詢結果集內替換列名的可選名。例如,可以為名為 quantity 的列指定別名,如"Quantity"或"Quantity to Date"或"Qty"。

別名還可用於為表達式結果指定名稱,例如:

USE Northwind

SELECT AVG(UnitPrice) AS 'Average Price'

FROM [Order Details]

column_alias 可用於 ORDER BY 子句。然而,不能用於 WHERE、GROUP BY 或 HAVING 子句。如果查詢表達式是 DECLARE CURSOR 語句的壹部分,則 column_alias 不能用在 FOR UPDATE 子句中。

INTO 子句

創建新表並將結果行從查詢插入新表中。

用戶若要執行帶 INTO 子句的 SELECT 語句,必須在目的數據庫內具有 CREATE TABLE 權限。SELECT...INTO 不能與 COMPUTE 子句壹起使用。有關更多信息,請參見事務和顯式事務。

通過在 WHERE 子句中包含 FALSE 條件,可以使用 SELECT...INTO 創建沒有數據的相同表定義(不同表名)。

語法

[ INTO new_table ]

參數

new_table

根據選擇列表中的列和 WHERE 子句選擇的行,指定要創建的新表名。new_table 的格式通過對選擇列表中的表達式進行取值來確定。new_table 中的列按選擇列表指定的順序創建。new_table 中的每列有與選擇列表中的相應表達式相同的名稱、數據類型和值。

當選擇列表中包含計算列時,新表中的相應列不是計算列。新列中的值是在執行 SELECT...INTO 時計算出的。

在此次發布的 SQL Server 版本中,select into/bulkcopy 數據庫選項對是否可以使用 SELECT INTO 創建永久表沒有影響。對包括 SELECT INTO 在內的某些大容量操作的記錄量,取決於對數據庫有效的恢復模式。有關更多信息,請參見使用恢復模型。

在以前發布的版本中,如果設置了 select into/bulk copy,則可用 SELECT INTO 創建永久表。

  • 上一篇:當世界上只剩下壹個人的時候忽然聽到有人門的故事
  • 下一篇:人工智能是否會造成大量的失業?
  • copyright 2024編程學習大全網