您好,登錄后才能下訂單哦!
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
=(賦值)
免責聲明:本站發(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)容。