Transact-SQL语言基础.ppt_第1页
Transact-SQL语言基础.ppt_第2页
Transact-SQL语言基础.ppt_第3页
Transact-SQL语言基础.ppt_第4页
Transact-SQL语言基础.ppt_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第六章 Transact-SQL语言基础,主要内容,6.1 Transact-SQL简介 6.2 Transact-SQL语法规则 6.3 标识符 6.4 数据类型 6.5 常量和变量 6.6 运算符与表达式 6.7 函数 6.8 流程控制语句 6.9 注释,6.1 Transact-SQL简介,SQL语言:Structured Query Language,(结构化查询语言),是目前使用最为广泛的关系数据库查询语言。 70年代: 由IBM公司开发出来的。 1986:ANSI确认SQL为关系数据库语言的美国标准,1987年被ISO采纳为国际标准,称为SQL-86;,Transact-SQL语言

2、是Microsoft开发的一种SQL语言,简称T-SQL语言。它不仅包含了国际标准的大多数功能,而且还对SQL进行了一系列的扩展,增加了许多新特性,增强了可编程性和灵活性。 Transact-SQL语言主要包括: 数据定义语言(Data Definition Language,DDL) 数据操纵语言(Data Manipulation Language,DML) 数据控制语言(Data Control Language,DCL) 系统存储过程(System Stored Procedure) 一些附加的语言元素,6.2 Transact-SQL语法规则,1. 语法中的符号约定,2. 数据库对象

3、名的表示 服务器名.数据库名.所有者名.| 数据库名.所有者名.| 所有者名.对象名 当引用某个特定对象时,如果对象属于当前默认的服务器、数据库或所有者,则可以省略服务器名、数据库名或所有者名,但中间的句点不能省略。,6.3 标识符,标识符用于标识服务器、数据库、数据库对象、变量等。 标识符有两种类型: 常规标识符 分隔标识符,常规标识符 指符合标识符的格式规则的标识符。 长度不超过128个字符。 开头字母为a-z或A-Z、#、_ 或 以及来自其它语言的字母字符。 后续字符可以是a-z、A-Z、来自其它语言的字母字符、数字、#、$、_、。 不允许嵌入空格或其它特殊字符。 不允许与保留字同名。,

4、分隔标识符 对于不符合格式规则的标识符,当用于Transact-SQL语句时,必须用双引号或方括号括起来 对于常规标识符,可以加上双引号或方括号,也可以不加。,6.4 数据类型,除了定义表需要指定数据类型外,使用视图、存储过程、变量、函数等都需要用到数据类型。,6.5 常量和变量,常量:表示一个特定的数据值。常量的格式取决于它所表示的值的数据类型 变量:可以保存特定类型的单个数据值的对象 例如: X=5,变量,X,5,常量,6.5.1 常量,1、字符串常量 用单引号括起来的字符序列 China I am a student 当字符串中出现单引号时,可以使用连续的两个单引号来表示 Im a st

5、udent,6.5.1 常量,对于Unicode字符串的格式,需要在前面加一个N标识符,N前缀必须是大写字母。 Michl是字符串常量 NMichl是Unicode常量,6.5.1 常量,2、二进制常量 二进制常量使用0 x作为前辍,后面跟随十六进制数字字符串,6.5.1 常量,3、datetime常量 datetime常量使用单引号括起来的特定格式的字符日期值表示 April 29, 2009 29 April, 2009 20090429 04/29/2009 08:30:24 08:24 AM,6.5.1 常量,4、整型常量 由正、负号和数字09组成,正号可以省略 5、decimal常量

6、 由正、负号、小数点、数字09组成,正号可省略 6、money常量 以可选小数点和可选货币符号作为前缀的一串数字。可以带正、负号。 $542023.14 -$5.34,6.5.2 变量,SQL Server的变量分为两种:用户自己定义的局部变量和系统提供的全局变量 局部变量的作用范围仅限制在程序的内部。常用来保存临时数据。,1、定义局部变量: 格式: DECLARE 局部变量名 数据类型 ,n 说明: 局部变量名: 必须以开头,符合标识符的命名规则 数据类型: 系统定义的数据类型;用户定义数据类型。不能是text、ntext或image数据类型。 局部变量定义后初始值为NULL。 局部变量的作

