亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

轉(zhuǎn):SQL Server Transact-SQL 編程

系統(tǒng) 1894 0

SQL Server Transact-SQL 編程

T-SQL語句用于管理SQL Server數(shù)據(jù)庫引擎實(shí)例,創(chuàng)建和管理數(shù)據(jù)庫對(duì)象,以及查詢、插入、修改和刪除數(shù)據(jù)。

? 變量

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

????????? 局部變量是用戶可以自定義的變量,它的作用范圍是僅在程序內(nèi)部,在程序中通常用來儲(chǔ)存從表中查詢到的數(shù)據(jù)或當(dāng)做程序執(zhí)行過程中的暫存變量。使用局部變量必須以@開頭,而且必須用declare命令后才能使用。

?

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

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

?????????

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

          --局部變量
        
          
            declare
          
           @id 
          
            char
          
          (10)--聲明一個(gè)長度的變量id
        
          
            declare
          
           @age 
          
            int
          
              --聲明一個(gè)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
          
          ;
        
          ?
        
          查詢數(shù)據(jù)示例
        
          
            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;
        

????????? 從上面的示例可以看出,局部變量可用于程序中保存臨時(shí)數(shù)據(jù)、傳遞數(shù)據(jù)。Set賦值一般用于賦值指定的常量個(gè)變量。而select多用于查詢的結(jié)果進(jìn)行賦值,當(dāng)然select也可以將常量賦值給變量。

????????? 注意:在使用select進(jìn)行賦值的時(shí)候,如果查詢的結(jié)果是多條的情況下,會(huì)利用最后一條數(shù)據(jù)進(jìn)行賦值,前面的賦值結(jié)果將會(huì)被覆蓋。

?

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

????????? 全局變量是系統(tǒng)內(nèi)部使用的變量,其作用范圍并不局限于某一程序而是任何程序均可隨時(shí)調(diào)用的。全局變量一般存儲(chǔ)一些系統(tǒng)的配置設(shè)定值、統(tǒng)計(jì)數(shù)據(jù)。

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

?

? 輸出語句

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

???? 基本語法

          
            print
          
           變量或表達(dá)式
        
          
            select
          
           變量或表達(dá)式
        

????

????? 示例

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

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

?

? 邏輯控制語句

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

????????? 語法

          
            if
          
           <表達(dá)式>
        
              <命令行或程序塊>
        
          
            else
          
          
            if
          
           <表達(dá)式>
        
              <命令行或程序塊>
        
          
            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循環(huán)語句

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

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

????????? 示例

          --while循環(huán)輸出到
        
          
            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
          
           <條件表達(dá)式> 
          
            then
          
           <運(yùn)算式>
        
          
            when
          
           <條件表達(dá)式> 
          
            then
          
           <運(yùn)算式>
        
          
            when
          
           <條件表達(dá)式> 
          
            then
          
           <運(yùn)算式>
        
             [
          
            else
          
           <運(yùn)算式>]
        
          
            end
          
        

????????? 示例

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

????

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

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

轉(zhuǎn):SQL Server Transact-SQL 編程


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 美国一级毛片免费看成人 | 麻豆va一区二区三区久久浪 | 在线观看一级毛片 | 一道本一区二区三区 | 国产日产亚洲精品 | 天天操操操操操 | 欧美一级特黄一片免费 | 中文国产成人精品久久水 | 久草香蕉视频在线观看 | 欧美久久一区二区三区 | 伊人在线 | 国产免费久久精品 | 国产亚洲精品久久久久久午夜 | 一级毛片免费不卡 | 日本在线不卡免费视频一区 | 一级做a爱片久久蜜桃 | 国产精品视频免费 | 色妞色综合久久夜夜 | 国产成人精品一区二区三区 | 麻豆精品国产免费观看 | 久久精品国产亚洲妲己影院 | 久久国产精品99精品国产 | 香蕉黄视频 | 亚洲精品免费观看 | 中文字幕国产日韩 | 亚洲国产成人私人影院 | 日日夜夜免费视频 | 免费国产一级特黄aa大片在线 | 国产精品久久久久久久午夜片 | 四虎 在线播放 | 手机在线精品视频每日更新 | 日韩欧美国产高清在线观看 | 波多野结衣一区二区三区 | 婷婷亚洲综合 | 在线欧美视频免费观看国产 | 亚洲精品视频在线观看免费 | 激情综合网五月激情 | 一级黄毛片| 国产在线观看精品香蕉v区 国产在线观看美女福利精 国产在线观看午夜不卡 | 九一毛片 | 久久中文亚洲国产 |