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

下载本文档

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

文档简介

第六章Transact-SQL语言基础,主要内容,6.1Transact-SQL简介6.2Transact-SQL语法规则6.3标识符6.4数据类型6.5常量和变量6.6运算符与表达式6.7函数6.8流程控制语句6.9注释,6.1Transact-SQL简介,SQL语言:StructuredQueryLanguage,(结构化查询语言),是目前使用最为广泛的关系数据库查询语言。70年代:由IBM公司开发出来的。1986:ANSI确认SQL为关系数据库语言的美国标准,1987年被ISO采纳为国际标准,称为SQL-86;,Transact-SQL语言是Microsoft开发的一种SQL语言,简称T-SQL语言。它不仅包含了国际标准的大多数功能,而且还对SQL进行了一系列的扩展,增加了许多新特性,增强了可编程性和灵活性。Transact-SQL语言主要包括:数据定义语言(DataDefinitionLanguage,DDL)数据操纵语言(DataManipulationLanguage,DML)数据控制语言(DataControlLanguage,DCL)系统存储过程(SystemStoredProcedure)一些附加的语言元素,6.2Transact-SQL语法规则,1.语法中的符号约定,2.数据库对象名的表示服务器名.数据库名.所有者名.|数据库名.所有者名.|所有者名.对象名当引用某个特定对象时,如果对象属于当前默认的服务器、数据库或所有者,则可以省略服务器名、数据库名或所有者名,但中间的句点不能省略。,6.3标识符,标识符用于标识服务器、数据库、数据库对象、变量等。标识符有两种类型:常规标识符分隔标识符,常规标识符指符合标识符的格式规则的标识符。长度不超过128个字符。开头字母为a-z或A-Z、#、_或以及来自其它语言的字母字符。后续字符可以是a-z、A-Z、来自其它语言的字母字符、数字、#、$、_、。不允许嵌入空格或其它特殊字符。不允许与保留字同名。,分隔标识符对于不符合格式规则的标识符,当用于Transact-SQL语句时,必须用双引号或方括号括起来对于常规标识符,可以加上双引号或方括号,也可以不加。,6.4数据类型,除了定义表需要指定数据类型外,使用视图、存储过程、变量、函数等都需要用到数据类型。,6.5常量和变量,常量:表示一个特定的数据值。常量的格式取决于它所表示的值的数据类型变量:可以保存特定类型的单个数据值的对象例如:X=5,变量,X,5,常量,6.5.1常量,1、字符串常量用单引号括起来的字符序列ChinaIamastudent当字符串中出现单引号时,可以使用连续的两个单引号来表示Imastudent,6.5.1常量,对于Unicode字符串的格式,需要在前面加一个N标识符,N前缀必须是大写字母。Michl是字符串常量NMichl是Unicode常量,6.5.1常量,2、二进制常量二进制常量使用0 x作为前辍,后面跟随十六进制数字字符串,6.5.1常量,3、datetime常量datetime常量使用单引号括起来的特定格式的字符日期值表示April29,200929April,20092009042904/29/200908:30:2408:24AM,6.5.1常量,4、整型常量由正、负号和数字09组成,正号可以省略5、decimal常量由正、负号、小数点、数字09组成,正号可省略6、money常量以可选小数点和可选货币符号作为前缀的一串数字。可以带正、负号。$542023.14-$5.34,6.5.2变量,SQLServer的变量分为两种:用户自己定义的局部变量和系统提供的全局变量局部变量的作用范围仅限制在程序的内部。常用来保存临时数据。,1、定义局部变量:格式:DECLARE局部变量名数据类型,n说明:局部变量名:必须以开头,符合标识符的命名规则数据类型:系统定义的数据类型;用户定义数据类型。不能是text、ntext或image数据类型。局部变量定义后初始值为NULL。局部变量的作用范围是在其中定义局部变量的批处理、存储过程或语句块。,例6.1定义变量MyCounter为int类型:DECLAREMyCounterint例6.2定义变量LastName为nvarchar(30)类型,定义变量FirstName为nvarchar(20)类型,定义变量State为nchar(2)类型:DECLARELastNamenvarchar(30),FirstNamenvarchar(20),Statenchar(2),2、局部变量的赋值使用Set语句SET局部变量名=表达式使用Select语句SELECT局部变量名=表达式,n,6.6运算符和表达式,SQLServer运算符有以下几类:算术运算符字符串串联运算符赋值运算符比较运算符逻辑运算符位运算符一元运算符,6.7函数,函数是一个Transact-SQL语句的集合,每个函数用于完成某种特定的功能,可以在其他的Transact-SQL语句中直接使用(调用)。SQLServer支持两种类型的函数内置函数用户自定义函数,调用函数的格式:函数名(参数表)说明:参数:零多个。当有多个参数时,各参数之间要用逗号隔开。圆括号不能省略,即使没有参数也是如此。调用位置:出现在查询语句中,也可用于表达式中。,转换函数,一般情况下,SQLServer会自动处理某些数据类型的转换。例如,如果比较smallint和int表达式、或不同长度的char表达式,SQLServer可以将它们自动转换成相同的类型,这种转换称为隐性转换。无法由SQLServer自动转换的或者是SQLServer自动转换的结果不符合预期结果的,就需要使用转换函数做显式转换。SQLServer的提供了两个转换函数:CAST和CONVERT。,1.CAST函数将某种数据类型的表达式显式转换为另一种数据类型。格式:CAST(表达式AS数据类型)2.CONVERT函数将某种数据类型的表达式显式转换为另一种数据类型,在将日期时间类型的数据转换为字符类型的数据时,可以指定转换后的字符样式。格式:CONVERT(数据类型(长度),表达式,样式),在pubs数据库中,将截止当前销售额的第一位数字为3的书籍信息显示出来select*fromtitleswherecast(ytd_salesaschar(20)like3%,6.8流程控制语句,流程控制语句用于控制Transact-SQL语句、语句块和存储过程的执行流程。,6.8.1BEGINEND语句,作用:将多个Transact-SQL语句定义成一个语句块。语句块可以在程序中视为一个单元处理。语法:BEGINsql语句|语句块END,6.8.2IFELSE语句,IFELSE语句的语法如下:IF布尔表达式sql语句1|语句块1ELSEsql语句2|语句块2,例6.3查看0001号课程是否有人考试,将结果打印ifexists(select*fromscwherecno=0001)print有人考试elseprint无人考试,例6.4在客户端打印出今天是星期几declareweekintsetweek=datepart(weekday,getdate()ifweek=1print今天是星期一ifweek=2print今天是星期二ifweek=3print今天是星期三,6.8.3CASE语句,CASE函数可以计算多个条件式,并返回其中一个符合条件的结果表达式。按照使用形式的不同,可以分为简单CASE函数和CASE搜索函数,1.简单CASE函数CASE输入表达式WHENwhen_表达式THEN结果表达式.nELSE结果表达式END,declareweekint,printoutnvarchar(20)setweek=datepart(weekday,getdate()setprintout=caseweekwhen1then今天是星期一when2then今天是星期二when3then今天是星期三endprintprintout,2.CASE搜索函数CASEWHEN布尔表达式THEN结果表达式.nELSE结果表达式END,declareweekint,printoutnvarchar(20)setweek=datepart(weekday,getdate()setprintout=casewhenweek=1then今天是星期一whenweek=2then今天是星期二whenweek=3then今天是星期三endprintprintout,例6.5输出各个学生的信息,细化具体系名称select*,系别=caseDeptwhenCTThen计算机whenECTthen传媒技术whenTCthen理工whenMAthen数学endfromstudent,例6.6将SC表中的学生成绩按照优良等级划分,6.8.4WHILE语句,功能:从WHILE语句开始,计算布尔表达式的值,当布尔表达式的值为TRUE时,执行循环体,然后返回WHILE语句,再计算布尔表达式的值,如果仍为TRUE,则再执

温馨提示

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

评论

0/150

提交评论