《第15讲T-SQL编程.ppt》由会员分享,可在线阅读,更多相关《第15讲T-SQL编程.ppt(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、SQL SERVER主讲人:孟宪颖主讲人:孟宪颖SQL SERVER1第第第第1515讲讲讲讲 T-SQLT-SQL编程编程编程编程15.1 Transact-SQL简介 15.2 T-SQL中的批处理 15.3 T-SQL中的注释15.4 T-SQL数据类型及转换 15.5 T-SQL运算符15.6 T-SQL中的常量和变量15.7 T-SQL的流程控制15.8 T-SQL中常用函数215.1 Transact-SQL15.1 Transact-SQL15.1 Transact-SQL简介简介简介简介简介简介 结构化查询语言(SQL)是由美国国家标准协会(American National
2、Standards Institute,ANSI)和国际标准化组织(International Standards Organization,ISO)定义的标准,而T-SQL是Microsoft公司对此标准的一个实现。T-SQL是在SQL上发展而来的,T-SQL在SQL的基础上添加了流程控制,是SQL语言的扩展。因此,SQL是几乎所有的关系型数据库都支持的语言,而T-SQL是Microsoft SQL server支持的语言。315.1 Transact-SQL15.1 Transact-SQL15.1 Transact-SQL简介简介简介简介简介简介 在Microsoft SQL serve
3、r 2005系统中,T-SQL可以创建、维护、保护数据库对象,并且可以操作对象中的数据,所以Transact-SQL语言是一种完整的语言。根据T-SQL语言的执行功能特点,可以将T-SQL语言分为三种类型:数据定义语言 数据操纵语言 数据控制语言415.1 Transact-SQL15.1 Transact-SQL15.1 Transact-SQL简介简介简介简介简介简介数据定义语言(Data Definition Language,DDL)是T-SQL中最基本的语言类型,它用于创建数据库和各种数据库对象。创建了数据库对象后,才可能为其他语言的操作提供所要使用的对象。数据操纵语言(Data M
4、anipulation Language,DML)是用来操纵数据库中的数据的语句。当使用数据定义语言创建了数据库及表后,使用数据操纵语言可以实现在表中查询、插入、更新、删除数据等操作。数据控制语言(Data Control Language,DCL)是用来确保数据库安全的一系列语句515.2 T-SQL15.2 T-SQL15.2 T-SQL中的批处理中的批处理中的批处理中的批处理中的批处理中的批处理在SQL Server2005中,可以一次执行多个T-SQL语句,这些多个T-SQL语句称为“批”。SQL Server2005会将一批T-SQL语句当成一个执行单元,将其编译后一次执行,而不是将
5、一个个T-SQL语句编译后再一个个执行。在SQL Server2005中同样允许一次使用多个批,不同的批之间用“GO”来分隔。查询编辑器会自动根据GO指令来将T-SQL语句分为多个批来编译执行。615.2 T-SQL15.2 T-SQL15.2 T-SQL中的批处理中的批处理中的批处理中的批处理中的批处理中的批处理注意:1、go并不是T-SQL语句,只有查询编辑器才能识别 并处理,编写其他应用程序就不能使用go指令。2、由于批与批之间是独立的,所以,当其中一个批出现错误时,不会影响其他批的运行。715.3 T-SQL15.3 T-SQL15.3 T-SQL中的注释中的注释中的注释中的注释中的注
6、释中的注释 在T-SQL程序里加入注释语句,可以增加程序的可读性。SQL Server不会对注释的内容进行编辑和执行,在T-SQL中支持两种注释方式。1、-注释-注释的有效范围只能到该行结束的地方,也就是说,从开始,到本行结束为止,都可以是注释的内容,如果有多行注释内容的话,每一行的最前面都必须加上-。2、/*/注释当要进行比较长的注释时,可以使用/*/注释,/*/可以对多行语句进行注释,其有效范围是从“/*”开始,到“*/”结束,中间可以跨越多行。815.4 T-SQL15.4 T-SQL15.4 T-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换
7、在SQL Server中,无论是数据表的字段、常量、变量、表达式还是参数,都具有一个相对应的数据类型。数据类型是一种属性,用于指定对象可保存的数据的类型。1、使用CAST转换数据类型当要对不同类型的数据进行运算时,就必须将其转换成相同的数据类型才能进行运算。在SQL Server里提供了两个函数可以进行数据类型的转换,其中一个就是CAST。915.4 T-SQL15.4 T-SQL15.4 T-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换语法格式如下:语法格式如下:CAST(expression AS data_type(length))其中exp
8、ression为任何有效的表达式,data_type为要转换的数据类型,length为数据类型的长度,一般只有在nchar、nvarchar、char、varchar、binary和varbinary这几种数据类型才需要使用,是可选参数。1015.4 T-SQL15.4 T-SQL15.4 T-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换例:查看northwind数据库product表中产品及单价,并在一列中显示出来select productname+的单价为:+CAST(unitprice as varchar(10)+元 as 产品介绍fro
9、m products例:查看northwind数据库orders表中订单号和订单时间,并在一列中显示出来select CAST(orderid as varchar(10)+的时间为:+CAST(orderdate as varchar(20)as 订单时间from orders1115.4 T-SQL15.4 T-SQL15.4 T-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换2、使用CONVERT转换数据类型CONVERT函数与CAST函数类似,作用也是转换数据类型,其语法格式如下:CONVERT(data_type(length),expre
10、ssion,style)其中data_type为要转换的数据类型,length为数据类型的长度,expression为任何有效的表达式,style是样式,一般用于将datetime或smalldatetime数据转换为字符数据(nchar、nvarchar、char、varchar数据类型)的日期格式的样式;或者用于将float、real、money或smallmoney数据转换为字符数据的字符串格式。如果style为NULL,则返回的结果也为NULL。1215.4 T-SQL15.4 T-SQL15.4 T-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型
11、及转换例:查看northwind数据库orders表中订单号、订购日期、到货日期、发货日期。select orderid as 订单号,convert(varchar(20),orderdate,1)as 订购日期,convert(varchar(20),requireddate,102)as 到货日期,convert(varchar(20),shippeddate,103)as 发货日期from orders例:查看northwind数据库products表中单价1315.4 T-SQL15.4 T-SQL15.4 T-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及
12、转换数据类型及转换隐式数据类型转换在进行不同类型的数据运算时,不一定都必须要使用CAST或CONVERT来进行数据类型转换,在SQL Server里,系统会自动将一些数据类型进行转换,这种转换称为“隐式转换”。而用CAST或CONVERT转换数据类型称为“显式转换”。1415.4 T-SQL15.4 T-SQL15.4 T-SQL数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换数据类型及转换例:查看northwind数据库product表中产品库存量所值的资金select productname,unitprice*unitsinstock as jiyazijinfro
13、m products例:查看northwind数据库orders表中每个订单的总金额select orderid,sum(unitprice*quantity)as jinefrom order detailsgroup by orderid1515.5 T-SQL15.5 T-SQL15.5 T-SQL运算符运算符运算符运算符运算符运算符算术运算符逻辑运算符赋值运算符字符串连接运算符位运算符一元运算符比较运算符 1615.6 T-SQL15.6 T-SQL15.6 T-SQL中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量1、常量 常量,也称为文字值或标量
14、值,是一个代表特定值的符号,是一个不变的值。常量的格式取决于它所表示的值的数据类型。字符串常量 a,Im back,Unicode常量 N a,N 二进制常量 0 x12A,0 xBit常量 1,0Datetime常量 August 3,2006,2006-8-3,06/08/06Integer常量,decimal常量,float和real常量,money常量1715.6 T-SQL15.6 T-SQL15.6 T-SQL中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量2、变量 T-SQL中的变量可以分为全局变量和局部变量两种,全局变量是以开头命名的变量,局
15、部变量是以开头命名的变量。全局变量是SQL SERVER 系统提供并赋值的变量。用户不能建立及修改全局变量。全局变量是一组特殊的函数,它们的名称是以开始,且不需要任何参数。SQL SERVER提供33个全局变量。1815.6 T-SQL15.6 T-SQL15.6 T-SQL中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量ERROR返回最后执行的一条T-SQL语句的错误代码Identity返回最后插入的标识值ROWCOUNT返回受到上一语句影响的行数VERSION返回当前的SQL Server安装的版本信息例:查看版本信息print version例:查看s
16、elect后的记录集里的记录数select*from employeesprint 一共查询了+CAST(rowcount as varchar(5)+条记录1915.6 T-SQL15.6 T-SQL15.6 T-SQL中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量局部变量:指在批处理或脚本中用来保存数据值的对象,局部变量名总是以符号开始,必须符合标识符命名规则。在使用一个局部变量前,必须使用DECLARE语句来声明这个局部变量,指定其变量名和数据类型,其语法格式为:局部变量声明 DECLARE 局部变量名 数据类型,n2015.6 T-SQL15.6
17、T-SQL15.6 T-SQL中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量局部变量赋值SET 局部变量名=表达式也可以使用select语句select 局部变量名=表达式,n局部变量的作用域局部变量的作用域从声明它们的地方开始到声明它们的批处理或存储过程的结尾。2115.6 T-SQL15.6 T-SQL15.6 T-SQL中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量中的常量和变量注意:声明的变量名,其第一个字符必须是必须指定变量的数据类型及长度默认情况下,系统将声明后的变量设置为NULL2215.7 T-SQL15.7 T-S
18、QL15.7 T-SQL的流程控制的流程控制的流程控制的流程控制的流程控制的流程控制1)BEGINEND语句块 用于将多个T-SQL语句组合在一个语句块中,其语法格式为:BEGIN 语句1 语句n END2315.7 T-SQL15.7 T-SQL15.7 T-SQL的流程控制的流程控制的流程控制的流程控制的流程控制的流程控制2)IFELSE语句 语法格式为:IF条件表达式 语句 ELSE 语句2415.7 T-SQL15.7 T-SQL15.7 T-SQL的流程控制的流程控制的流程控制的流程控制的流程控制的流程控制例:查看northwind数据库product表中产品名为Chang的单价是否
19、低于20元,如果高于20元的话,查看其库存量;如果低于20元的话,查看其订购量2515.7 T-SQL15.7 T-SQL15.7 T-SQL的流程控制的流程控制的流程控制的流程控制的流程控制的流程控制declare danjia moneyselect danjia=unitpricefrom productswhere productname=changif danjia20beginselect unitsinstockfrom productswhere productname=changendelsebeginselect unitsonorderfrom productswhere
20、 productname=changend2615.7 T-SQL15.7 T-SQL15.7 T-SQL的流程控制的流程控制的流程控制的流程控制的流程控制的流程控制3)WHILE语句 语法格式为:WHILE 条件表达式 BEGIN 语句序列1 BREAK 语句序列2 CONTINUE 语句序列3 END2715.7 T-SQL15.7 T-SQL15.7 T-SQL的流程控制的流程控制的流程控制的流程控制的流程控制的流程控制例:输出 northwind数据库products表中产品编号为10以内的产品名declare id intdeclare productname varchar(40)
21、set id=1while id10beginselect productname=productname from productswhere productid=idprint productnameset id=id+1end2815.7 T-SQL15.7 T-SQL15.7 T-SQL的流程控制的流程控制的流程控制的流程控制的流程控制的流程控制4)Return语句 Return语句会终止目前T-SQL语句的执行,从查询或过程中无条件地退出来,并且可以返回一个整数值给调用该代码的程序。与break不同,Return可以在任何时候从过程、批处理或语句块中退出,而不是跳出某个循环或跳到位置
22、。语法格式为:RETURN integer_expression2915.8 T-SQL15.8 T-SQL15.8 T-SQL中常用函数中常用函数中常用函数中常用函数中常用函数中常用函数聚合函数日期和时间函数 year 返回表示指定日期的年份的整数 month day getdate 返回系统当前日期和时间 dateadd 在指定的日期上再加一个时间间隔,并返回新的日期 datediff 返回跨两个指定日期的日期边界数和时间边界数 datename 返回表示指定日期的指定日期部分的字符串 datepart 返回表示指定日期的指定日期部分的整数3015.8 T-SQL15.8 T-SQL15.8 T-SQL中常用函数中常用函数中常用函数中常用函数中常用函数中常用函数数学函数 abs 返回绝对值 acos 返回反余弦字符串函数 len 返回指定字符串表达式的字符数,其中不包含尾随空格 Ltrim 返回删除了前导空格之后的字符表达式 left 返回字符串中从左边开始指定个数的字符 lower 将大写字符数据转换为小写字符数据后返回字符表达式31课件制作:孟宪颖电话:0431-86822024QQ:51200285谢谢!32