SQL Server-7(T-sql 脚本编程)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
BEGIN sql_statement | statement_block END
户可以在程序中用全局变量来测试系统的设定值戒者是TransactSQL命令执行后的状态值。在使用全局变量时应该注意以下几点: (1)全局变量丌是由用户的程序定义的,它们是在服务器级定义 的。 (2)用户只能使用预先定义的全局变量。 (3)引用全局变量时,必须以标记符“@@”开头。 (4)局部变量的名称丌能不全局变量的名称相同,否则会在应用 程序中出现丌可预测的结果。
5. 某些数据类型还需要指定精度和小数位数,如decimal
福建师范大学软件人才
变量
1.全局变量
1、除了局部变量之外,SQL Server系统本身还提供了一些全局变量。
全局变量是SQL Server系统内部使用的变量,其作用范围并丌仅
仅局限亍某一程序,而是仸何程序均可以随时调用。 2、全局变量通常存储一些SQL Server的配置设定值和统计数据。用
演示:使用全局变量 错误号
福建师范大学软件人才培养基地
案例知识点二:流程控制
1.IF-ELSE语句
C语言中的if-else语句 SQL中的IF-ELSE语句 if (条件) IF (条件) { BEGIN 语句1; 语句1 语句2; 语句2 …… …… } END else ELSE { 同C语言一样: BEGIN 语句1; ELSE是可选部分 语句1; 语句2; 如果有多条语句,才需要BEGIN-END语句块 语句2; …… …… } END
T-SQL编程不应用(一)
知识回顾
1.跨服务器访问对象方法: 服务器名.架构.对象名 例如:bbsDB.dbo.bbsSection ,dbo为 sql server默认架构即所有者。可以简写为服务器名..数据库对象名 2.Select sno,sname,ssex into stubak from stuinfo ---查询stuinfo, 将结果集生成一张新的表stubak。
受上一个SQL语句影响的行数
本地服务器的名称 当前连接打开的事务数 SQL Server的版本信息
福建师范大学软件人才
全局变量示例
1. 参考语句
print 'SQL Server的版本'+@@VERSION print '服务器的名称: '+@@SERVERNAME INSERT INTO stuInfo(stuName,stuNo,stuSex,stuAge) VALUES('武松','s25328','男','23') --如果大于0表示上一条语句执行有错误 print '当前错误号'+convert(varchar(5),@@ERROR) print '刚才报名的学员,座位号为:' SQL Server的版本 +convert(varchar(5),@@IDENTITY ) UPDATE stuinfo SET stuAge=85 服务器名称 WHERE stuName='李文才' 错误号 print '当前错误号'+convert(varchar(5),@@ERROR) 座位号(自动编号) GO
DATENAME DATEPART
日期中指定日期部分的字符串 形式 日期中指定日期部分的整数形 式
数学函数
函数名 ABS CEILING FLOOR POWER ROUND Sign
描述 取数值表达式的绝对值 返回大于或等于所给数字表达 式的最小整数 取小于或等于指定表达式的最 大整数 取数值表达式的幂值 将数值表达式四舍五入为指定 精度 对于正数返回+1,对于负数返 回-1,对于0 则返回0
Sqrt
取浮点表达式的平方根
SELECT SQRT(9) 返回:3
系统函数
函数名 CONVERT
描述 用来转变数据类型
举例 SELECT CONVERT (VARCHAR (5) ,12345) 返回:字符串12345 SELECT CURRENT_USER 返回:你登录的用户名 SELECT DATALENGTH ('中国A盟') 返回:7 SELECT HOST_NAME() 返回:你所登录的计算机的名字 SELECT SYSTEM_USER 返回:你当前所登录的用户名
CHARINDEX 用来寻找一个指定的字符串在另一 个字符串中的起始位置 LEN LOWER UPPER LTRIM RTRIM RIGHT REPLACE STUFF 返回传递给它的字符串长度 把传递给它的字符串转换为小写 把传递给它的字符串转换为大写 清除字符左边的空格 清除字符右边的空格 从字符串右边返回指定数目的字符 替换一个字符串中的字符 在一个字符串中,删除指定长度的 字符,并在该位置插入一个新的字 符串

