




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、SQL Server2005第第7章章 Transact_SQL語(yǔ)言語(yǔ)言SQL Server20057.1 T-SQL7.1 T-SQL概述概述7.1.1 SQL Server中的運(yùn)算符中的運(yùn)算符 運(yùn)算符就是進(jìn)行運(yùn)算的符號(hào)。運(yùn)算符就是進(jìn)行運(yùn)算的符號(hào)。SQL Server支持的支持的運(yùn)算符如表運(yùn)算符如表7.1所示。所示。 一般來說,可以在允許使用表達(dá)式的場(chǎng)合用運(yùn)算一般來說,可以在允許使用表達(dá)式的場(chǎng)合用運(yùn)算符將常量、變量、對(duì)象等連接起來,形成新的表符將常量、變量、對(duì)象等連接起來,形成新的表達(dá)式。表達(dá)式。表7.2給出了運(yùn)算符的優(yōu)先級(jí)順序。給出了運(yùn)算符的優(yōu)先級(jí)順序。表7.1 T-SQL中的運(yùn)算符運(yùn)算符
2、運(yùn)算符說明說明+加加-減減*乘乘/除除%取余取余=賦值賦值大于大于=大于等于大于等于表表7.1 T-SQL中的運(yùn)算符中的運(yùn)算符運(yùn)算符運(yùn)算符說明說明不大于不大于!,=,!= srSQL Server20057.2 7.2 常用運(yùn)算符常用運(yùn)算符 運(yùn)算符是一種符號(hào),用來指定要在一個(gè)或多個(gè)表運(yùn)算符是一種符號(hào),用來指定要在一個(gè)或多個(gè)表達(dá)式中執(zhí)行的操作。達(dá)式中執(zhí)行的操作。SQL Server常用的運(yùn)算符有:常用的運(yùn)算符有: 算術(shù)運(yùn)算符算術(shù)運(yùn)算符 賦值運(yùn)算符賦值運(yùn)算符 比較運(yùn)算符比較運(yùn)算符 邏輯運(yùn)算符邏輯運(yùn)算符 字符串串聯(lián)運(yùn)算符字符串串聯(lián)運(yùn)算符SQL Server20057.2.1 7.2.1 算數(shù)運(yùn)算符算
3、數(shù)運(yùn)算符 算術(shù)運(yùn)算符包括:加(算術(shù)運(yùn)算符包括:加(+)、減()、減(-)、乘)、乘(*)、除()、除(/)、取模()、取模(%)。)。 例例7.4 利用利用Product表計(jì)算每種商品的總價(jià)表計(jì)算每種商品的總價(jià)值值SELECT Price*stocks AS 商品總價(jià)值商品總價(jià)值FROM ProductSQL Server20057.2.2 7.2.2 賦值運(yùn)算符號(hào)賦值運(yùn)算符號(hào) 賦值運(yùn)算符等號(hào)為(賦值運(yùn)算符等號(hào)為(=)。)。 例例7.5 利用賦值運(yùn)算符為表中的列設(shè)置標(biāo)利用賦值運(yùn)算符為表中的列設(shè)置標(biāo)題。題。SELECT 客戶編號(hào)客戶編號(hào)=CustomerID,所在公司所在公司=CompanyNa
4、meFROM CustomerSQL Server20057.2.3 7.2.3 字符串串聯(lián)運(yùn)算符字符串串聯(lián)運(yùn)算符 字符串串聯(lián)運(yùn)算符為(字符串串聯(lián)運(yùn)算符為(+),允許通過加號(hào)),允許通過加號(hào)在多個(gè)字符串間進(jìn)行字符串串聯(lián)操作。在多個(gè)字符串間進(jìn)行字符串串聯(lián)操作。 例例7.6 使用串聯(lián)運(yùn)算符進(jìn)行操作。使用串聯(lián)運(yùn)算符進(jìn)行操作。DECLARE myvar char(20)SET myvar=SQL+SERVER+2000SELECT myvar AS 運(yùn)算結(jié)果為:運(yùn)算結(jié)果為:SQL Server2005 例例7.7 使用邏輯運(yùn)算符查詢滿足條件的記錄。使用邏輯運(yùn)算符查詢滿足條件的記錄。DECLARE my
5、var1 char(6),myvar2 intSELECT myvar1=p0100%, myvar2=1SELECT * FROM ProductWHERE ProductID like myvar1 AND CategoryID=myvar2 SQL Server20057.3 函數(shù)( (1) 1) 字符串函數(shù)字符串函數(shù)ASCII(char_exp)ASCII(char_exp):返回字符的返回字符的ASCIIASCII碼碼。例如,例如,select ASCII(select ASCII(a a) ) 返回返回9797。CHAR(int_exp)CHAR(int_exp):返回整數(shù)表達(dá)式返
6、回整數(shù)表達(dá)式int_expint_exp作為作為ASCIIASCII碼所代表的字符,碼所代表的字符,例如,例如, select CHAR(65) select CHAR(65) 返回返回字符字符 AA。CHARINDEX(exp1,exp2)CHARINDEX(exp1,exp2):在在exp2exp2中查找中查找exp1exp1出現(xiàn)出現(xiàn)的位置。例如的位置。例如: :select CHARINDEX(select CHARINDEX(serser, ,SQL serverSQL server) ) 返回返回5 5SQL Server2005LEFT(char_exp,int_exp)LEFT(
7、char_exp,int_exp):返回字符串返回字符串char_expchar_exp最左端的最左端的int_expint_exp個(gè)字符。個(gè)字符。例如,例如,select LEFT(CHINA,3) select LEFT(CHINA,3) 返回返回 CHICHI。RIGHT(char_exp,int_exp)RIGHT(char_exp,int_exp):返回字符表達(dá)式返回字符表達(dá)式char_expchar_exp最右端的最右端的int_expint_exp個(gè)字符。個(gè)字符。例如,例如, select RIGHT(CHINA,3) select RIGHT(CHINA,3) 返回返回 INA
8、INASPACE ( int_exp)SPACE ( int_exp):返回返回int_expint_exp個(gè)空格。個(gè)空格。例如,例如, select SPACE(3) select SPACE(3) 返回返回3 3個(gè)空格。個(gè)空格。SQL Server2005 REPLACE(exp1,exp2,exp3)REPLACE(exp1,exp2,exp3)將將exp1exp1中所有出現(xiàn)中所有出現(xiàn)exp2exp2的地方均用的地方均用exp3exp3替換。替換。例例 select REPLACE(xyzabcxyab,xy,rst)select REPLACE(xyzabcxyab,xy,rst)返回
9、返回 rstzabcrstabrstzabcrstab REPLICATE(char_exp,int_exp)REPLICATE(char_exp,int_exp):將字符表達(dá)式將字符表達(dá)式char_exp char_exp 重復(fù)重復(fù) int_expint_exp次。例如次。例如: : select REPLICATE(XYZ,3) select REPLICATE(XYZ,3) 返回返回 XYZXYZXYZXYZXYZXYZ。 REVERSE (char_exp)REVERSE (char_exp):按反序顯示按反序顯示char_expchar_exp。例例 select REVERSE (
10、xyzabc) select REVERSE (xyzabc) 返回返回 cbazyxcbazyx。SQL Server2005LEN(str_exp)LEN(str_exp):返回返回str_expstr_exp中字符的個(gè)數(shù)。中字符的個(gè)數(shù)。例如,例如, select LEN(abcde) LEN(abcde) 返回返回5 5。UPPER (char_exp)UPPER (char_exp):返回將返回將char_expchar_exp中所有小寫字中所有小寫字母轉(zhuǎn)成大寫之后的字符串。母轉(zhuǎn)成大寫之后的字符串。例如,例如,select UPPER (aBcD1234) UPPER (aBcD123
11、4) 返回返回 ABCD1234ABCD1234LOWER(char_exp)LOWER(char_exp):返回將返回將char_expchar_exp中所有大寫字母中所有大寫字母轉(zhuǎn)成小寫之后的字符串。轉(zhuǎn)成小寫之后的字符串。例如,例如, select LOWER(aBcD1234) LOWER(aBcD1234) 返回返回 abcd1234abcd1234SQL Server2005 STUFF(exp1,start,length, exp2)STUFF(exp1,start,length, exp2): 將將exp1exp1中中從從startstart開始的連續(xù)開始的連續(xù)lengthlen
12、gth個(gè)字符替換成個(gè)字符替換成exp2exp2。例:例: select STUFF(xyzrst,2,4 ,abc)select STUFF(xyzrst,2,4 ,abc)返回返回 xabctxabct SUBSTRING(exp,start,length)SUBSTRING(exp,start,length):返回返回expexp中從中從startstart開始連續(xù)開始連續(xù)lengthlength個(gè)字符。個(gè)字符。例如,例如, select SUBSTRING (xyzrst,2,4) select SUBSTRING (xyzrst,2,4) 返回返回 yzrsyzrsSQL Server
13、2005( (2) 2) 日期和時(shí)間函數(shù)日期和時(shí)間函數(shù) DATEADD(datepart,number,date)DATEADD(datepart,number,date):將將date日期日期中的中的datepart部分加上部分加上number,返回新的日期。返回新的日期。例例: select select DATEADD (day,3,6/24/2003 10:26:45)返回返回Jun 27 2003 10:26:45 。 DATEDIFF( datepart, startdate, enddate )DATEDIFF( datepart, startdate, enddate ):以以
14、datepart為單位返回為單位返回startdate和和enddate的間隔。的間隔。例:例:select select DATEDIFF (year,6/23/2001 10:26:45, 6/24/2003 10:26:45)返回返回2。SQL Server2005 DAY ( date )DAY ( date ):返回返回date日期中的日期中的“日日”部分值,部分值,該函數(shù)與該函數(shù)與DATEPART(day,date)是等價(jià)的。是等價(jià)的。例如,例如, select DAY( 6/24/2003 10:26:45 )返回返回24。 MONTH ( date )MONTH ( date
15、):返回返回date日期中的日期中的“月月”部分部分值。值。 YEAR (date )YEAR (date ):返回返回date日期中的日期中的“年年”部分值。部分值。 GETDATE ( )GETDATE ( ):返回系統(tǒng)的當(dāng)前日期和時(shí)間。返回系統(tǒng)的當(dāng)前日期和時(shí)間。SQL Server2005 ( (3) 3) 數(shù)學(xué)函數(shù)數(shù)學(xué)函數(shù) ABS (numeric_expression ) ABS (numeric_expression ) :返回絕對(duì)值。返回絕對(duì)值。例如,例如, select select ABS(-21)返回返回21。 CEILING (numeric_expression )CE
16、ILING (numeric_expression ):返回大于等返回大于等于給定數(shù)據(jù)的最小整數(shù)。于給定數(shù)據(jù)的最小整數(shù)。例如,例如, select select CEILING(13.5)返回返回14。 FLOOR (numeric_expression )FLOOR (numeric_expression ) :返回小于等于返回小于等于給定數(shù)據(jù)的最大整數(shù)。給定數(shù)據(jù)的最大整數(shù)。例如,例如, select select FLOOR (13.5)返回返回13。SQL Server2005 ROUND (numeric_expression,length )ROUND (numeric_expres
17、sion,length ):按四舍按四舍五入返回給定數(shù)據(jù)的近似值。五入返回給定數(shù)據(jù)的近似值。例如,例如, select ROUND(156.45678,3) select ROUND(156.45678,3) 返回返回156.457156.457。 POWER(numeric_expression,y )POWER(numeric_expression,y ):返回給定數(shù)據(jù)返回給定數(shù)據(jù)的冪方值。的冪方值。例如,例如, select POWER(2.50,2) select POWER(2.50,2) 返回返回6.256.25。 RAND ( seed )RAND ( seed ) :返回一個(gè)介
18、于返回一個(gè)介于0 0和和1 1之間的之間的隨機(jī)數(shù)。其中任選項(xiàng)隨機(jī)數(shù)。其中任選項(xiàng)seedseed是個(gè)整數(shù)。是個(gè)整數(shù)。SQL Server20057.4 7.4 控制語(yǔ)句控制語(yǔ)句1. BEGIN-END將多個(gè)將多個(gè)T-SQL語(yǔ)句組合為一個(gè)程序塊,相當(dāng)于許多高語(yǔ)句組合為一個(gè)程序塊,相當(dāng)于許多高級(jí)語(yǔ)言中的級(jí)語(yǔ)言中的 。BEGINENDSQL Server20052. 2. IF-ELSEIF-ELSE語(yǔ)句語(yǔ)句IF ELSE其中條件表達(dá)式的值必須是邏輯值,其中條件表達(dá)式的值必須是邏輯值,ELSE子句是可子句是可選的。選的。其中其中可以是單條語(yǔ)句或程序塊。可以是單條語(yǔ)句或程序塊。 SQL Server20
19、05declare x int,y int,z intselect x=1,y=2,z=3if xy print xyelse if yz print yz else print z=y運(yùn)行結(jié)果是:運(yùn)行結(jié)果是: z=ySQL Server20053. 3. CASECASE表達(dá)式表達(dá)式CASE表達(dá)式可以用在任何表達(dá)式可以用在任何允許使用允許使用表達(dá)式的地方。表達(dá)式的地方。CASE表達(dá)式表達(dá)式不能單獨(dú)執(zhí)行不能單獨(dú)執(zhí)行,只能作為語(yǔ)句的一部分。,只能作為語(yǔ)句的一部分。(1) 簡(jiǎn)單簡(jiǎn)單CASE表達(dá)式表達(dá)式 CASE WHEN THEN WHEN THEN ELSE ENDSQL Server2005例
20、例7.8 調(diào)整員工工資調(diào)整員工工資 e_wage : 崗位級(jí)別崗位級(jí)別 job_level 為為1的,工資上調(diào)的,工資上調(diào)8%, 崗位級(jí)別為崗位級(jí)別為2的,工資上調(diào)的,工資上調(diào)7%, 崗位級(jí)別為崗位級(jí)別為3的,工資上調(diào)的,工資上調(diào)6%, 其他的,工資上調(diào)其他的,工資上調(diào)5% declare e_wage int,job_level intselect job_level=1,e_wage=1000set e_wage =Case job_levelwhen 1 then e_wage*1.08when 2 then e_wage*1.07when 3 then e_wage*1.06else
21、e_wage*1.05endselect e_wageSQL Server2005(2) 搜索搜索CASE表達(dá)式:表達(dá)式:CASEWHEN THEN WHEN THEN ELSE ENDSQL Server2005declare e_wage int,job_level intselect job_level=1,e_wage=1000set e_wage =casewhen job_level = 1 then e_wage*1.08when job_level = 2 then e_wage*1.07when job_level = 3 then e_wage*1.06else e_wag
22、e*1.05endprint e_wage例例7.9 用第二種格式完成上例用第二種格式完成上例SQL Server20054. WHILE語(yǔ)句直到條件不成立時(shí)退出循環(huán)直到條件不成立時(shí)退出循環(huán)WHILE BEGIN BREAK CONTINUE ENDSQL Server2005 其中的其中的如果由如果由多個(gè)多個(gè)T-SQL語(yǔ)句組成,則需語(yǔ)句組成,則需用用BEGIN和和END括起來。括起來。 通常情況下,通常情況下,CONTINUE和和BREAK是放在是放在IF-ELSE命令中的,即在滿足某個(gè)條件時(shí)提前結(jié)束命令中的,即在滿足某個(gè)條件時(shí)提前結(jié)束本次循環(huán)或退出本層循環(huán)。本次循環(huán)或退出本層循環(huán)。 BREAK命令命令: 讓程序跳出包含它的最內(nèi)層循環(huán)。讓程序跳出包含它的最內(nèi)層循環(huán)。 CONTINUE命令命令: 讓程序跳過讓程序跳過CONTINUE之后之后的語(yǔ)句回到的語(yǔ)句回到WHILE 循環(huán)的第一行命令。循環(huán)的第一行命令。 WHILE語(yǔ)句可以嵌套。語(yǔ)句可以嵌套。DECLARE i intSET i=1WHILE i=5 BEGIN- if i=3 break/* if i=3 begin SET i=i+1 continue end */ PRINT i SET i=i+1 END DECLARE i int, t intSET i=150WHIL
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專題2.9 函數(shù)的零點(diǎn)(原卷版)-2024年高考數(shù)學(xué)一輪復(fù)習(xí)精講精練寶典(新高考專用)
- 2022年北京市石景山初三二模英語(yǔ)試卷及答案
- (一模)萍鄉(xiāng)市2025年高三第一次模擬考試生物試卷(含答案解析)
- 2020-2021深圳寶文學(xué)校小學(xué)三年級(jí)數(shù)學(xué)下期中第一次模擬試卷(及答案)
- 機(jī)井電力配套施工方案
- 關(guān)于活動(dòng)付款合同范例
- 專利委托合同范例
- 化工勞務(wù)合同范例
- 保安工作總結(jié)計(jì)劃裝飾行業(yè)保安工作的工地保護(hù)
- 會(huì)計(jì)工作與企業(yè)發(fā)展的關(guān)系計(jì)劃
- 2025年吉林長(zhǎng)白朝鮮族自治縣事業(yè)單位招聘16人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 初中歷史七年級(jí)上冊(cè)第8課 百家爭(zhēng)鳴
- 中國(guó)教育史課件
- 幼兒園小班美術(shù)欣賞《漂亮的糖紙》課件
- 互聯(lián)網(wǎng)接入服務(wù)提供商服務(wù)承諾
- 2024年全國(guó)中學(xué)生生物學(xué)聯(lián)賽試題含答案
- 城市綠化景觀設(shè)施安裝與維護(hù)合同
- 解除凍結(jié)及撤銷納入失信和限高令申請(qǐng)書(文本)
- 2024年河北省公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 在線問卷系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 英語(yǔ)語(yǔ)法-形容詞和副詞-復(fù)習(xí)資料
評(píng)論
0/150
提交評(píng)論