程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 初學者SQL語句介紹

初學者SQL語句介紹

編輯:關於SqlServer
 

1.用 Select 子句檢索記錄
Select 子句是每一個檢索數據的查詢核心。它告訴數據庫引擎返回什麼字段。
Select 子句的常見形式是:
Select *
該子句的意思是“返回在所指定的記錄源中能找到的所有字段”。這種命令形式很方便,因為你無需知道從表中檢索的字段名稱。然而,檢索表中的所有列是低效的。因此,因該只檢索需要的字段,這樣可以大大的提高查詢的效率。
2.使用 From 子句指定記錄源
From 子句說明的是查詢檢索記錄的記錄源;該記錄源可以是一個表或另一個存儲查詢。
你還能從多個表中檢索記錄,這在後面的章節中將介紹。
例子:
Select * From students 檢索students表中的所有記錄
3.用 Where 子句說明條件
Where 子句告訴數據庫引擎根據所提供的一個或多個條件限定其檢索的記錄。條件是一個表達式,可具有真假兩種判斷。
例子:
Select * From students Where name="影子"
返回students中name字段為影子的列表,這次所返回的結果沒有特定順序,除非你使用了 Order By 子句。該子句將在後面的章節介紹。
注意:Where 子句中的文本字符串界限符是雙引號,在VB中因改為單引號,因為在VB中字符串的界定符是雙引號。
補充:
使用 And 和 Or 邏輯可以將兩個或更多的條件鏈接到一起以創建更高級的 Where 子句。
例子:
Select * From students Where name="影子" And number>100
返回name為影子number大於100的列表。
例子:
Select * From students Where name="影子" And (number>100 Or number<50)
返回name為影子,number大於100或者小於50的列表。

Where 子句中用到的操作符
操作符 功能
< 小於
<= 小於或等於
> 大於
>= 大於或等於
= 等於
<> 不等於
Between 在某個取值范圍內
Like 匹配某個模式
In 包含在某個值列表中
SQL中的等於和不等於等操作符與VB中的意義和使用相同

例子:
(1).Between 操作符
Use cust
Select * From students
Where number Between 1 and 100
Between 操作符返回的是位於所說明的界限之內的所有記錄值。這個例子就返回 number 字段 1 到 100 之間的全部記錄。

(2). Like 操作符和通配符
Use cust
Select * From students
Where name Like "%影%"
Like 操作符把記錄匹配到你說明的某個模式。這個例子是返回含“影”的任意字符串。

四種通配符的含義
通配符 描述
% 代表零個或者多個任意字符
_(下劃線) 代表一個任意字符
[] 指定范圍內的任意單個字符
[^] 不在指定范圍內的任意單個字符

全部示例子如下:
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 對結果排序
Order By 子句告訴數據庫引擎對其檢索的記錄進行排序。可以對任何字段排序,或者對多個字段排序,並且可以以升序或隆序進行排序。
在一個正式的 Select 查詢之後包含一個 Order By 子句,後跟想排序的字段(可以有多個)便可以說明一個排序順序。
例子:
Use cust
Select * From students
Where name Like "%影%"
Order By number
對返回的結果按 number 進行排序。

以降序排序
如要以隆序排序,只需在排序的字段之後使用 Desc 關鍵字。
例子:
Use cust
Select * From students
Where name Like "%影%"
Order By number Desc

5. 使用 Top 顯示某個范圍的第一個記錄或最後一個記錄。
使用 Top 關鍵字可以只顯示一個大記錄前面或後面的少數幾個記錄。在查詢中,Top 關鍵字與排序子句一起把結果集限制為少數幾個記錄或按某個百分比顯示整個結果記錄集合中的一部分。
例子:
Select Top 3 * From students 返回 students 表中的前3條記錄
Select Top 10 Percent * From students 返回 students 表中前面的10%個記錄
Select Top 3 * From students Order By number desc 返回 students 表中 number 最大的(最後)的3條記錄

6. 用 As 對字段名進行別名化
為什麼在查詢中對字段命以別名,或重新命名,這樣做的原因有兩個:
☆所涉及的表的字段名很長,想使字段在結果集中更易處理一些。
☆創建的查詢產生了某些計算或合計列,需要對之進行命名。
不管是什麼原因對字段命以別名,在 SQL 中都可以容易地使用 As 子句做得。
例子:
Select number As 學號 ,name As 姓名 From students

7. 合並查詢
合並查詢( Union Query )用於合並具有相同字段結構的兩個表的內容,如果想在一個結果集中顯示多個記錄源中的不相關的記錄時,這十分有用。
例子:
Select *
From students
Union
Select *
From students1
該查詢結果集把 students 和 students1 中的記錄合並到一個結果中,其輸出就和原表歸檔之前一模一樣。
注意:缺省情況下,合並查詢不會返回重復記錄(如果記錄歸檔系統在把記錄拷到歸檔表中後不將相應的記錄刪除,這時該功能就有用了),可以加上 All 關鍵字而讓合並查詢顯示重復記錄。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved