欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

轉:SQL Server Transact-SQL 編程

系統 1961 0

SQL Server Transact-SQL 編程

T-SQL語句用于管理SQL Server數據庫引擎實例,創建和管理數據庫對象,以及查詢、插入、修改和刪除數據。

? 變量

???? 1、 局部變量(Local Variable)

????????? 局部變量是用戶可以自定義的變量,它的作用范圍是僅在程序內部,在程序中通常用來儲存從表中查詢到的數據或當做程序執行過程中的暫存變量。使用局部變量必須以@開頭,而且必須用declare命令后才能使用。

?

????????? 基本語法:

          聲明變量
        
          
            declare
          
           @變量名 變量類型 [@變量名 變量類型]
        
          為變量賦值
        
          
            set
          
           @變量名 = 變量值;
        
          
            select
          
           @變量名 = 變量值;
        

?????????

????????? 示例:

          --局部變量
        
          
            declare
          
           @id 
          
            char
          
          (10)--聲明一個長度的變量id
        
          
            declare
          
           @age 
          
            int
          
              --聲明一個int類型變量age
        
          
            select
          
           @id = 22    --賦值操作
        
          
            set
          
           @age = 55    --賦值操作
        
          
            print
          
          
            convert
          
          (
          
            char
          
          (10), @age) + 
          
            '#'
          
           + @id
        
          
            select
          
           @age, @id
        
          
            go
          
        
          ?
        
          簡單hello world示例
        
          
            declare
          
           @name 
          
            varchar
          
          (20);
        
          
            declare
          
           @
          
            result
          
          
            varchar
          
          (200);
        
          
            set
          
           @name = 
          
            'jack'
          
          ;
        
          
            set
          
           @
          
            result
          
           = @name + 
          
            ' say: hello world!'
          
          ;
        
          
            select
          
           @
          
            result
          
          ;
        
          ?
        
          查詢數據示例
        
          
            declare
          
           @id 
          
            int
          
          , @name 
          
            varchar
          
          (20);
        
          
            set
          
           @id = 1;
        
          
            select
          
           @name = name 
          
            from
          
           student 
          
            where
          
           id = @id;
        
          
            select
          
           @name;
        
          ?
        
          select賦值
        
          
            declare
          
           @name 
          
            varchar
          
          (20);
        
          
            select
          
           @name = 
          
            'jack'
          
          ;
        
          
            select
          
           * 
          
            from
          
           student 
          
            where
          
           name = @name;
        

????????? 從上面的示例可以看出,局部變量可用于程序中保存臨時數據、傳遞數據。Set賦值一般用于賦值指定的常量個變量。而select多用于查詢的結果進行賦值,當然select也可以將常量賦值給變量。

????????? 注意:在使用select進行賦值的時候,如果查詢的結果是多條的情況下,會利用最后一條數據進行賦值,前面的賦值結果將會被覆蓋。

?

???? 2、 全局變量(Global Variable)

????????? 全局變量是系統內部使用的變量,其作用范圍并不局限于某一程序而是任何程序均可隨時調用的。全局變量一般存儲一些系統的配置設定值、統計數據。

          全局變量
        
          
            select
          
           @@
          
            identity
          
          ;--最后一次自增的值
        
          
            select
          
          
            identity
          
          (
          
            int
          
          , 1, 1) 
          
            as
          
           id 
          
            into
          
           tab 
          
            from
          
           student;--將studeng表的烈屬,以/1自增形式創建一個tab
        
          
            select
          
           * 
          
            from
          
           tab;
        
          
            select
          
           @@
          
            rowcount
          
          ;--影響行數
        
          
            select
          
           @@cursor_rows;--返回連接上打開的游標的當前限定行的數目
        
          
            select
          
           @@error;--T-SQL的錯誤號
        
          
            select
          
           @@procid;
        
          ?
        
          --配置函數
        
          
            set
          
           datefirst 7;--設置每周的第一天,表示周日
        
          
            select
          
          
            @@datefirst
          
          
            as
          
          
            '星期的第一天'
          
          , datepart(dw, getDate()) 
          
            AS
          
          
            '今天是星期'
          
          ;
        
          
            select
          
           @@dbts;--返回當前數據庫唯一時間戳
        
          
            set
          
          
            language
          
          
            'Italian'
          
          ;
        
          
            select
          
          
            @@langId
          
          
            as
          
          
            'Language ID'
          
          ;--返回語言id
        
          
            select
          
          
            @@language
          
          
            as
          
          
            'Language Name'
          
          ;--返回當前語言名稱
        
          
            select
          
           @@lock_timeout;--返回當前會話的當前鎖定超時設置(毫秒)
        
          
            select
          
           @@max_connections;--返回SQL Server 實例允許同時進行的最大用戶連接數
        
          
            select
          
          
            @@MAX_PRECISION
          
          
            AS
          
          
            'Max Precision'
          
          ;--返回decimal 和numeric 數據類型所用的精度級別
        
          
            select
          
           @@SERVERNAME;--
          
            SQL
          
           Server 的本地服務器的名稱
        
          
            select
          
           @@SERVICENAME;--服務名
        
          
            select
          
           @@SPID;--當前會話進程id
        
          
            select
          
           @@
          
            textSize
          
          ;
        
          
            select
          
           @@version;--當前數據庫版本信息
        
          ?
        
          --系統統計函數
        
          
            select
          
           @@CONNECTIONS;--連接數
        
          
            select
          
           @@PACK_RECEIVED;
        
          
            select
          
           @@CPU_BUSY;
        
          
            select
          
           @@PACK_SENT;
        
          
            select
          
           @@TIMETICKS;
        
          
            select
          
           @@IDLE;
        
          
            select
          
           @@TOTAL_ERRORS;
        
          
            select
          
           @@IO_BUSY;
        
          
            select
          
           @@TOTAL_READ;--讀取磁盤次數
        
          
            select
          
           @@PACKET_ERRORS;--發生的網絡數據包錯誤數
        
          
            select
          
           @@TOTAL_WRITE;--sqlserver執行的磁盤寫入次數
        

?

? 輸出語句

???? T-SQL支持輸出語句,用于顯示結果。常用輸出語句有兩種:

???? 基本語法

          
            print
          
           變量或表達式
        
          
            select
          
           變量或表達式
        

????

????? 示例

          
            select
          
           1 + 2;
        
          
            select
          
           @@
          
            language
          
          ;
        
          
            select
          
           user_name();
        
          ?
        
          
            print
          
           1 + 2;
        
          
            print
          
           @@
          
            language
          
          ;
        
          
            print
          
           user_name();
        

???? print在輸出值不少字符串的情況下,需要用convert轉換成字符串才能正常輸出,而且字符串的長度在超過8000的字符以后,后面的將不會顯示。

?

? 邏輯控制語句

???? 1、 if-else判斷語句

????????? 語法

          
            if
          
           <表達式>
        
              <命令行或程序塊>
        
          
            else
          
          
            if
          
           <表達式>
        
              <命令行或程序塊>
        
          
            else
          
        
              <命令行或程序塊>
        

????????? 示例

          if簡單示例
        
          
            if
          
           2 > 3
        
          
            print
          
          
            '2 > 3'
          
          ;
        
          
            else
          
        
          
            print
          
          
            '2 < 3'
          
          ;
        
          ?
        
          
            if
          
           (2 > 3)
        
          
            print
          
          
            '2 > 3'
          
          ;
        
          
            else
          
          
            if
          
           (3 > 2)
        
          
            print
          
          
            '3 > 2'
          
          ;
        
          
            else
          
        
          
            print
          
          
            'other'
          
          ;
        
          ?
        
          簡單查詢判斷
        
          
            declare
          
           @id 
          
            char
          
          (10),
        
                  @pid 
          
            char
          
          (20),
        
                  @name 
          
            varchar
          
          (20);
        
          
            set
          
           @name = 
          
            '廣州'
          
          ;
        
          
            select
          
           @id = id 
          
            from
          
           ab_area 
          
            where
          
           areaName = @name;
        
          
            select
          
           @pid = pid 
          
            from
          
           ab_area 
          
            where
          
           id = @id;
        
          
            print
          
           @id + 
          
            '#'
          
           + @pid;
        
          ?
        
          
            if
          
           @pid > @id
        
          
            begin
          
        
          
            print
          
           @id + 
          
            '%'
          
          ;
        
          
            select
          
           * 
          
            from
          
           ab_area 
          
            where
          
           pid 
          
            like
          
           @id + 
          
            '%'
          
          ;
        
          
            end
          
        
          
            else
          
        
          
            begin
          
        
          
            print
          
           @id + 
          
            '%'
          
          ;
        
          
            print
          
           @id + 
          
            '#'
          
           + @pid;
        
          
            select
          
           * 
          
            from
          
           ab_area 
          
            where
          
           pid = @pid;
        
          
            end
          
        
          
            go
          
        

????

?????? 2、 while…continue…break循環語句

????????? 基本語法

          
            while
          
           <表達式>
        
          
            begin
          
        
             <命令行或程序塊>
        
             [
          
            break
          
          ]
        
             [
          
            continue
          
          ]
        
             <命令行或程序塊>
        
          
            end
          
        

????????? 示例

          --while循環輸出到
        
          
            declare
          
           @i 
          
            int
          
          ;
        
          
            set
          
           @i = 1;
        
          
            while
          
           (@i < 11)
        
          
            begin
          
        
          
            print
          
           @i;
        
          
            set
          
           @i = @i + 1;
        
          
            end
          
        
          
            go
          
        
          ?
        
          --
          
            while
          
          
            continue
          
           輸出到
        
          
            declare
          
           @i 
          
            int
          
          ;
        
          
            set
          
           @i = 1;
        
          
            while
          
           (@i < 11)
        
          
            begin
          
        
          
            if
          
           (@i < 5)
        
          
            begin
          
        
          
            set
          
           @i = @i + 1;
        
          
            continue
          
          ;        
        
          
            end
          
        
          
            print
          
           @i;
        
          
            set
          
           @i = @i + 1;                
        
          
            end
          
        
          
            go
          
        
          ?
        
          --
          
            while
          
          
            break
          
           輸出到
        
          
            declare
          
           @i 
          
            int
          
          ;
        
          
            set
          
           @i = 1;
        
          
            while
          
           (1 = 1)
        
          
            begin
          
        
          
            print
          
           @i;        
        
          
            if
          
           (@i >= 5)
        
          
            begin
          
        
          
            set
          
           @i = @i + 1;
        
          
            break
          
          ;        
        
          
            end
          
        
          
            set
          
           @i = @i + 1;                
        
          
            end
          
        
          
            go
          
        

????

???? 3、 case

????????? 基本語法

          
            case
          
        
          
            when
          
           <條件表達式> 
          
            then
          
           <運算式>
        
          
            when
          
           <條件表達式> 
          
            then
          
           <運算式>
        
          
            when
          
           <條件表達式> 
          
            then
          
           <運算式>
        
             [
          
            else
          
           <運算式>]
        
          
            end
          
        

????????? 示例

          
            select
          
           *,
        
          
            case
          
           sex 
        
          
            when
          
           1 
          
            then
          
          
            '男'
          
        
          
            when
          
           0 
          
            then
          
          
            '女'
          
        
          
            else
          
          
            '火星人'
          
        
          
            end
          
          
            as
          
          
            '性別'
          
        
          
            from
          
           student;
        
          ?
        
          
            select
          
           areaName, 
          
            '區域類型'
          
           = 
          
            case
          
        
          
            when
          
           areaType = 
          
            '省'
          
          
            then
          
           areaName + areaType
        
          
            when
          
           areaType = 
          
            '市'
          
          
            then
          
          
            'city'
          
        
          
            when
          
           areaType = 
          
            '區'
          
          
            then
          
          
            'area'
          
        
          
            else
          
          
            'other'
          
        
          
            end
          
        
          
            from
          
           ab_area;
        

????

?????? 4、 其他語句

          批處理語句go
        
          
            Use
          
           master
        
          
            Go
          
        
          ?
        
          延時執行,類似于定時器、休眠等
        
          
            waitfor
          
           delay 
          
            '00:00:03'
          
          ;--定時三秒后執行
        
          
            print
          
          
            '定時三秒后執行'
          
          ;
        

轉:SQL Server Transact-SQL 編程


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美疯狂xxxx乱大交视频 | 精品视频免费观看 | 亚州第一视频 | 欧美天堂 | 日本特黄的免费大片视频 | 欧美色呦呦 | 四虎影视最新网站在线播放 | 色老头永久免费视频 | 国产福利在线播放 | 一级黄色片网站 | 日韩一区二区在线视频 | 一区二区三区视频 | 久久观看午夜精品 | 91社区影院| 亚洲视频一区二区 | 羞羞的网址 | 午夜影院a| 女人被狂躁视频免费网站 | 91在线成人 | 男女激情动态视频 | 亚洲一区国产 | 神秘电影91 | 色涩亚洲| 天天做天天干 | 欧美在线一区二区三区欧美 | 亚洲欧美日韩中文字幕在线不卡 | 一级毛片在线完整免费观看 | 一区二区三区四区精品 | 97国产精品 | 99久久精品免费看国产一区二区 | 亚洲欧美日韩中文不卡 | 日韩欧美中文字幕视频 | 天天操天天射天天爽 | 亚洲日本国产 | 国产精品久久一区 | 亚洲精品久 | 国产日韩精品入口 | 成人性生活视频在线播放 | 日韩在线一区二区三区 | 无码一区二区三区曰本A片 欧美综合激情网 | 色五五月五月开 |