transact
Transact-SQL(又称 T-SQL),是在 Microsoft SQL Server 和 Sybase SQL Server 上的 ANSI SQL 实现,与 Oracle 的 PL/SQL 性质相近(不只是实现 ANSI SQL,也为自身数据库系统的特性提供实现支持),目前在 Microsoft SQL Server 和 Sybase Adaptive Server 中仍然被使用为核心的查询语言。
局部变量的定义与赋值
DECLARE @C1 CHAR(20),@C2 CHAR(10),@C3 CHAR(30)
SELECT @C1='SQL Server',@C2='2008'
SET @C3=@C1+@C2
SELECT @C3
DECLARE @C1 VARCHAR(20),@C2 VARCHAR(10),@C3 VARCHAR(30)
SELECT @C1='SQL Server',@C2='2008'
SET @C3=@C1+@C2
PRINT @C3
流程控制语句
BEGIN…END语句
语法
BEGIN
SQL语句1
SQL语句2
…
END
IF…ELSE语句
语法:
IF 布尔表达式
SQL语句块
[ELSE
SQL语句块]
WHILE、BREAK和CONTINUE语句
语法
WHILE 布尔表达式
SQL语句块
[BREAK]
SQL 语句块
[CONTINUE]
系统函数
CASE函数
CASE
WHEN boolean_expression THEN result_expression
[…n]
[ELSE else_result_expression]
END
exm:
SELECT 学号, 姓名,
等级=
CASE
WHEN 总学分 IS NULL THEN '尚未选课'
WHEN 总学分 < 50 THEN '不及格'
WHEN 总学分 >=50 and 总学分<=52 THEN '合格'
ELSE '优秀'
END
FROM XS
WHERE 专业='计算机'
日期函数
DATENAME(Year,Date) /*返回字符串格式*/
DATEPART(Year,Date) /*返回数值格式*/
YEAR(Date)
exm
SELECT DATEADD(year,1,'2004/7/16')
字符串函数&数学函数
注:查询联机丛书
用户自定义函数
exm:
CREATE FUNCTION fn_stuName(@stuId char(9))
RETURNS char(20)
AS
BEGIN
DECLARE @Name char(20)
SET @Name=
(
SELECT Sname
FROM Student
WHERE Sno=@stuId
)
RETURN @Name
End
go
DECLARE @Name char(20)
EXEC @Name=dbo.fn_stuName @stuID='200215121'
PRINT @Name