SQL server (三)T-SQL語言


1.基本概念

SQL Server 2008在支持標准SQL語言的同時,對其進行了擴充,引入了T-SQL,即Transact-SQL,T-SQL是使用SQL Server 2008的核心,通過它,可以定義變量、使用流控制語句、自定義函數、自定義存儲過程等,極大地擴展了SQL Server 2008的功能。

1.標識符

數據庫對象的名稱即為其標識符

2.標識符的種類

1)常規標識符 2)分隔標識符

3.常規標識符規則

1)第一個字符必須是英文大小寫、 下划線(_)、at符號(@)或者數字符號(#)

2)首字符可以用到的、十進制數字、美元符號($)

4.標識符不能是Transact-SQL保留字

5.不允許嵌入空格或其他特殊字符

批處理

批處理是包含一個或多個Transact-SQL語句的組,從應用程序一次性地發送到SQL Server 2008進行執行。可以理解為選中SQL語句塊執行它,SQL Server會一行一行地執行它。

注釋

--(雙連字符)

/*...*/(斜杠-星號字符對)

2.常量和變量

常量

文字值或標量值

  1. 字符串常量:單引號內
  2. Unicode字符串:前綴必須是大寫N
  3. 二進制常量:前綴0x,后面是十六進制字符串
  4. bit常量:0和1
  5. datetime常量
  6. integer常量
  7. decimal常量
  8. float和real常量:使用科學計數法
  9. money常量

變量

局部變量

用DECLARE語句聲明,作用范圍僅在程序內部。名稱以@開頭。

DECLARE @variable_name datatype

​ [,@variable_name datatype]...

賦值

SET @local_variable=expression

SELECT @local_variable=expression[,...n]

全局變量

事先定義好的,用戶不能去創建和修改。以@@開頭。

輸出

PRIINT

PRINT msg_str|@local_variable|string_expr

運算符

  1. 算術運算符 + - * / %
DECLARE @a INT, @b INT, @z INT
SET @a=18
SET @b=4
SET @z=@a+@b
PRINT @z
  1. 賦值運算符 =
  2. 位運算符 & | ^
  3. 比較運算符
  4. 邏輯運算符 返回TRUE或FALSE。AND BETWEEN IN LIKE NOT OR
  5. 連接運算符 + (字符串拼接)
  6. 一元運算符 +正 -負 ~位反
  7. 運算符的優先級

3.流控制語句

1. BEGIN...END

將多個語句組合成一個邏輯塊

BEGIN
兩條或兩條以上的語句
...
END

2. IF...ELSE

DECLARE @m INT
SET @m=12
IF @m>0
	PRINT 'TRUE'
ELSE
	PRINT 'FALSE'

3. WHILE

--求1到10之間的整數和
DECLARE @x INT,@sum INT
SET @x=1
SET @sum=0
WHILE @x<=10
	BEGIN
		SET @sum=@sum+@x
		SET @x=@x+1
	END
PRINT @sum

4. BREAK與CONTINUE

5. CASE

根據表達式的真假來確定是否返回某個值

--根據學生分數給出判斷
DECLARE @grade INT,@msg VARCHAR(10)
SET @grade=13
SET @msg=
CASE
	WHEN @grade>=90 AND @grade<=100 THEN  'excellent'
	WHEN @grade>=70 AND @grade<90 THEN  'good'
	WHEN @grade>=60 AND @grade<70 THEN  'pass'
	ELSE  'fail'
END
PRINT @msg

6. WAITFOR

WAITFOR延遲語句可以將它之后的語句在一個指定的時間間隔之后執行,或在未來的某一指定時間執行。

WAITFOR DELAY 'time'|time 'time'

delay等待時間,time結束時間點 格式為'hh:mm:ss'

--3秒后顯示‘傻瓜你好’
WAITFOR DELAY '00:00:03'
PRINT '傻瓜你好'

--16點15分顯示‘傻瓜你好’
WAITFOR TIME '16:15:00'
PRINT '傻瓜你好'

7. GOTO

改變程序執行的流程,使程序跳到標識符指定的程序行繼續往下執行。

GOTO 標識符

標識符需要在其名稱后加上一個冒號:

8. RETURN

從查詢或過程中無條件退出

RETURN [整數值]

--RETURN
DECLARE @m INT
SET @m=3
IF @m>0
	PRINT '遇到RETURN之前'
	RETURN
	PRINT '遇到RETURN之后'

9. PRINT


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM