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