T-SQL编程(基础与函数).ppt
《T-SQL编程(基础与函数).ppt》由会员分享,可在线阅读,更多相关《T-SQL编程(基础与函数).ppt(54页珍藏版)》请在三一办公上搜索。
1、第八章 T-SQL编程,TRANSACT SQL,Transact-SQL简写为T-SQL。T-SQL是SQL语言的一种版本,且只能在SQL SERVER上使用。它是ANSI SQL的加强版语言、提供了标准的SQL命令。另外,T-SQL还对SQL做了许多补允,提供了类似C、Basic和Pascal的基本功能,如变量说明、流控制语言、功能函数等。,T-SQL基础,标识符,标识符是指用户在SQL Server中定义的服务器、数据库、数据库对象、变量等对象的名称。SQL Server标识符分为常规标识符和分隔标识符。,标识符,1.常规标识符常规标识符应遵守以下命名规则:(1)标识符长度可以为1128
2、个字符。对于本地临时表,标识符长度最多可以有116个字符。(2)标识符的首字符必须为Unicode 3.2标准所定义的字母或_、#(3)标识符首字符后面的后续字符为 Unicode 3.2标准中所定义的字母、数字或、#、$、_(4)标识符内不允许嵌入空格或其他特殊字符。(5)标识符不能与SQL Server中的保留关键字同名。,例如:SELECT*FROM teacher其中teacher即为常规标识符,标识符,2.分隔标识符分隔标识符允许在标识符中使用SQL Server保留关键字或常规标识符中不允许使用的一些特殊字符。分隔标识符是由双引号或方括号分隔符进行分隔的标识符。,标识符,2.分隔标
3、识符,例1:Create database My DB由于数据库名My DB中包含空格,所有用方括号分隔例2:Create table table(column1 char(10)primary key,column2 int)由于所创建的表名table与SQL的保留关键字相同,故需要加方括号来分隔,标识符,批处理,多条语句放在一起依次执行,称为批处理执行,批处理语句之间用GO分隔。,例如:Use teaching Go Create view vw_teacher As select*from teacher Go Select*from vw_teacher Go,注意:Go不是T-sql
4、语句,不能和T-sql语句在同一行。我们将go 解释为应该向SQL server实例发送当前批处理语句的信号。当前批处理由上一个go命令后的所有语句组成。,使用批处理时有如下限制:(1)CHECK约束不能在同一个批处理中既定义又使用(2)在同一个批处理中不能删除对象又重新创建该对象。(3)使用SET语句改变的选项在批处理结束时生效(4)不能在同一个批处理中更改表,然后引用新列。,批处理,注释,用来对某些sql语句及存储过程做注释,注释的长度没有限制。1、”-”,注释一行语句。2、”/*/”,注释多行语句,可以换行。,语法格式如下:/*/,例:P179【任务1-3】,1.Print语句,如:pr
5、int 你好!print name,输出语句,PRINT msg_str|local_variable|string_exprmsg_str:字符串或 Unicode 字符串常量。local_variable:任何有效的字符型变量。注意:local_variable的数据类型必须为char、nchar、varchar或nvarchar,或者必须能够隐式转换为这些数据类型。string_expr:返回字符串的表达式。,2、raiserror:返回用户定义的错误信息。,RAISERROR(msg_id|msg_str,severity,state),msg_id:存储于sys.messages视图
6、中的用户定义的错误信息号。用户定义错误消息的错误号应当大于 50000。msg_str:是一个用户定义消息,该错误消息最长可以有 2047 个字符;当指定 msg_str 时,RAISERROR 将引发一个错误号为 50000 的错误消息。severity:用户定义的与该消息关联的严重级别。任何用户都可以指定 0 到 18 之间的严重级别。state:介于 1 至 127 之间的任意整数(state 默认值为1)。如果在多个位置引发相同的用户定义错误,则针对每个位置使用唯一的状态号有助于找到引发错误的代码段。,2、raiserror:返回用户定义的错误信息。,RAISERROR(msg_id|
7、msg_str,severity,state),例如:Print Hello World!Raiserror(发生错误,16,1),T-SQL变量和运算符,变量,变量是SQL Server用来在语句之间传递数据的方式之一,由系统或用户定义并赋值。SQL Server中的变量分为局部变量和全局变量。全局变量:由系统定义和维护,名称以字符开始。局部变量:由用户定义和赋值,名称以字符开始,局部变量定义,declare语句用来定义一个或多个局部变量,这个变量必须以开头,跟着一个标识符。,语法格式如下:declare variable_name datatype,variable_name dataty
8、pe,例:declare a int,b char,局部变量赋值,在使用DECLARE声明变量后,所有的变量都会被赋上一个初值NULL,需要使用SET或者SELECT语句为其赋值。,语法格式如下:set v_name1=value select v_name1=value,v_name1=valueFROM WHERE,局部变量,例:分别使用set和select子句为变量a和b赋值 1234,abcd。,declare a int,b char(4)/*set a=1234 set b=abcd*/select a=1234,b=abcdprint aprint b,全局变量,使用全局变量应注
9、意以下几点:1.全局变量不是由用户的程序定义的,它们是定义在服务器级的。2.用户只能使用预先定义的全局变量3.全局变量,必须以开头4.局部变量的名称不能与全局变量的名称相同。,全局变量,常用的全局变量有:error:error 返回最后执行的 T-SQL 语句的错误代码(integer)(注:0表示正常;)rowcount:返回受上一语句影响的行数,除了declare语句外,其他任何语句都可以改变其值。,例:了解error和rowcount的用法update customers set c_gender=nullwhere c_id=c0001if error=515print 错误:违反非空
10、约束if rowcount=0print 警告:没有数据被更新,例:在teaching数据库,使用变量查找成绩大于70的学生学号、姓名、课程名、成绩。并使用全局变量查看是否正确执行。,declare fs decimal(3,1)Set fs=70select sno,sname,cname,markFrom student1 join course1 on o=oWhere markfsprint error,练习:使用WebShop数据库,1.声明变量birthday存储出生日期,age存储年龄;为所声明的birthday变量赋值为“1999-4-14”(使用SET语句);将custome
11、rs表中的会员的最大年龄赋值给变量age(使用select语句);输出birthday、age的值。,答案:,1.declare birthday datetime,age int set birthday=1999-4-14 use webshop select age=max(year(getdate()-year(c_birth)from customers print-变量的输出结果-printbirthday的值为:print birthday print 最大年龄为:print age,运算符,1.常用运算符P1822.运算符优先级P184,程序控制语句,程序块语句begin.en
12、d语句,BEGINEND用来设置一个程序块,该程序块可以被视为一个单元执行。BEGINEND经常在条件语句中使用,如IFELSE语句。如果当IF或ELSE子句为真时,想让程序执行其后的多条语句,这时就要把这多条语句用BEGINEND括起来使之成为一个语句块。在BEGINEND语句中可以嵌套另外的BEGIN END语句来定义另一程序块。,语法格式如下:Begin 代码 End,判断语句if else语句,IFELSE语句用来判断当某一条件成立时执行某段程序,条件不成立时执行另一段程序。如果不使用程序块,IF或ELSE只能执行一条命令。IFELSE可以嵌套使用,最多可嵌套32级。,语法格式如下:i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 编程 基础 函数
链接地址:https://www.31ppt.com/p-6521729.html