中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQLserver運維必備:T-SQL語句簡介

發布時間:2020-07-15 19:49:05 來源:網絡 閱讀:2502 作者:小生博客 欄目:數據庫

   小生博客:http://xsboke.blog.51cto.com

   



                                -------謝謝您的參考,如有疑問,歡迎交流



一、T-SQL語言組成

T-SQL主要有三種語言組成:

  1.      DML:數據操縱語言(data manipulation language


    • 查詢、插入、刪除和修改數據

    • SELECTINSERTUPDATEDELETE

  2.      DDL:數據定義語言(data definition language


    • 建立數據庫、數據庫對象和定義其列

    • CREATE(新建數據庫或者表)、ALTER(增加數據表中的列)、DROP(刪除數據庫或表)

  3.      DCL:數據控制語言(data control language


    • 控制數據庫組件的存取許可、存取權限等

    • GRANT(授予權限)、REVOKE(回收權限)、DENY(拒絕)

二、SELECT語法結構

1. select語句的語法。

SELECT select_list

[INTO new_table_name]

FROM table_name

[ WHERE search_conditions ]

[GROUP BY group_by_expression] [HAVING search_conditions]

[ORDER BY order_expression [ASC|DESC] ]

  參數解釋:


    • SELECT子句:指定查詢內容

    • INTO子句:把查詢結果存放到一個新表中

    • FROM子句:指定查詢源

    • WHERE子句:查詢條件

    • GROUP BY子句:指定查詢結果的分組條件

    • HAVING子句:指定分組后在執行的條件,與GROUP BY子句一起使用,和where功能一樣,但是分組后的條件不能使用where只能使用having

    • ORDER BY子句:指定查詢結果的排序方式,默認是升序asc,降序是desc

2. 表達式,一般用于設置條件時。

  1)條件表達式

常量:表示單個指定數據值的字母、數字或符號

②列名:表中列的名稱

③一元運算符:僅有一個操作數的運算符:“+”表示正數,“-”表示負數

④二元運算符:將兩個操作數組合執行操作的運算符:算術運算符、位運算符、邏輯運算符、比較運算符

    SQLserver運維必備:T-SQL語句簡介

    SQLserver運維必備:T-SQL語句簡介

  2)邏輯表達式

   用邏輯運算符將條件連接起來,運算結果是一個邏輯值:TRUE(真)或FALSE(假)

    SQLserver運維必備:T-SQL語句簡介

    關鍵字“in”可以用來限制范圍,

    例:限制付款時可以使用的信用卡種類

    付款方式=‘信用卡’ and 信用卡 in 牡丹卡金穗卡龍卡陽光卡

 

3. as的用法(as就是給某個輸出結果的列名設置別名,然后輸出時列名用別名顯示)

  優點是可以事查詢結果更人性化顯示,比如把英文的列名輸出成為中文的列名。

  例:查詢表student中所有學員的平均分

  1)  不加as

   Select  AVG(成績)

   From student

   SQLserver運維必備:T-SQL語句簡介

  2)  as

   Select  AVG(成績) as 平均成績

   From student

   SQLserver運維必備:T-SQL語句簡介

4. Like的用法(用于不完全匹配的條件)

  例:查詢出表student中姓張的學員

  SQLserver運維必備:T-SQL語句簡介

5. In的用法(限制范圍)

  例:查詢出student表中成績為899091的學生。

  SQLserver運維必備:T-SQL語句簡介

6. Top的用法(限制查詢返回值的行數)

  例:查詢student表中的前五行的學員

  SQLserver運維必備:T-SQL語句簡介

7. 函數count的用法(統計行)

  例:查詢出表中每種職位的總人數

  SQLserver運維必備:T-SQL語句簡介

 

三、多表查詢

