?

SQLServer查詢語句學習心得

2013-08-15 00:54李臻敏
科技視界 2013年10期
關鍵詞:運算符子句字符

李臻敏

(安溪陳利職業中專學校,福建 安溪 362403)

SQL Server查詢語句的語法格式:

SELECT[列名]

FROM[表名]

[WHERE<查詢條件表達式>]

[ORDER BY<排序的列名>[ASC或DESC]]

其中:[]代表可選的;<>代表必須的。如果有多個列名,需要用逗號隔開。

ORDER BY是用于排序的,可以將查詢出的數據按照ORDER BY所指定的字段進行排序,排序時還可以通過ASC或DESC指定升序或降序排列。

簡單的Transact-SQL查詢只包括選擇列表、FROM子句和WHERE子句。它們分別說明所查詢列、查詢的表或視圖、以及搜索條件等。

例如,下面的語句查詢work表中姓名為“許劍鋒”的stname字段和score字段。

SELECT stname,score

FROM work

WHERE name='許劍鋒'

1 選擇列表

選擇列表(select_list)指出所查詢列,它可以是一組列名列表、星號、表達式、變量(包括局部變量和全局變量)等構成。

1.1 選擇所有列

例如,下面語句顯示work表中所有列的數據:

SELECT*

FROM work

1.2 選擇部分列并指定它們的顯示次序

查詢結果集合中數據的排列順序與選擇列表中所指定的列名排列順序相同。

例如:

SELECT stname,score

FROM work

1.3 更改列標題

在選擇列表中,可重新指定列標題。

定義格式為:

title=列名

列名title

如果指定的title不是標準的標識符格式時,應使用引號定界符,例如,下列語句使用漢字顯示列標題:SELECT昵稱=stname,分數=score FROM work

1.4 使用DISTINCT關鍵字屏蔽重復數據

數據表中難免會出現重復數據,DISTINCT的作用是屏蔽結果集中的重復數據行。

SELECT語句中使用ALL或DISTINCT選項來顯示表中符合條件的所有行或刪除其中重復的數據行,默認為ALL。使用DISTINCT選項時,對于所有重復的數據行在SELECT返回的結果集合中只保留一行。

1.5 使用TOP關鍵字查詢表中限定行數

使用TOP n[PERCENT]選項限制返回的數據行數,TOP n說明返回n行,而TOP n PERCENT時,說明n是表示一個百分數,指定返回的行數等于總行數的百分之幾。

例如:

SELECT TOP 5*

FROM work

SELECT TOP 10 PERCENT*

FROM work

2 FROM子句

FROM子句指定SELECT語句查詢及與查詢相關的表或視圖。在FROM子句中最多可指定256個表或視圖,它們之間用逗號分隔。

在FROM子句同時指定多個表或視圖時,如果選擇列表中存在同名列,這時應使用對象名限定這些列所屬的表或視圖。例如在student和teaching表中同時存在name列,在查詢兩個表中的name時應使用下面語句格式加以限定:

SELECT stname,teaching.name

FROM student,teaching

WHERE student.name=teaching.name

在FROM子句中可用以下兩種格式為表或視圖指定別名:

表名 as別名

表名別名

例如,上面語句可用表的別名格式表示為:

SELECT stname,b.name

FROM student a,teaching b

WHERE a.name=b.name

3 使用WHERE子句過濾部分行數據

在數據庫中查詢數據時,有時用戶只希望可以得到一部分數據而不是全部,如果還使用SELECT…FROM結構,就會因為大量不需要的數據而使應用實現起來很麻煩,這時就需要在SELECT語句中加入條件語句,即WHERE子句。

例如,下面語句查詢體重大于60的數據:

SELECT*

FROM student

WHERE weight>60

WHERE子句可包括各種條件運算符:

比較運算符(大小比較):>、>=、=、<、<=、<>、! >、! <

范圍運算符(表達式值是否在指定的范圍):BETWEEN…AND…

NOT BETWEEN…AND…

列表運算符(判斷表達式是否為列表中的指定項):IN(項1,項2……)

NOT IN(項 1,項 2……)

模式匹配符(判斷值是否與指定的字符通配格式相符):LIKE、NOT LIKE

空值判斷符(判斷表達式是否為空):IS NULL、NOT IS NULL邏輯運算符(用于多條件的邏輯連接):NOT、AND、OR

3.1 范圍運算符例:age BETWEEN 10 AND 30相當于 age>=10 AND age<=30

3.2 列表運算符例:city IN('Beijin','Shanghai')

3.3 模式匹配符例:常用于模糊查找,它判斷列值是否與指定的字符串格式相匹配。 可用于 char、varchar、text、ntext、datetime 和 smalldatetime等類型查詢。

可使用以下通配字符:

百分號%:可匹配任意類型和長度的字符,如果是中文,請使用兩個百分號即%%。

下劃線_:匹配單個任意字符,它常用來限制表達式的字符長度。

方括號[]:指定一個字符、字符串或范圍,要求所匹配對象為它們中的任一個。[^]:其取值也[]相同,但它要求所匹配對象為指定字符以外的任一個字符。

例如:

限制以Publishinshanghai結尾,使用LIKE'%Publishinshanghai'

限制以G開頭:LIKE'[G]%'

限制以G開頭外:LIKE'[^G]%'

3.4 邏輯運算符:優先級為NOT、AND、OR

4 查詢結果排序

使用SELECT語句進行數據查詢后,為了方便閱讀,可以使用ORDER BY子句對生成的結果集進行排序。在SELECT語法中ORDER BY后面的排序列名可以是字段名,也可以是表達式,有多個排序列時,需要用逗號隔開。拍序列名后面還可以指定排序方式,ASC表示升序,DESC表示降序,如果不指定默認為升序。

ORDER BY子句的語法格式為:

ORDER BY{column_name[ASC|DESC]}[,…n]

例如:

SELECT*

FROM student

ORDER BY score desc,address ASC

以上是一些關于數據庫查詢的介紹,用戶可以根據需要應用這些查詢技巧從數據庫中檢索數據,并將查詢結果以表格的形式輸出。

在信息技術廣泛應用的今天,數據庫技術作為數據管理的核心技術在社會各個領域發揮著強大的功能,SQL Server 2008是由Microsoft公司發布的最新關系數據庫管理系統。然而要用好數據庫的管理功能,就必須從簡單的數據庫查詢開始,數據庫查詢是數據庫應用的根基,只有基土之堅固才有高大之建筑。所以,數據庫查詢在數據庫應用中有舉足輕重的地位。

猜你喜歡
運算符子句字符
命題邏輯中一類擴展子句消去方法
老祖傳授基本運算符
命題邏輯可滿足性問題求解器的新型預處理子句消去方法
字符代表幾
一種USB接口字符液晶控制器設計
用手機插頭的思路學習布爾運算符
消失的殖民村莊和神秘字符
西夏語的副詞子句
命題邏輯的子句集中文字的分類
表達式求值及符號推導
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合