国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL Server DML(SELECT)常見用法(二)

2024-08-31 00:54:20
字體:
來源:轉載
供稿:網友
SQL Server DML(SELECT)常見用法(二)1 引言

  上篇講到SQL Server中DML的基本使用方法,其中SELECT語句是最常用的語句,其功能強大,結構復雜,下面通過例子,具體介紹其使用方法。

2 SELECT查詢語句

  SELECT語句從數據表或視圖中查找數據,SELECT語法歸納如下:

    [WITH <common_table_exPRession>]

    SELECT select_list [INTO new_table_name]

    [FROM table_source] [WHERE search_condition]

    [GROUP BY group_by_expression]

    [HAVING search_condition]

    [ORDER BY order_expression [ASC | DESC] ]

  假設現有如下三張表格,名稱分別為Student、Course和Grade,下面使用例子具體介紹各個子句的使用方法。

    

            Student                        Course

    

          Grade

3 簡單查詢
  • WITH子句

  WITH子句用于指定臨時命名的結果集,這些結果集稱為共用表表達式(CTE),來自簡單的查詢。也就是說,先通過WITH子句查找出一個臨時的表,再在該臨時表中進行查詢。語法如下(語法格式,大寫為關鍵字,[]為可選項,[,...]為可重復前一項):

    WITH expression_name [(column_name [,…])] AS

    (CTE_query_definition)

    CTE_query_definition: 指定一個其結果集填充共用表達式的SELECT語句。

  例如,在WITH子句中查找Student的年齡分布,放入臨時表AgeReport中,再查找AgeReport表,SQL語句如下:

    

  結果如下:

    

  • SELECT……FROM子句

  SELECT指明要讀取的信息,FROM指定從中獲取數據的一個或多個表。SELECT中為查詢的列取別名方法:

  別名 = 列名

  列名 AS 別名

  列名 別名

  例如,查詢Student表中student_no和name并設置別名為學號和姓名:

    

  結果如下:

    

  • INTO子句

  創建新表并將查詢結果插入新表中。

  • WHERE子句
  1. 邏輯運算符(NOT、AND、OR)

    [NOT] boolean_expression

    Boolean_expression AND boolean_expression

    Boolean_expression OR boolean_expressio

  2. 比較運算符

    = > < >= <= <>

    例如,查找性別為女,年齡小于18的student:

      

      

  3. LIKE關鍵字

    Match_expression [NOT] LIKE pattern [ESCAPE escape_expression]

    通配符% _ [] [^],%可匹配任何0個或多個字符,_匹配一個字符,[]指定范圍或集合,如 [a-f]或[abcdef]表示其中的一個字符,[^]同[]相反。

    例如,查找姓李的學生:

      

      

  4. BETWEEN關鍵字

    BETWEEN...AND和NOT BETWEEN… AND

  5. IS (NOT) NULL關鍵字

    在WHERE子句中,不能用=來判斷NULL,只能用IS (NOT) NULL

    例如,超找成績表中,成績為空的記錄:

      

      

  6. IN關鍵字

    使用IN關鍵字來指定列表搜索的條件,確定指定的值是否與子查詢或列表中的值相匹配。

    Test_expression [NOT] IN (subquery | expression [,...])

  7. ALL、SOME、ANY關鍵字

    比較標量值和單列集中的值,與比較運算符和子查詢一起使用。

    Scalar_expression {= | <> | > | >= | < | <= } {ALL | SOME | ANY} (subquery)

    例如,查找學生中年齡比心雨和李小小都大(> ALL)的學生:

      

      

  8. EXISTS關鍵字

    用于指定一個子查詢是否存在

    EXISTS subquery

  • GROUP BY子句

  表示按照一個或多個列或表達式的值將一組選定行組合成一個摘要行集,針對每一組返回一行。

    GROUP BY group_by_expression [,...]

  SELECT子句必須包括在聚類函數或GROUP BY子句中。常用的行聚合函數如下:

COUNT(*)

返回組中的項數

COUNT([ALL | DISTINCT] 列名])

返回某列的個數

AVG([ALL | DISTINCT] 列名])

返回某列的平均值

MAX([ALL | DISTINCT] 列名])

返回某列的最大值

MIN([ALL | DISTINCT] 列名])

最小值

SUM([ALL | DISTINCT] 列名])

總和

STDEV([ALL | DISTINCT] 列名])

標準偏差

STDEVP([ALL | DISTINCT] 列名])

總體標準偏差

VAR([ALL | DISTINCT] 列名])

方差

VARP([ALL | DISTINCT] 列名])

總體方差

例如,將學生按照性別分組,并統計人數:

  

    

  • HAVING子句

指定組或聚合的搜索條件,通常在GROUP BY中使用。

  HAVING search_condition

例如,將學生按照性別分組,并統計女生的人數

    

    

  • ORDER BY子句

指定在SELECT語句返回的列表中所使用的排序方式。除非同時指定了TOP,否則ORDER BY子句在視圖、內聯函數、派生表和子查詢中無效。

  ORDER BY {order_by_expression [COLLATE collation_name] [ASC | DESC] [,...]}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汕头市| 东丽区| 合山市| 香河县| 绵阳市| 玛曲县| 上饶市| 平原县| 诏安县| 射洪县| 澜沧| 阳谷县| 桃江县| 瓮安县| 通辽市| 高唐县| 凤城市| 图们市| 东阳市| 巴里| 莱西市| 防城港市| 石门县| 涟水县| 聂拉木县| 平顶山市| 蓝山县| 元朗区| 大邑县| 武川县| 新安县| 克什克腾旗| 鹿泉市| 新余市| 沙洋县| 南昌市| 伊金霍洛旗| 湟源县| 旌德县| 阿尔山市| 平泉县|