1. 表的連接類型

  1內連接(INNER JOIN

    只返回兩個數據集合之間完全匹配關系的行

  2外連接(左右外連接其實差不多,記住一個即可)

    ①左外連接(LEFT JOIN/leftouter join

     結果集包括左表的所有行

    ②右外連接(RIGHT JOIN/rightouter join

     結果集包括右表的所有行

    ③完整外連接(FULL JOIN/fullouter join

     返回左表和右表中的所有行

  3交叉連接(cross join,一般不用)

    返回左表與右表挨個連接的所有行

2. 內連接:只返回兩個表中完全匹配的行

  例:在表A和表B中使用內連接查詢學生姓名和職業(兩個表中存在的姓名是不完全一樣的)

  1)  方法1:結果顯示如下圖

    select A.name,a.school,b.job

    from A,B

    where a.name=b.name

  SQLserver運維必備:T-SQL語句簡介

  2)  方法2:結果顯示如下圖

    select A.name,a.school,b.job

    from A innerjoin B

    on A.name=b.name

  SQLserver運維必備:T-SQL語句簡介

3. 外連接

  1)  左外連接

    例:在表A和表B中用左外連接查詢學生姓名、學校和職業

    SQLserver運維必備:T-SQL語句簡介

  2)  右外連接

    例:在表A和表B中用左外連接查詢學生姓名、學校和職業

    SQLserver運維必備:T-SQL語句簡介

  3)  完整外連接:不再舉例,完整外連接將只顯示兩張表中完全匹配的內容

4. 事務(如果執行的語句中有一條錯誤,此語句將不執行,并數據恢復語句執行前)

  1)  事務簡介

    ①  概念

      事務是一個不可分割的工作邏輯單元,包括一組命令,這組命令要么都執行,要么都不執行。

    ②  屬性



    1. 原子性:事務是一個完整的操作。事務的各元素是不可分的。

    2. 一致性:當事務完成時,數據必須處于一致狀態。

    3. 隔離性:事務是獨立的,它不以任何方式依賴于或影響其他事務。

    4. 持久性:一旦事務被提交,事務的效果會被永久的保留在數據庫中。

  2)  執行事務的語法

    ①開始事務:BEGIN TRANSACTION

    ②提交事務:COMMITTRANSACTION

    ③回滾(撤銷)事務:ROLLBACKTRANSACTION

  3)  例:


    • 張三卡中余額只有1000,李四向張三借1000,但是銀行限制余額最少為1,這時就需要使用事務,否則結果將導致張三的余額不變,而李四的余額多了1000.


    select *from bank

 

    updatebank set 余額=余額-1000

    where 賬戶='張三'

    updatebank set 余額=余額+1000

    where 賬戶='李四'

 

    print  '查看轉帳事務前的余額'

    select *from bank

    /*--開始事務(指定事務從此處開始,后續的T-SQL語句都是一個整體--*/

    begintransaction

    /*--定義變量,用于累計事務執行過程中的錯誤--*/

    declare@errorsum int --聲明變量,用于保存所有T-SQL語句錯誤號的和

    set@errorsum=0

    /*--轉帳:張三的帳戶少1000元,李四的帳戶多1000--*/

 

    updatebank set 余額=余額-1000

    where 賬戶='張三'

 

    set@errorsum=@errorsum+@@ERROR     --累計是否有錯誤

    updatebank set 余額=余額+1000

    where 賬戶='李四'

    set@errorsum=@errorsum+@@ERROR     --累計是否有錯誤

 

    print  '查看轉帳事務過程中的余額'

    select *from bank

 

    /*--根據是否有錯誤,確定事務是提交還是撤銷--*/

    if@errorsum<>0     --如果有錯誤

    begin

    print  '交易失敗,回滾事務'

    rollbacktransaction

    end

    else

    begin

    print  '交易成功,提交事務,寫入磁盤,永久地保存'

    committransaction

    end

    go

    print  '查看轉帳事務后的余額'

    select *from bank

    go

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沈丘县| 赣榆县| 荔浦县| 桃园市| 诸城市| 泗水县| 安福县| 富阳市| 太仆寺旗| 漯河市| 无为县| 汶上县| 门头沟区| 秦安县| 兰溪市| 蓬安县| 抚远县| 巴中市| 手游| 文登市| 仁化县| 陵川县| 睢宁县| 瑞金市| 石嘴山市| 吉木乃县| 正定县| 健康| 镇平县| 清水河县| 阜宁县| 普安县| 长葛市| 东港市| 布拖县| 富平县| 马关县| 南平市| 出国| 手游| 万宁市|