萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> sql server教程 >> 全面接觸SQL語法

全面接觸SQL語法

SQL功能與特性

其實,在前面的文章中,已經提及SQL命令的一些基本功能,然而,通過SQL命令,程序設計師或數據庫管理員(DBA)可以:

(一)建立數據庫的表格。(包括設置表格所可以使用之空間)

(二)改變數據庫系統環境設置。

(三)針對某個數據庫或表格,授予用戶存取權限。

(四)對數據庫表格建立索引值。

(五)修改數據庫表格結構。(新建、刪除或是修改表格字段)

(六)對數據庫進行數據的新建。

(七)對數據庫進行數據的刪除。

(八)對數據庫進行數據的修改。

(九)對數據庫進行數據的查詢。

這幾項便是通過SQL命令可以完成的事情,看起來是不是比起“查詢”兩個字所代表的功能要多的多了呢?

SQL語法的分類

其實SQL命令並不是非常多,可是要把SQL用到出神入化,卻也只需要短短幾個命令便夠,因為SQL命令是針對關系型數據庫所建立出來的語法敘述,所以SQL在這類數據庫中所發揮的功能非常的強,以下將針對在VB中常用的SQL語法基本命令加以分類介紹。在說明SQL的命令以及使用語法之前,以下將SQL做了的分類,在致上SQL語法所使用到的類型,可以說都已包含在這些類別當中。

第一類、屬性詞(Predicates)

在SQL命令中用來指明所要選擇的記錄的方式。如ALL、TOP與DISTINCT等等。

第二類、聲明(Declaration)

針對SQL Parameter或Parameter Query 的名稱與數據類型做聲明,如PARAMETERS的聲明等等。

第三類、條件子句(Clause)

在SQL的查詢中,利用一些表達式定義出查詢的條件,以縮小尋找的范圍,如WHERE。

第四類、運算符(Operator)與操作數(Operation)

在SQL的查詢中,與Operation共同組成表達式(Expression),如BETWEEN....AND 運算符與INNER JOIN操作數。

第五類、函數(Function)

一些SQL常見的函數,像是AVG()是求算數平均數的函數。

第六類、SQL語句(Statement)

SQL的語句,可以說是SQL語法的主體,用來對某一個特定的數據庫發出指示,並返回相關的數據,而SQL的語法結構,基本上可以利用下面

的式子來表示:命令+條件子句

例如:

SELECT*FROM TAB WHERE TAB.NAME='A'

其中的“FROM....WHERE”便是一個條件子句,其實SQL的語法並不難,您只需記住這樣的一個規則,相信可以很快的了解SQL用法。

SQL語法與命令

SELECT 語句

SELECT[predicate]{*|table.*|[table.]field [,[table.]field2[,...]]} [AS alias1 [,alias2[,...]]]

FROM tableexpression [,...][IN externaldatabase]

[WHERE...]

[GROUP BY...]

[HAVING...]

[ORDER BY...]

[WITH OWNERAccess OPTION]

SELECT 語句包括下面幾個部分

predicate

如前面所述,包括了ALL,DISTINCT,DISTINCTROW,與TOP 我們可以利用這樣的語句去限制查詢後所得的結果。

*

從指定表格中指定所有的字段。

table

針對被選擇出的記錄的字段,所指定表格的名稱。

field1,field2

想要讀取數據的字段名稱,如果包含了一個以上的字段,會依照列出的順序來讀取數據。

alias1,alias2

用來替代在表格實際字段名稱的化名。

tableexpression

表格名稱或包含我們所想要的數據的表格。

externaldatabase

若使用到不是目前的數據庫則將其名字定義在externaldatabase當中。

ALL,DISTINCT,DISTINCTROW,TOP屬性詞用法

SELECT [ALL|DISTINCT|DISTINCTROW|[TOP n[PERCENT]]] FROM table

ALL

若是您不指定任何的字段數據,則Microsoft Jet數據庫引擎(database engine)將會選擇所有的字段,並依據所定的條件查詢出需求數據集。

[1] [2] [3] [4] [5] [6] [7] 下一頁  


例如下面這兩個例子將會具有相同的效果,都會從職員表格中返回所有字段的數據。

例如:

若是我們要查詢出職員表格中的所有記錄,可以通過下面的語句來完成。

SELECT ALL* FROM 職員表格; DISTINCT

對某個表格所選擇的字段數據,略過重復的情況,也就是說,針對某個字段查詢出來的記錄結果是唯一的。例如有許多存放在職員表格的職員

數據,也許會具有相同的姓名,所以若是我們用SQL語句中的SELECT DISTINCT,則查詢出來的結果將會針對不一樣的姓名加以篩選。若是您把

DISTINCT 加以省略,則這樣的查詢會顯示所有的記錄。

DISTINCTROW

將整條記錄重復的記錄忽略掉,而不是只有針對某一個字段的數據。

table

指定查詢記錄所需要的表格。

例如:

SELECT DISTINCTROW 公司名稱

FROM 顧客表格 INNER JOIN 訂單表格

ON 顧客表格.顧客ID=訂單表格.顧客ID

ORDER BY 公司名稱;

如果您忽略 DISTINCTROW 則會對每個公司產生一行以下的訂單數據。此外,若是DISTINCTROW只有用在一個表格當中,則會被省略掉。

TOP

從第一條或最後一條開始(利用ORDER BY條件子句),返回特定條數的數據。

例如:

當您想要知道在2000年,班上前25名的學生姓名數據時,您可以輸入這樣的語句:

SELECT TOP 25 學生姓名

FORM 學生表格

WHERE 畢業年份=1994

ORDER BY 畢業成績平均分數 DESC;

如果您沒有加上ORDER BY 這行條件的話,您所得到的數據,將會隨機的數據。此外,在TOP語句之後,除了可以加上數字以外,還可以利用保留

字PERCENT來查詢。

例如:

SELECT TOP 10 PERCENT學生姓名

FROM學生表格

WHERE畢業年份=1994

ORDER BY畢業成績平均DESC;

PARAMETERS(參數)聲明的用法

對於參數型的查詢語法中,對參數的名稱以及數據類型作 聲明的操作。

PARAMETERS name datatype[,name datatype[,...]]

name

PARAMETERS的名稱。您可以把參數名稱當作字符串來使用,若是名稱中包含了空字符串,可以利用中括號來處理,例如:“VBeden”。

datatype

copyright © 萬盛學電腦網 all rights reserved