溫馨提示×

溫馨提示×

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

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

SQL學習之T-SQL編程之標識符、變量、批處理與運算符

發(fā)布時間:2020-06-25 13:10:19 來源:網(wǎng)絡 閱讀:1226 作者:一顆成長樹 欄目:數(shù)據(jù)庫

1、標識符:

(1)定義:就像每個人都要有個名字一樣,在SQL Server中,每一項對象也都要有一個作為標識用的名稱,這就是標識符。例如數(shù)據(jù)庫名稱、數(shù)據(jù)表名稱、字段名稱等等,這些名稱統(tǒng)稱為標識符。

(2)命名規(guī)則:

            a、英文字符:A~Z或a~z,在SQL中是不用區(qū)分大小寫的。

 b、數(shù)字:0~9,但數(shù)字不得作為標識符的第一個字符。

 c、特殊字符:_、#、@、$,但#、@、$ 不得作為標識符的第一個字符。

 d、特殊語系的合法文字:例如中文文字也可作為標識符的合法字符。

特殊說明:若對象名稱不符合上述規(guī)則,只要在名稱的前后加上中括號,該名稱就變成合法標識符了(但標識符的長度仍不能超過128個字符)

注意:標識符不能是SQL的關(guān)健詞,例如“table”、“TABLE”、“select”、“SELECT”等都     不能作為標識符。

    標識符中不能有空格符,或_、#、@、$之外的特殊符號。

    標識符的長度不得超過128個字符長度


2、變量:

(1)分類:

SQL Server中存在兩類變量:

全局變量: 由系統(tǒng)定義和維護,變量名前加“@@”

       如:@@VERSION 

局部變量:

       由用戶定義和使用,僅在聲明它的批處理、存儲過程或觸發(fā)器中有效。變量名加“@”如:        @mystr


(2)局部變量的聲明:

基本格式:

       declare @變量名稱 數(shù)據(jù)類型


變量的賦值:

       格式1:  定義變量的同時賦值

       格式2:  set 賦值,(set @變量名 = 表達式)

              select賦值,(select @變量名 as 表達式)

舉例:

DECLARE    @A  CHAR(20)

DECLARE    @f  float,@cn  char(8)=‘a(chǎn)a’


注意事項:

       一次可以聲明多個變量,用逗號隔開

       所有局部變量在聲明后均初始化為NULL

       聲明的局部變量可以用set或select賦值

       set語句一次只能給一個變量賦值,select語句可同時為多個變量賦值。


(3)局部變量的輸出:

局部變量的輸出可以通過print和select實現(xiàn),區(qū)別在于,print一次只能輸出一個變量的值,select一次可以輸出多個變量的值


3、批處理與腳本:

(1)批處理:

       批處理是由一條或多條T-SQL語句組成的語句集。這些語句被應用程序作為一個整體提交        給服務器,并在服務器端作為一個整體執(zhí)行??筛鶕?jù)自己的編程習慣和編寫批處理的要求使        用批處理


       在查詢分析器中,可以用GO命令標志一個批處理的結(jié)束。GO不是T-SQL語句,它的作用是        通知查詢分析器有多少語句要包含在當前的批處理中。

       查詢分析器將第一個GO之前的語句或者兩個GO之間的語句,或者最后一個GO之后的語句       分別作為一個批處理,分別組成一個字符串交給服務器去執(zhí)行


使用批處理應注意的問題:

                a:不能在一個批處理中引用其他批處理中定義的變量

                b:不能將注釋從一個批處理開始,在另一個批處理中結(jié)束

                c:不能在一個批處理中修改一個表的結(jié)構(gòu),然后在同一個批處理中引                  用剛修改的新列

                d:不能在一個批處理中創(chuàng)建一個數(shù)據(jù)庫,然后在同一個批處理中選擇                  該庫

                 e:大多數(shù)帶CREATE關(guān)鍵字的語句不能與其他語句在同一個批處理中,如                   CREATE DEFAULT、CREATE PROCEDURE、CREATE RULE、CREATE                     TRIGGER與CREATE VIEW語句,但是CREATE TABLE、CREATE                       DATABASE、CREATE INDEX可以

                 f:當需要執(zhí)行存儲過程時,需使用EXEC語句。如果存儲過程是批處理                   中的第一條語句,那么省略EXEC關(guān)鍵字也可以執(zhí)行該存儲過程

                g:每個批處理都是獨立執(zhí)行的,并不會相互影響。即無論前一個批處                   理是否正確執(zhí)行,下一個批處理仍會繼續(xù)執(zhí)行


