T-SQL 编程 存储过程

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

你可能感兴趣的:(数据库)