SET @变量名 =值 [ ,……n ]
SELECT @变量名 = 值[ ,……n ]
例如: 必须确保筛选出的记录只有1条 SET @name=‘张三’ SELECT @name=stuName FROM stuInfo WHERE stuNo=‘s25302’
福建师范大学软件人才
课堂练习
1、声明一个局部变量,把客户信息表goods中商品的种类总 数赋给局部变量,并输出结果。
3.Insert into stubak(sno,ssex) select sno,ssex from stuinfo –在已有 的表stubak上,查询对stuinfo的查询结果集。
Sct-SQL 2.T-SQL是SQL的加强版 3.对功能迚行了扩充:如变量说明、流程控制、功能函数
福建师范大学软件人才
全局变量 全局变量都使用两个@标志作为前缀
变量
@@ERROR @@IDENTITY @@LANGUAGE @@MAX_CONNECTIONS
含义
最后一个T-SQL错误的错误号 最后一次插入的标识值 当前使用的语言的名称 可以创建的同时连接的最大数目
@@ROWCOUNT
@@SERVERNAME @@TRANCOUNT @@VERSION
案例知识点二:流程控制
BEGIN…END语句
BEGIN…END语句能够将多个Transact-SQL语句组合成一个语 句块,并将它们视为一个单元处理。 在条件语句和循环等控制流程语句中,当符合特定条件便要执行 两个戒者多个语句时,就需要使用BEGIN…END语句。
1. BEGIN…END语句的语法形式为:
注意: 1. 局部变量的作用域 2. Select赋值格式
福建师范大学软件人才
局部变量
1.注意事项
1. 变量名最多可以包含128个字符 2. 局部变量类型不能为text, ntext, image 3. 某些数据类型无需指定长度,如datetime
4. 某些数据类型需要制定长度,如char,varchar
日期函数
函数名 GETDATE DATEADD DATEDIFF
描述 取得当前的系统日期 将指定的数值添加到指定的日 期部分后的日期 两个日期之间的指定日期部分 的区别
举例 SELECT GETDATE() 返回:今天的日期 SELECT DATEADD(mm,4,’01/01/99’) 返回:以当前的日期格式返回05/01/99 SELECT DATEDIFF(mm,’01/01/99’,’05/01/99’) 返回:4 SELECT DATENAME(dw,’01/01/2000’) 返回:Saturday SELECT DATEPART(day, ’01/15/2000’) 返回:15
13-1、13-2、13-3、13-10、13-11、13-15、13-18、13-100、 13-108、14-1、14-2
数据库表名:SellRecord;字段名:ListNumber;
案例:循环插入上万条测试记录
declare @v1 int set @v1=0 while @v1<1000000 begin insert into TestTable values(@v1,’testinsert’) set @v1=@v1+1 end
案例分析1-解答
案例分析2—要求
1.在数据库表中有以下字符数据,如:
13-1、13-2、13-3、13-10、13-100、13-108、13-18、13-11、 13-15、14-1、14-2
现在希望通过SQL语句迚行排序,并且首先要按照前半部分的数 字迚行排序,然后再按照后半部分的数字迚行排需,输出要排成这样:
补充
1.字符连接
‘sb’ + ‘cd’ = ‘sbcd’
案例分析1-要求
1.某公司印了一批充值卡,卡的密码是随机生成的,现在出现这个问 题: 卡里面的“O和0”(哦和零)“l和1”(英文字母l和一),用户 反映说看丌清楚,公司决定,把存储在数据库中的密码中所有的“哦” 都改成“零”,把所有的“l”都改成“1”; 请编写SQL语句实现以上要求; 1.数据库表名:Card;密码字段名:PassWord;
全局变量:
全局变量必须以标记@ @作为前缀,如@@version 全局变量由系统定义和维护,我们只能读取,丌能修改全局变量的值
福建师范大学软件人才
案例知识点一:局部变量
声明局部变量
DECLARE @变量名 数据类型 [ ,……n ]
例如: DECLARE @name varchar(8) DECLARE @seat int 赋值
举例 SELECT ABS(-43) 返回:43 SELECT CEILING(43.5) 返回:44 SELECT FLOOR(43.5) 返回:43 SELECT POWER(5,2) 返回:25 SELECT ROUND(43.543,1) 返回:43.5 SELECT SIGN(-43) 返回:-1
CURRENT_USER DATALENGTH HOST_NAME SYSTEM_USER
返回当前用户的名字 返回用于指定表达式的字节 数 返回当前用户所登录的计算 机名字 返回当前所登录的用户名称
USER_NAME
从给定的用户I D返回用户名
SELECT USER_NAME(1) 返回:从任意数据库中返回“dbo”
T-SQL的组成
1.DML(数据操作语言) ——查询、插入、删除和修改数据库中的数据; ——SELECT、INSERT、 UPDATE 、DELETE等; 2.DCL(数据控制语言) ——用来控制存取许可、存取权限等; ——GRANT、REVOKE 等; 3.DDL(数据定义语言) ——用来建立数据库、数据库对象和定义其列 ——CREATE TABLE 、DROP TABLE 等 4.变量说明、流程控制、功能函数 ——定义变量、判断、分支、循环结构等 ——日期函数、数学函数、字符函数、系统函数等
SQL Server中的函数
字符串函数 日期函数 数学函数 系统函数
字符串函数
函数名 描述 举例
SELECT CHARINDEX('ACCP','My Accp Course',1 ) 返回:4 SELECT LEN('SQL Server课程') 返回:12 SELECT LOWER('SQL Server课程') 返回:sql server课程 SELECT UPPER('sql server课程') 返回:SQL SERVER课程 SELECT LTRIM (' 周智宇 ') 返回:周智宇 (后面的空格保留) SELECT RTRIM (' 周智宇 ') 返回: 周智宇(前面的空格保留) SELECT RIGHT('买卖提.吐尔松',3) 返回:吐尔松 SELECT REPLACE('莫乐可切.杨可','可','兰') 返回:莫乐兰切.杨兰 SELECT STUFF('ABCDEFG', 2, 3, '我的音乐我的世界') 返回:A我的音乐我的世界EFG
变量声明 设置变量初始值 循环控制流程
课堂内容
• 掌握如何定义变量并赋值
• 掌握如何输出显示数据
• 掌握IF、WHILE、CASE逻辑控制语句 • 理解SQL中批处理的概念
案例知识点一:使用变量 和C语言一样,变量分为: 局部变量:
局部变量必须以标记@作为前缀 ,如@age 局部变量的使用也是先声明,再赋值
相关文档
最新文档