版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,SQL SERVER,主讲人:孟宪颖,SQL SERVER,2,第13讲 T-SQL编程,13.1 Transact-SQL简介 13.2 T-SQL中的批处理 13.3 T-SQL中的注释 13.4 T-SQL数据类型及转换 13.5 T-SQL运算符 13.6 T-SQL中的常量和变量 13.7 T-SQL的流程控制 13.8 T-SQL中常用函数,3,13.1 Transact-SQL简介,结构化查询语言(SQL)是由美国国家标准协会(American National Standards Institute,ANSI)和国际标准化组织(International Standards
2、 Organization,ISO)定义的标准,而T-SQL是Microsoft公司对此标准的一个实现。 T-SQL是在SQL上发展而来的, T-SQL在SQL的基础上添加了流程控制,是SQL语言的扩展。因此,SQL是几乎所有的关系型数据库都支持的语言,而T-SQL是Microsoft SQL server支持的语言。,4,13.1 Transact-SQL简介,在Microsoft SQL server 2005系统中,T-SQL可以创建、维护、保护数据库对象,并且可以操作对象中的数据,所以Transact-SQL语言是一种完整的语言。根据T-SQL语言的执行功能特点,可以将T-SQL语言分
3、为三种类型: 数据定义语言 数据操纵语言 数据控制语言,5,13.1 Transact-SQL简介,数据定义语言(Data Definition Language,DDL)是T-SQL中最基本的语言类型,它用于创建数据库和各种数据库对象。创建了数据库对象后,才可能为其他语言的操作提供所要使用的对象。 数据操纵语言( Data Manipulation Language,DML)是用来操纵数据库中的数据的语句。当使用数据定义语言创建了数据库及表后,使用数据操纵语言可以实现在表中查询、插入、更新、删除数据等操作。 数据控制语言( Data Control Language,DCL)是用来确保数据库
4、安全的一系列语句,6,13.2 T-SQL中的批处理,在SQL Server2005中,可以一次执行多个T-SQL语句,这些多个T-SQL语句称为“批”。 SQL Server2005会将一批T-SQL语句当成一个执行单元,将其编译后一次执行,而不是将一个个T-SQL语句编译后再一个个执行。 在SQL Server2005中同样允许一次使用多个批,不同的批之间用“GO”来分隔。查询编辑器会自动根据GO指令来将T-SQL语句分为多个批来编译执行。,7,13.2 T-SQL中的批处理,注意: 1、go并不是T-SQL语句,只有查询编辑器才能识别 并处理,编写其他应用程序就不能使用go指令。 2、由
5、于批与批之间是独立的,所以,当其中一个批出现错误时,不会影响其他批的运行。,8,13.3 T-SQL中的注释,在T-SQL程序里加入注释语句,可以增加程序的可读性。SQL Server不会对注释的内容进行编辑和执行,在T-SQL中支持两种注释方式。 1、-注释 -注释的有效范围只能到该行结束的地方,也就是说,从开始,到本行结束为止,都可以是注释的内容,如果有多行注释内容的话,每一行的最前面都必须加上-。 2、/*/注释 当要进行比较长的注释时,可以使用/*/注释, /*/可以对多行语句进行注释,其有效范围是从“/*”开始,到“*/”结束,中间可以跨越多行。,9,13.4 T-SQL数据类型及转
6、换,在SQL Server中,无论是数据表的字段、常量、变量、表达式还是参数,都具有一个相对应的数据类型。数据类型是一种属性,用于指定对象可保存的数据的类型。 1、使用CAST转换数据类型 当要对不同类型的数据进行运算时,就必须将其转换成相同的数据类型才能进行运算。在SQL Server里提供了两个函数可以进行数据类型的转换,其中一个就是CAST。,10,13.4 T-SQL数据类型及转换,语法格式如下: CAST(expression AS data_type(length)) 其中expression为任何有效的表达式, data_type为要转换的数据类型, length为数据类型的长度
7、,一般只有在nchar、nvarchar、char、varchar、binary和varbinary这几种数据类型才需要使用,是可选参数。,11,13.4 T-SQL数据类型及转换,例:查看northwind数据库product表中产品及单价,并在一列中显示出来 select productname+的单价为:+CAST(unitprice as varchar(10)+元 as 产品介绍 from products 例:查看northwind数据库orders表中订单号和订单时间,并在一列中显示出来 select CAST(orderid as varchar(10)+的时间为:+CAST(
8、orderdate as varchar(20) as 订单时间 from orders,12,13.4 T-SQL数据类型及转换,2、使用CONVERT转换数据类型 CONVERT函数与CAST函数类似,作用也是转换数据类型,其语法格式如下: CONVERT ( data_type(length) ,expression,style) 其中data_type为要转换的数据类型, length为数据类型的长度, expression为任何有效的表达式, style是样式,一般用于将datetime或smalldatetime数据转换为字符数据(nchar、nvarchar、char、varch
9、ar数据类型)的日期格式的样式;或者用于将float、real、money或smallmoney数据转换为字符数据的字符串格式。如果style为NULL,则返回的结果也为NULL。,13,13.4 T-SQL数据类型及转换,例:查看northwind数据库orders表中订单号、 订购日期、 到货日期、 发货日期。 select orderid as 订单号, convert(varchar(20),orderdate,1)as 订购日期, convert(varchar(20),requireddate,102)as 到货日期, convert(varchar(20),shippeddate
10、,103)as 发货日期 from orders 例:查看northwind数据库products表中单价,14,13.4 T-SQL数据类型及转换,隐式数据类型转换 在进行不同类型的数据运算时,不一定都必须要使用CAST或CONVERT来进行数据类型转换,在SQL Server里,系统会自动将一些数据类型进行转换,这种转换称为“隐式转换”。而用CAST或CONVERT转换数据类型称为“显式转换”。,15,13.4 T-SQL数据类型及转换,例:查看northwind数据库product表中产品库存量所值的资金 select productname,unitprice*unitsinstock
11、 as jiyazijin from products 例:查看northwind数据库orders表中每个订单的总金额 select orderid,sum(unitprice*quantity) as jine from order details group by orderid,16,13.5 T-SQL运算符,算术运算符 逻辑运算符 赋值运算符 字符串连接运算符 位运算符 一元运算符 比较运算符,17,13.6 T-SQL中的常量和变量,1、常量 常量,也称为文字值或标量值,是一个代表特定值的符号,是一个不变的值。常量的格式取决于它所表示的值的数据类型。 字符串常量 a,Im bac
12、k, Unicode常量 N a,N 二进制常量 0 x12A,0 x Bit常量 1,0 Datetime常量 August 3,2006,2006-8-3,06/08/06 Integer常量,decimal常量,float和real常量,money常量,18,13.6 T-SQL中的常量和变量,2、变量 T-SQL中的变量可以分为全局变量和局部变量两种,全局变量是以开头命名的变量,局部变量是以开头命名的变量。 全局变量是SQL SERVER 系统提供并赋值的变量。用户不能建立及修改全局变量。全局变量是一组特殊的函数,它们的名称是以开始,且不需要任何参数。SQL SERVER提供33个全局
13、变量。,19,13.6 T-SQL中的常量和变量,ERROR返回最后执行的一条T-SQL语句的错误代码 Identity返回最后插入的标识值 ROWCOUNT返回受到上一语句影响的行数 VERSION返回当前的SQL Server安装的版本信息 例:查看版本信息 print version 例:查看select后的记录集里的记录数 select * from employees print 一共查询了+CAST(rowcount as varchar(5)+条记录,20,13.6 T-SQL中的常量和变量,局部变量:指在批处理或脚本中用来保存数据值的对象,局部变量名总是以符号开始,必须符合标识
14、符命名规则。在使用一个局部变量前,必须使用DECLARE语句来声明这个局部变量,指定其变量名和数据类型, 其语法格式为:局部变量声明 DECLARE 局部变量名 数据类型,n,21,13.6 T-SQL中的常量和变量,局部变量赋值 SET 局部变量名=表达式 也可以使用select语句 select 局部变量名=表达式,n 局部变量的作用域 局部变量的作用域从声明它们的地方开始到声明它们的批处理或存储过程的结尾。,22,13.6 T-SQL中的常量和变量,注意: 声明的变量名,其第一个字符必须是 必须指定变量的数据类型及长度 默认情况下,系统将声明后的变量设置为NULL,23,13.7 T-S
15、QL的流程控制,1)BEGINEND语句块 用于将多个T-SQL语句组合在一个语句块中,其语法格式为: BEGIN 语句1 语句n END 相当于一个;,24,13.7 T-SQL的流程控制,例:查看northwind数据库product表中产品名为Chang的单价是否低于20元,如果低于20元的话,查看其订购量,25,13.7 T-SQL的流程控制,declare price money declare productid int declare count int select price=unitprice,productid=productid from products where
16、productname=Chang if price20 begin print Chang的单价低于元 select count=sum(order details.quantity) from orders join order details on orders.orderid=order details.orderid where order ductid=productid print 其订购数量为:+CAST(count as varchar(5) end,26,13.7 T-SQL的流程控制,declare price money declare produ
17、ctid int select price=unitprice,productid=productid from products where productname=Chang if price20 select sum(order details.quantity) from orders join order details on orders.orderid=order details.orderid where order ductid=productid,27,13.7 T-SQL的流程控制,2) IFELSE语句 语法格式为: IF条件表达式 语句 ELSE
18、 语句,28,13.7 T-SQL的流程控制,例:查看northwind数据库product表中产品名为Chang的单价是否低于8元,如果低于8元的话,查看其订购量,否则查看其库存量,29,13.7 T-SQL的流程控制,declare price money declare productid int declare count int select price=unitprice,productid=productid from products where productname=Chang if price8 begin print Chang的单价低于元 select count=s
19、um(order details.quantity) from orders join order details on orders.orderid=order details.orderid where order ductid=productid print 其订购数量为:+CAST(count as varchar(5) end else begin print Chang的单价高于元 select count=sum(unitsinstock) from products where productid=productid print 其库存量为:+CAST(count as varchar(5) end,30,13.7 T-SQL的流程控制,3) WHILE语句 语法格式为: WHILE 条件表达式 BEGIN 语句序列1 BREAK 语句序列2 CONTINUE 语句序列3 END,31,13.7 T-SQL的流程控制,例:输出 northwind数据库product表中产品编号为10以内的产品名 declare id int declare productname varchar(40) set id=1 while id10 begin select productname=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙江富浙资产管理有限公司第二期招聘2人备考题库附答案详解(综合卷)
- 2026四川成都市第八人民医院上半年编外招聘28人备考题库附答案详解(轻巧夺冠)
- 2026民革中央所属在京单位招聘应届高校毕业生5人备考题库含答案详解(研优卷)
- 2026江苏徐州市劳动保障代理服务中心有限公司招聘派遣人员6人备考题库及一套完整答案详解
- 2026四川凉山州政务服务和公共资源交易服务中心招聘1人备考题库附答案详解(综合题)
- 2025浙江国检检测技术股份有限公司第四轮招聘笔试及人员笔试历年备考题库附带答案详解
- 2026福建事业单位统考龙岩市武平县招聘13人备考题库附答案详解(满分必刷)
- 2026湖北襄阳高新外国语学校高中部招聘备考题库及答案详解(历年真题)
- 2026江苏常州仲裁委员会办公室招聘4人备考题库含答案详解(b卷)
- 2026年3月广东广州市天河区枫叶幼儿园编外聘用制专任教师招聘1人备考题库含答案详解
- 癫痫预测模型的泛化能力提升策略研究
- 小学统计与概率培训课件
- 2026届陕西省高三二模高考数学模拟试卷试题(含答案详解)
- 2025年保密知识测试试题库及答案
- 知情同意与拒绝治疗
- 【2025年】军事知识竞赛题库及答案
- 血液透析患者的血压管理
- 中国2型糖尿病防治指南(2024年版)解读
- 2025年西藏自治区中考地理试卷(含答案)
- 2025年福建法院书记员面试题(含答案)
- 2026年政治一轮复习备考策略分享
评论
0/150
提交评论