1.簡單SELECT語句
“SELECT *” 的意思是:返回在所指定的記錄源中能找到的所有字段。這種命令形式很方便,因為你無需知道從表中檢索的字段名稱。然而,檢索表中的所有列是低效的。因此,因該只檢索需要的字段,這樣可以大大的提高查詢的效率。
2.使用 From 子句指定記錄源
From 子句說明的是查詢檢索記錄的記錄源;該記錄源可以是一個表或另一個存儲查詢。
例:Select * From students 檢索students表中的所有記錄
3.用 Where 子句說明條件
Where 子句告訴數據庫引擎根據所提供的一個或多個條件限定其檢索的記錄。條件是一個表達式,可具有真假兩種判斷。
例:Select * From USERS Where ID='123' (注:標準的SQL語句使用單引號作為字符的定界符)
返回USERS表中ID字段為"123"的所有記錄。
使用 And 和 Or 邏輯可以將兩個或更多的條件鏈接到一起以創建更高級的 Where 子句。
例:Select * From USERS Where ID = '123' And PWD <> ''
返回ID為“123”PWD不為空的記錄。
SQL語句中的比較運算符
操作符
功能
操作符
功能
>
大于
>=
大于或等于
<
小于
<=
小于或等于
=
等于
<>
不等于
Between
在某個取值范圍內
Like
匹配某個模式
In
包含在某個值列表中
(1)Between 操作符
Select * From USERS Where ID Between 1 And 100
Between 操作符返回的是位于所說明的界限之內的所有記錄值。這個例子就返回ID字段從1到100之間的全部記錄。
(2)Like 操作符和通配符
Select * From USERS Where ID Like "%3%"
Like 操作符把記錄匹配到你說明的某個模式。這個例子是返回ID中含“3”的所有記錄。
四種通配符的含義
通配符
描述
通配符
描述
%
代表零個或者多個任意字符
[ ]
指定范圍內的任意單個字符
_
代表一個任意字符
[^]
不在指定范圍內的任意單個字符
全部示例子如下:
Like "BR%" 返回以"BR"開始的任意字符串
Like "br%" 返回以"br"開始的任意字符串
Like "%een" 返回以"een"結束的任意字符串
Like "%en%" 返回包含"en"的任意字符串
Like "_en" 返回以"en"結束的三個字符串
Like "[CK]%" 返回以"C"或者"K"開始的任意字符串
Like "[S-V]ing" 返回長為四個字符的字符串,結尾是"ing",開始是從S到V
Like "M[^c]%" 返回以"M"開始且第二個字符不是"c"的任意字符串
4.使用Order By排序
在一個正式的 Select 查詢之后包含一個 Order By 子句,后跟想排序的字段(可以有多個)便可以說明一個排序順序。
例:Select * From USERS Where ID Like '%3%' Order By ID
對返回的記錄按ID進行排序。
以降序排序(默認按升序),只需在排序的字段之后使用 Desc 關鍵字。
例:Select * From USERS Where ID Like '%3%' Order By ID Desc
5.使用 Top 顯示某個范圍的第一個記錄或最后一個記錄
使用 Top 關鍵字可以只顯示一個大記錄前面或后面的少數幾個記錄。在查詢中,Top 關鍵字與排序子句一起把結果集限制為少數幾個記錄或按某個百分比顯示整個結果記錄集合中的一部分。
例:Select Top 3 * From USERS 返回USERS表中的前3條記錄
Select Top 10 Percent * From USERS 返回USERS表中前面的10%個記錄
Select Top 3 * From USERS Order By ID Desc 返回USERS表中ID最大的的3條記錄
6.用 As 對字段名進行別名化
為什么在查詢中對字段命以別名,或重新命名,這樣做的原因有兩個:
(1)所涉及的表的字段名很長,想使字段在結果集中更易處理一些。
(2)創建的查詢產生了某些計算或合計列,需要對之進行命名。
例:Select ID As 用戶號 ,PAS As 密碼 From USERS
8.連接查詢
在實際使用過程中經常需要同時從兩個表或者兩個以上表中檢索數據。連接就是允許同時從兩個表或者兩個以上表中檢索數據,指定這些表中某個或者某些列作為連接條件。在 SQL Server 中,可以使用兩種連接語法形式,一種是 Ansi 連接語法形式,這是連接用在 From 子句中,另外一種是 SQL Server 連接語句形式,這是連接用在 Where 子句中。
Ansi 連接語法形式如下:
Select table_name.column_name,table_name.column_name,......
From {table_name [join_type] Join table_name On search_conditions}
Where [search_conditions]
在 Ansi 語法形式中,可以 Ansi 連接關鍵字來確定使用的連接形式。
(1)使用 Inner Join 關鍵字,結果集中僅包含滿足條件的行。
(2)使用 Cross Join 關鍵字,結果集中包含兩個表中所有行的組合。
(3)使用 Outer Join 關鍵字,結果集中既包含那些滿足條件的行,還包含那些其中某個表的全部行。
連接有多種形式,例如內連接、外邊接、無限制連接、自邊接等外連接又可以分為左外連接、右外連接和全連接。下面詳細介紹這些連接方法。
(1)內連接
內連接用于把兩個表一個第三個表,在這個第三個表中,僅包含那么滿足連接條件的記錄的記錄行。內連接主要有兩種形式,即等價連接和自然連接。
等價連接就是連接通過比較列值是相等的列,等價連接總會產生冗余行,因為連接的列要顯示兩次。
自然連接就是比較列值與兩個或者多個表中列是否相等,但是連接的列只顯示一次。自然連接清除了等價連接產生的冗余行。
(2)無限制連接
無限制連接有時也稱為交叉連接,產生一個結果集。在這個結果集中中,包含了所連接的兩個表中所有行的全部組合。交叉連接既可以使用 Ansi 連接的 Cross Join 關鍵字來創建,也可以使用 Where 子句的 SQL Server 連接形式可以產生非常大的結果集,例如如果在連接中,一個表的記錄是12行,另一個表中的記錄是15行,那么在產生的結果集中就有 180 行記錄。因此,這種連接形式通常沒有什么實際意義。
(3)外連接
內連接是保證兩面三刀個表中所有的行都要滿足連接條件,而外連接則不然。在外連接中,某些不滿條件的列也會顯示出來,也就是說,只限制其中一個表的行,而不限制另一個表中行。這種連接形式在許多情況下是非常有用的。外連接只能用于兩個表中。
在 Ansi 語法形式中,包含下列三種外連接關鍵字:
◆Left Outer Join 包含了左表中的全部行(表達式中第一個表)
◆Right Outer Join 包括了右表中的全部行(表達式中第二個表)
◆Full Outer Join 包括了左表和右表中所有不滿足條件的行
在 SQL Server 連接語法形式中,包括下列兩種外連接運算符:
◆* = 包含了左表中的全部行(表達式中第一個表)
◆ = * 包括了右表中的全部行(表達式中第二個表)
左外連接和右連接都可以產生同樣的結果,關鍵是看表達式中出現的前后順序
(4)自連接
自連接就是把某一個表中的行同該表中另外一些行連接起來。自連接主要用在查詢比較相同的信息。例如,如果希望得到所有合作出版書的作者,那么可以使用比較作者代號的查詢。所比較的列必須有相同的或者兼容的數據類型。
為了連接同一個表,為該表指定兩個別名是非常重要的,這樣才可以把該邏輯上作為兩個不同的表使用。通過在 From 子句中的表名后面增加一個名稱,這種名稱就是表的別名。
在 Ansi 語法形式中,自連接形式如下:
Select column_name,column_name,.....
From column_name alias [join_type] Join column_name alias
On search_conditions
Where table_name.column_name join_operator table_name.column_name
在 SQL Server 連接語法形式中,自連接形式如下:
Select column_name,column_name,.....
Where table_name.column_name join_operator table_name.column_name
(5)子查詢
Select 語句可以嵌套在其它許多語句中,例如 Select、Insert、Update 或者 Delete 這些嵌套的 Select 語句就稱為子查詢。子查詢有兩種類型,一種是只返回一個單值的子查詢,這時它可以用在一個單值可以使用的地方種是返回一列值的的子查詢,這時它只能用在 Where 子句中。子查詢必須使用括號括起來。
9.在 SQL 查詢中涉及的多個合計函數
合計函數
參數
描述
AVG
([ALL|DISTINCT]expr)
數據表達式的平均值
COUNT
([ALL|DISTINCT]expr)
在某個表達式中數據值的數量
COUNT
(*)
所選擇行的數量
MAX
(expression)
表達式中的最大值
MIN
(expresion)
表達式中的最小值
SUM
([ALL|DISTINCT]expr)
數據表達式的總合值
文章來源于領測軟件測試網 http://www.kjueaiud.com/