(2)腳本:

      腳本是一系列順序提交的批處理。腳本可以直接在查詢分析器等工具中輸入并執(zhí)行,也可以保       存在文件中,再由查詢分析器等工具打開執(zhí)行

      一個腳本可以包含一個或多個批處理。腳本中的GO命令標志一個批處理的結(jié)束,如果一個腳本       中沒有包含GO命令,那么它整個被視為是一個批處理


3、運算符:

(1)定義:運算符是一種符號,用來指定要在一個或多個表達式中執(zhí)行的操作。SQL Server 使用下列幾類運算符:算術(shù)運算符、賦值運算符、按位運算符、比較運算符、邏輯運算符、字符串連接運算符


(2)算術(shù)運算符:

算術(shù)運算符包括+(加)、-(減)、*(乘)、/(除)和%(整數(shù)相除的余數(shù)),用于數(shù)值和日期時間的運算。

上述一些運算符的作用大家已經(jīng)清楚,在此不再贅述,這里僅對日期時間數(shù)據(jù)的運算作說明。日期時間與數(shù)值可做加或減運算,其意義分別為日期加幾天或減幾天,結(jié)果仍為日期時間數(shù)據(jù)。


(3)賦值運算符:

賦值運算符只有一個,那就是“=”(等號),用來將數(shù)值或字符串指定給字段或變量。 


(4)按位運算符:

按位運算符包括&、|、^三種,用來對位進行邏輯運算。

&:為按位與(AND)運算符。當運算符前后的操作數(shù)都為1時,結(jié)果為1,只要有一個不為1,結(jié)果就是0。

|:為按位或(OR)運算符。此運算符前后的操作數(shù)只要有1個為1,結(jié)果就為1,只有兩個都為0的時候,結(jié)果才為0。

^:為異或(Exclusive OR)運算符。只有當兩個操作數(shù)的值不一樣的時候才會是1,否則為0。


(5)比較運算符:

比較運算符又稱關(guān)系運算符,用于測試兩個表達式的值之間的關(guān)系,其運算結(jié)果為布爾類型的值TRUE或者FALSE。

除text、ntext 或p_w_picpath類型的數(shù)據(jù)外,比較運算符可以用于所有的表達式。


(6)邏輯運算符:

邏輯運算符用于對某個條件進行測試,以獲得其真實情況。邏輯運算符和比較運算符一樣,返回帶有TRUE或FALSE的布爾數(shù)據(jù)類型。


(7)字符串連接運算符:

字符串連接運算符號為“+”,是用來連接字符串的。它可連接字符串變量、列及字符串表達式。若有其他數(shù)據(jù)類型的數(shù)據(jù)要與字符串相加,則必須轉(zhuǎn)換為字符類型。


(8)運算符優(yōu)先級:

當使用多個運算符來組成表達式,優(yōu)先級較高的運算符會優(yōu)先做運算。如果希望某部分能夠優(yōu)先運算,那么可用小括號括起來。如果有多層小括號,則在內(nèi)層的算式優(yōu)先。比如“3*(6/(4-2))”,結(jié)果為9。

下面將優(yōu)先級從高到低依次列出: 

()括號

+(正)、-(負)、~(按位 NOT)

*(乘)、/(除)、%(模)

+(加)、(+ 串聯(lián))、-(減)

=,  >,  <,  >=,  <=,  <>,  !=,  !>,  !< 比較運算符

^(位異或)、&(位與)、|(位或)

NOT

AND

ALL、ANY、BETWEEN、IN、LIKE、OR、SOME

=(賦值) 



向AI問一下細節(jié)

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

AI