T-SQL编程
1.变量
全局变量
变 量 | 含 义 |
@@ERROR | 最后一个T-SQL错误的错误号 |
@@IDENTITY | 最后一次插入的标识符 |
@@LANGUAGE | 当前使用的语言名称 |
@@MAX_CONNECTIONS | 可以创建的同时连接的最大数目 |
@@ROWCOUNT | 受上一个SQL语句影响的行数 |
@@SERVERNAME | 本地服务器的名称 |
@@SERVICENAME | 该计算机上的SQL服务名称 |
@@TIMETICKS | 当前计算机每刻度的微秒数 |
@@TRANSCOUNT | 当前连接打开的事务数 |
@@VERSION | SQL Server的版本信息 |
局部变量 关键字DECLARE
声明:DECLARE @变量名 数据类型
示例:DECLARE @name varchar(8)
赋值:
方法1:SELECT @a=1, @b=3
方法2:SET @a=2
(注:SELECT一次可以给多个变量赋值,而SET只能赋值一个)
2.输出语句
语法:print 变量或字符串
SELECT 变量 as 自定义列名
示例:print ‘服务器名称’+ @@SERVERNAME
SELECT @@SERVERNAME as ‘服务器名称’
3.逻辑控制语句
IF-ELSE条件语句
语法:IF(条件)
BEGIN
语句或语句块1
END
ELSE
BEGIN
语句或语句块2
END
WHILE循环语句
语法:WHILE(条件)
BEGIN
语句或语句块
BREAK
END
CASE多分支语句
语法:CASE
WHEN 条件1 THEN 结果1
WHEN 条件1 THEN 结果1
ELSE 其它结果
GO批处理语句
逐条语句执行
子查询
1.子查询语法
示例:SELECT * FROM表名WHERE 字段>(子查询)
(注:子查询作为WHERE条件的一部分也可和DELETE,SELECT,UPDATE,INSERT一起连用,语法类似SELECT)
2.IN 和NOT IN子查询
示例1:SELECT * FROM表名WHERE 字段 IN (子查询)
示例2:DELETE * FROM 表名 WHERE 字段 NOT IN(子查询)
(注:IN后面的子查询可以返回多条记录,如果查询结果为多条用=会出现编译错误)
3.EXISTS 和NOT EXISTS子查询
示例:IF EXISTS (子查询)
BEGIN
语句块
END
(注:EXISTS一般用于子查询的存在检测,结果非空返回真,否则返回假)
事务
事务(Transaction)是单个的工作单元。如果某一事物成功,则在该事务中进行的所有数据更改均会提交,成为数据库的永久组成部分。如果事务遇到错误切必须取消或回滚,则所有数据更改均被清除
语法:开始事务:BEGIN TRANSACTION
回滚事务:ROLLBACK TRANSACTION
提交事务:COMMIT TRANSACTION
索引
索引提供指针以指向储存在表中指定列的数据值,然后根据指定的排列次序排列这些指针。数据库使用索引的方式与使用书的目录很相似:通过搜索索引找到特定的值,然后跟随指针到达包含该值的行
UNIQUE :唯一索引(可选)
CLUSTERED:聚集索引(如:拼音)
NONCLUSTERED:非聚集索引(如:笔画)
FILLFACTOR:填充因子(1-100)
1.创建索引
示例:
CREATE UNIQUE CLUSTERED INDEX 索引名
ON 表名 (列名1,列名2)
WITH FILLFACTOR=30
2.删除索引
示例:DROP INDEX 表名.索引名
3.使用索引查询
示例:
SELECT * FROM stuMarks
(INDEX = 索引名)
WHERE writtenExam BETWEEN 60 AND 90
视图
使用视图是另一种查看数据库中一个或多个表中数据的方法,视图是一种虚拟表,通常是作为来自一个或多个表的行或列的子集创建的,它的行和列来自查询中引用的表
1.创建视图
语法:CREATE VIEW 视图名
AS SELECT语句
2.删除视图
语法:DROP VIEW 视图名
存储过程
存储过程是SQL语句和控制流语句的预编译集合,存储在数据库内,可由应用程序调用执行,它可以接收参数,输出参数,返回单个或多个结果集以及返回值
1.系统存储过程
系统存储过程 | 说明 |
sp_databases | 列出服务器上的所有数据库 |
sp_helpdb | 报告有关知道那个数据库或所有数据库的信息 |
sp_renamedb | 更改数据库的名称 |
sp_tables | 返回当前环境下可查询对象的列表 |
sp_columns | 返回某个表列的信息 |
sp_help | 查看某个表的所有信息 |
sp_helpconstraint | 查看某个表的约束 |
sp_helpindex | 查看某个表的索引 |
sp_stored_procedures | 列出当前环境中的所有存储过程 |
sp_password | 添加或修改登录账户的密码 |
sp_helptext | 显示默认值,未加密的存储过程,用户定义的存储过程,触发器或试图的实际文本 |
2.创建存储过程
CREATE PROCEDURE 存储过程名
参数1,参数2
AS
SQL语句
3.创建带输出参数的存储过程
定义参数的时候后面加OUTPUT(调用的时候也要加OUTPUT)
如:@Sum int OUTPUT
4.删除存储过程
DROP PROCEDURE 存储过程名
5.调用存储过程 EXEC 关键字
语法:1) EXEC 存储过程名
2) EXEC 存储过程名 参数1,参数2
3) EXEC 存储过程名 变量名1=参数1,变量名2=参数2
4) EXEC 存储过程名 变量名1 OUTPUT,变量名2=参数2
6.RETURN 关键字
RETURN 关键字表明存储过程结束并能返回整型状态值给调用者
7.自定义错误信息
语法:RAISERROR (‘自定义错误提示’,错误严重性级别,调用状态)
示例:RAISERROR (‘及格线错误,请指定0-100之间的分数’,16,1)
(注:错误严重性级别0-18,调用状态1-127)
原文地址:http://www.cnblogs.com/lz6688/articles/1688035.html