7、用范围是在其中定义局部变量的批处理、存储过程或语句块。,例6.1 定义变量MyCounter为int类型: DECLARE MyCounter int 例6.2 定义变量LastName为nvarchar(30)类型,定义变量FirstName为nvarchar(20)类型,定义变量State为nchar(2)类型: DECLARE LastName nvarchar(30), FirstName nvarchar(20), State nchar(2),2、局部变量的赋值 使用Set语句 SET 局部变量名 = 表达式 使用Select语句 SELECT 局部变量名 = 表达式,n,6.6

8、运算符和表达式,SQL Server运算符有以下几类: 算术运算符 字符串串联运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 一元运算符,6.7 函数,函数是一个Transact-SQL语句的集合,每个函数用于完成某种特定的功能,可以在其他的Transact-SQL语句中直接使用(调用)。 SQL Server支持两种类型的函数 内置函数 用户自定义函数,调用函数的格式: 函数名(参数表) 说明: 参数: 零多个。当有多个参数时,各参数之间要用逗号隔开。 圆括号不能省略,即使没有参数也是如此。 调用位置:出现在查询语句中,也可用于表达式中。,转换函数,一般情况下,SQL Server会自

9、动处理某些数据类型的转换。例如,如果比较smallint和int表达式、或不同长度的char表达式,SQL Server可以将它们自动转换成相同的类型,这种转换称为隐性转换。 无法由SQL Server自动转换的或者是SQL Server自动转换的结果不符合预期结果的,就需要使用转换函数做显式转换。SQL Server的提供了两个转换函数:CAST和CONVERT。,1. CAST函数 将某种数据类型的表达式显式转换为另一种数据类型。 格式: CAST(表达式 AS 数据类型) 2. CONVERT函数 将某种数据类型的表达式显式转换为另一种数据类型,在将日期时间类型的数据转换为字符类型的数据

10、时,可以指定转换后的字符样式。 格式: CONVERT(数据类型(长度),表达式,样式),在pubs数据库中,将截止当前销售额的第一位数字为3的书籍信息显示出来 select * from titles where cast(ytd_sales as char(20) like 3%,6.8 流程控制语句,流程控制语句用于控制Transact-SQL语句、语句块和存储过程的执行流程。,6.8.1 BEGIN END语句,作用: 将多个Transact-SQL语句定义成一个语句块。语句块可以在程序中视为一个单元处理。 语法: BEGIN sql语句|语句块 END,6.8.2 IF ELSE语句

11、,IFELSE语句的语法如下: IF 布尔表达式 sql语句1 | 语句块1 ELSE sql语句2 | 语句块2 ,例6.3 查看0001号课程是否有人考试,将结果打印 if exists(select * from sc where cno=0001) print 有人考试 else print 无人考试,例6.4 在客户端打印出今天是星期几 declare week int set week = datepart(weekday,getdate() if week=1 print 今天是星期一 if week=2 print 今天是星期二 if week=3 print 今天是星期三 ,

12、6.8.3 CASE语句,CASE函数可以计算多个条件式,并返回其中一个符合条件的结果表达式。 按照使用形式的不同,可以分为简单CASE函数和CASE搜索函数,1. 简单CASE函数 CASE 输入表达式 WHEN when_表达式 THEN 结果表达式 .n ELSE 结果表达式 END,declare week int,printout nvarchar(20) set week = datepart(weekday,getdate() set printout= case week when 1 then 今天是星期一 when 2 then 今天是星期二 when 3 then 今天是

13、星期三 end print printout,2. CASE搜索函数 CASE WHEN 布尔表达式 THEN 结果表达式 .n ELSE 结果表达式 END,declare week int,printout nvarchar(20) set week = datepart(weekday,getdate() set printout= case when week=1 then 今天是星期一 when week=2 then 今天是星期二 when week=3 then 今天是星期三 end print printout,例6.5 输出各个学生的信息,细化具体系名称 select *, 系别= case Dept when CT Then 计算机 when ECT then 传媒技术 when TC then 理工 when MA then 数学 end from student,例6.6 将SC表中的学生成绩按照优良等级划分,6.8.4 WHILE语句,功能:从WHILE语句开始,计算布尔表达式的值,当布尔表达式的值为TRUE时,执行循环体,然后返回WHILE语句,再计算布尔表达式的值,如果仍为TRUE,则再执行循环体,直

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论