数据库原理与应用(SQL Server)笔记 第七章 流程控制语句、系统内置函数
目錄
一、流程控制語句
(一)BEGIN...END語句塊
(二)條件語句
(三)循環(huán)語句
1、WHILE語句
2、BREAK語句和CONTINUE語句
(四)無條件轉(zhuǎn)移語句
(五)返回語句?
(六)等待語句
(七)錯(cuò)誤處理語句
二、系統(tǒng)內(nèi)置函數(shù)
(一)數(shù)學(xué)函數(shù)
1、ABS函數(shù)
2、EXP函數(shù)
3、CEILING函數(shù)和FLOOR函數(shù)
4、LOG函數(shù)
5、POWER函數(shù)
6、SQRT函數(shù)
7、SIGN函數(shù)
8、RAND函數(shù)
(二)字符串函數(shù)
結(jié)語
一、流程控制語句
(一)BEGIN...END語句塊
BEGIN...END語句塊的作用是將多條T-SQL語句定義為一個(gè)語句塊來執(zhí)行,即當(dāng)做一個(gè)整體,BEGIN...END語句塊可以嵌套使用,其中關(guān)鍵字BEGIN指示語句塊的開始,END指示語句塊的結(jié)束。
BEGIN<T-SQL語句> (BEGIN...END語句塊) /*BEGIN...END語句塊可以嵌套使用*/ END(二)條件語句
學(xué)過c語言或者c++語言的應(yīng)該知道有if-else條件語句,這里的條件語句跟其相同。即使用IF...ELSE語句時(shí),當(dāng)條件為真或假時(shí),分別執(zhí)行不同的T-SQL語句或語句序列。根據(jù)帶不帶ELSE可分為兩種形式,即ELSE可省略,不帶ELSE時(shí)執(zhí)行條件表達(dá)式的值,當(dāng)條件表達(dá)式為真時(shí)執(zhí)行T-SQL語句或語句塊,然后執(zhí)行IF語句的下一條語句;當(dāng)為假時(shí),直接執(zhí)行IF語句的下一條語句。如果條件判斷不止兩個(gè)結(jié)果,比如有三個(gè)結(jié)果,就可以使用[if]-[else if]-[else]的結(jié)構(gòu),假設(shè)還有結(jié)果,就繼續(xù)在中間添加else if即可。
IF <條件表達(dá)式><T-SQL語句或BEGIN...END語句塊> (ELSE<T-SQL語句或BEGIN...END語句塊>)(三)循環(huán)語句
1、WHILE語句
當(dāng)程序中的一部分語句需要循環(huán)執(zhí)行時(shí),使用WHILE語句來實(shí)現(xiàn)。首先根據(jù)條件表達(dá)式進(jìn)行判斷,當(dāng)條件表達(dá)式為真時(shí),執(zhí)行循環(huán)體中的T-SQL語句或語句序列,再進(jìn)行條件判斷,當(dāng)條件表達(dá)式為真時(shí),重復(fù)執(zhí)行上述操作;直到條件表達(dá)式為假時(shí),退出循環(huán)體,執(zhí)行WHILE語句的下一條語句。同時(shí),在循環(huán)體中,也可以進(jìn)行WHILE語句的嵌套。
WHILE <條件表達(dá)式> <T-SQL語句構(gòu)成的循環(huán)體或BEGIN...END語句塊>2、BREAK語句和CONTINUE語句
BREAK語句可以在循環(huán)語句中退出本層循環(huán),而CONTINUE語句可以在循環(huán)語句中結(jié)束本次循環(huán),從而進(jìn)入循環(huán)開始條件的判斷。
(四)無條件轉(zhuǎn)移語句
GOTO語句用于實(shí)現(xiàn)無條件跳轉(zhuǎn),將執(zhí)行流程轉(zhuǎn)移到標(biāo)號(hào)指定的位置。語句格式:
標(biāo)號(hào): 語句 ......GOTO <跳轉(zhuǎn)至標(biāo)號(hào)名稱>例、計(jì)算從1乘到100的值。
sql語句:
DECLARE @sum int,@i int SET @i=1 SET @sum=1 x: SET @sum=@sum*@i SET @i=@i+1 IF @i<=10GOTO x PRINT '1*2*...*10='+CAST(@sum AS char(10))輸出結(jié)果:
這里最后一行的PRINT '1*2*...*10='+CAST(@sum AS char(10))使用到了CAST()函數(shù),其將數(shù)據(jù)類型varchar的表達(dá)式顯式轉(zhuǎn)換為另一種數(shù)據(jù)類型char,之間的AS用于分隔兩個(gè)參數(shù),在AS為要處理的數(shù)據(jù)類型,AS之后是要轉(zhuǎn)換的數(shù)據(jù)類型。如果不轉(zhuǎn)換將會(huì)報(bào)錯(cuò)無法運(yùn)行。
查詢中的x就是我們定義的要跳轉(zhuǎn)的語句標(biāo)號(hào)名稱。
附:CAST()函數(shù)可轉(zhuǎn)換的類型有字符型、日期、時(shí)間、浮點(diǎn)數(shù)、整數(shù)等等。
(五)返回語句?
返回語句即RETURN語句,用于查詢語句塊、存儲(chǔ)過程或批處理中無條件退出,即位于RETURN之后的語句將不再執(zhí)行。
格式如下:
RETURN <整型表達(dá)式>(六)等待語句
等待語句WAITFOR指定語句塊、存儲(chǔ)過程或事務(wù)執(zhí)行的時(shí)刻或需要等待的時(shí)間間隔。
格式如下:
WAITFOR <DELAY 等待的時(shí)間>(TIME 等待到某一時(shí)刻)(七)錯(cuò)誤處理語句
TRY...CATCH語句用于對(duì)T-SQL語言中的錯(cuò)誤進(jìn)行處理,即在執(zhí)行TRY中的語句時(shí),若執(zhí)行的過程中沒有異常拋出,那么執(zhí)行完后就執(zhí)行最后一個(gè)CATCH 塊后面的語句,所有 CATCH塊中的語句都不會(huì)被執(zhí)行,CATCH可以有多個(gè),但至少要有一個(gè)。
格式如下:
TRY T-SQL語句或BEGIN...END語句塊CATCH(異常類型) T-SQL語句或BEGIN...END語句塊 ... CATCH(異常類型) T-SQL語句或BEGIN...END語句塊二、系統(tǒng)內(nèi)置函數(shù)
(一)數(shù)學(xué)函數(shù)
數(shù)學(xué)函數(shù)用于對(duì)數(shù)值表達(dá)式進(jìn)行數(shù)學(xué)運(yùn)算并返回運(yùn)算結(jié)果,這里介紹幾個(gè)常用的數(shù)學(xué)函數(shù)。
1、ABS函數(shù)
ABS()用于返回?cái)?shù)值表達(dá)式的絕對(duì)值。
例、-9.2222取絕對(duì)值輸出9.2222,0.35555取絕對(duì)值輸出0.35555。
sql語句:
SELECT ABS(-9.2222),ABS(0.35555)輸出結(jié)果:
2、EXP函數(shù)
EXP()用于返回指定表達(dá)式以e為底的指數(shù)。
例、求以e為底的平方的值:
sql語句:
SELECT EXP(2) AS 'e的平方'輸出結(jié)果:
3、CEILING函數(shù)和FLOOR函數(shù)
CEILING()用于返回大于或等于數(shù)值表達(dá)式的最小整數(shù),而FLOOR()用于返回小于或等于數(shù)值表達(dá)式的最大整數(shù)。
4、LOG函數(shù)
LOG()用于返回?cái)?shù)值表達(dá)式以10為底的對(duì)數(shù)。
例、輸出LOG(1)的值:
sql語句:
SELECT LOG(1)輸出結(jié)果:
5、POWER函數(shù)
POWER()用于返回?cái)?shù)值表達(dá)式進(jìn)行冪運(yùn)算的結(jié)果,這里要注意POWER()函數(shù)帶有兩個(gè)參數(shù),格式是POWER(數(shù)值,冪次方)。
例、輸出2的10次方的值,運(yùn)用POWER函數(shù):
sql語句:
SELECT POWER(2,10)輸出結(jié)果:
6、SQRT函數(shù)
SQRT()函數(shù)用于返回?cái)?shù)值表達(dá)式的平方根。
例、輸出16的平方根。
sql語句:
SELECT SQRT(16)輸出結(jié)果:
7、SIGN函數(shù)
SIGN()函數(shù)用于返回?cái)?shù)值表達(dá)式的正號(hào)(+)、負(fù)號(hào)(-)或零(0)。
8、RAND函數(shù)
RAND()函數(shù)用于返回0到1之間的一個(gè)隨機(jī)值,RAND()函數(shù)中有seed參數(shù),指定種子值,其返回值類型為float。當(dāng)指定種子值時(shí),輸出結(jié)果相同;當(dāng)未指定時(shí),則隨機(jī)分配種子。
例、通過RAND函數(shù)產(chǎn)生種子隨機(jī)數(shù)。
sql語句:
DECLARE @count float SET @count=0 SELECT RAND(@count) AS cont輸出結(jié)果:
(二)字符串函數(shù)
| 函數(shù) | 作用 |
| ASCII | 返回字符表達(dá)式中最左側(cè)的ASCII碼 |
| CHAR | 返回指定ASCII碼的對(duì)應(yīng)字符 |
| CHARINDEX | 返回指定模式的起始位置 |
| LEN | 返回字符串表達(dá)式的字符數(shù)(不包括尾隨空格) |
| REPLACE | 有三個(gè)字符串表達(dá)式,用第三個(gè)字符串表達(dá)式替換第一個(gè)字符串表達(dá)式中包含的第二個(gè)字符串表達(dá)式,并返回替換后的表達(dá)式 |
| REPLICATE | 以指定的次數(shù)復(fù)制字符表達(dá)式 |
| LEFT | 返回字符串中從左側(cè)開始指定個(gè)數(shù)的字符 |
| RIGHT | 返回字符串中從右側(cè)開始指定個(gè)數(shù)的字符 |
| SPACE | 返回由重復(fù)的空格組成的字符串 |
| LTRIM | 刪除前導(dǎo)空格字符串,返回刪除了前導(dǎo)空格之后的字符表達(dá)式 |
| STR | 返回由數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)換來的字符數(shù)據(jù) |
| SUBSTRING | 返回表達(dá)式中指定的部分?jǐn)?shù)據(jù),可指定數(shù)據(jù)類型、開始位置、返回的字節(jié)數(shù) |
結(jié)語
以上就是本次數(shù)據(jù)庫原理與應(yīng)用(SQL Server)筆記流程控制語句、系統(tǒng)內(nèi)置函數(shù)的全部內(nèi)容,感謝您的閱讀和支持,篇幅較長,若有表述以及代碼中的不當(dāng)之處,望指出!您的指出和建議能給作者帶來很大的動(dòng)力!!!
總結(jié)
以上是生活随笔為你收集整理的数据库原理与应用(SQL Server)笔记 第七章 流程控制语句、系统内置函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++语言程序设计——头文件和引用系统头
- 下一篇: (*长期更新)软考网络工程师学习笔记——