T-SQL语言基础.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《T-SQL语言基础.ppt》由用户(hwpkd79526)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL 语言 基础
- 资源描述:
-
1、2023年5月5日第1页第3章 T-SQL 语言基础教学目标教学重点教学过程2023年5月5日第2页教学目标教学目标l了解了解T-SQL的发展过程和分类的发展过程和分类l了解用户定义的数据类型创建、修改、删了解用户定义的数据类型创建、修改、删除和调用除和调用l掌握掌握T-SQL的流程控制语句的语法和使用的流程控制语句的语法和使用方法方法l掌握掌握SQL-Server的系统函数的分类,及常的系统函数的分类,及常用函数的用法用函数的用法l掌握用户自定义函数的方法掌握用户自定义函数的方法2023年5月5日第3页教学重点教学重点l掌握掌握T-SQL的流程控制语句的语法和使用的流程控制语句的语法和使用方
2、法方法l掌握掌握T-SQL的流程控制语句的使用的流程控制语句的使用,系统函系统函数的分类及常用函数的用法数的分类及常用函数的用法l掌握用户自定义函数的方法掌握用户自定义函数的方法2023年5月5日第4页教学过程教学过程lT-SQL语言概述l数据类型、常量和变量数据类型、常量和变量 l运算符和表达式运算符和表达式 l流程控制语句流程控制语句 l 函数函数 2023年5月5日第5页3.1 T-SQL语言概述3.1.1 T-SQL语言发展过程和分类lSQL(Structure Query Language)中文译为)中文译为“结构化结构化查询语言查询语言”,l最初在最初在1974年由年由Boyce和
3、和Chambedin提出,称为提出,称为“SEQUEL”,是是Structure English QUEry Language的的缩写。缩写。l1976年,年,San Jose Reserch Laboratory在研制关系型在研制关系型数据库管理系统数据库管理系统System R时,对其进行修改,并称为时,对其进行修改,并称为“SEQUEL2”即当前使用的即当前使用的SQL语言。语言。l1982年年ANSI(American Nation Standards Instiute,美美国国家标准协会)确认国国家标准协会)确认SQL为数据库系统的工业标准,即为数据库系统的工业标准,即SQL-86,
4、l此后此后SQL的标准几经修改和完善。目前最新的的标准几经修改和完善。目前最新的SQL标准是标准是2003年制定的年制定的ISO/IEC 9075:2003,即,即SQL:2003(SQL4)。2023年5月5日第6页l目前,不同的数据库产品厂商在各自目前,不同的数据库产品厂商在各自的数据库系统中都支持的数据库系统中都支持SQL语言,但语言,但又在此标准基础上针对各自的产品对又在此标准基础上针对各自的产品对SQL进行了不同的修改和扩充。进行了不同的修改和扩充。l例如例如Oracle的的P/L SQL、Sybase的的SQLAnywhere等。而等。而T-SQL则是则是Microsoft针对其自
5、身的数据库产品针对其自身的数据库产品SQL Server设计开发的并遵循设计开发的并遵循SQL标标准的结构化查询语言准的结构化查询语言.2023年5月5日第7页T-SQL语言要素语言要素 数据定义语言(数据定义语言(DDL,Data Definition Language):):基本关系表、视图、索引和完整性约束的定义、修改和删基本关系表、视图、索引和完整性约束的定义、修改和删除。除。数据操纵语言(数据操纵语言(DML,Data Manipularion Language):):是指对已创建的数据库对象中的数据表数据的添加、修改是指对已创建的数据库对象中的数据表数据的添加、修改和删除。和删除。
6、数据控制语言(数据控制语言(DCL,Data Control Language):用来):用来设置或者更改数据库用户或者角色权限。设置或者更改数据库用户或者角色权限。系统存储过程(系统存储过程(System Stored Procedure):指系统):指系统中自带的程序。中自带的程序。一些附加的语言元素。这部分是一些附加的语言元素。这部分是Microsoft为了用户编程为了用户编程的方便而增加的语言要素。的方便而增加的语言要素。2023年5月5日第8页3.1.2 T-SQL语法约定1.语法书写约定UPPERCASE(大写)(大写)Transact-SQL 关键字。关键字。|(竖线)分隔括号或
7、大括号中的语法项。只能选择其中一项(竖线)分隔括号或大括号中的语法项。只能选择其中一项(方括号)可选语法项。不要键入方括号。(方括号)可选语法项。不要键入方括号。(大括号)(大括号)必选语法项。不要键入大括号。必选语法项。不要键入大括号。,.n指示前面的项可以重复指示前面的项可以重复 n 次。每一项由逗号分隔。次。每一项由逗号分隔。.n指示前面的项可以重复指示前面的项可以重复 n 次。每一项由空格分隔。次。每一项由空格分隔。2023年5月5日第9页;可选的可选的 Transact-SQL 语句终止符。不要语句终止符。不要键入方括号。键入方括号。:=语法块的名称。语法块的名称。此约定用于对可在语
8、句中的多个位置使用此约定用于对可在语句中的多个位置使用的过长语法段或语法单元进行分组和标记。的过长语法段或语法单元进行分组和标记。可使用的语法块的每个位置由括在尖括号可使用的语法块的每个位置由括在尖括号内的标签指示:内的标签指示:。2023年5月5日第10页2.多部分名称除非另外指定,否则,所有对数据库对象名的 Transact-SQL 引用可以是由四部分组成的名称,格式如下:server_name.database_name.schema_name.|database_name.schema_name.|schema_name.object_name。2023年5月5日第11页lserver
9、_name:指定链接的服务器名称或远程服务器名称。ldatabase_name:如果对象驻留在 SQL Server 的本地实例中,则指定 SQL Server 数据库的名称。如果对象在链接服务器中,则 database_name 将指定 OLE DB 目录。lschema_name:如果对象在 SQL Server 数据库中,则指定包含对象的架构的名称。如果对象在链接服务器中,则 schema_name 将指定 OLE DB 架构名称。lobject_name:对象的名称。引用某个特定对象时,不必总是指定服务器、数据库和架构供 SQL Server 2005 数据库引擎标识该对象。但是,如果
10、找不到对象,就会返回错误消息2023年5月5日第12页lOLE DB(Object Link and Embedding Database,对象,对象连接与嵌套数据库)是访问数据库的另一个统一的接口标连接与嵌套数据库)是访问数据库的另一个统一的接口标准,它建立在准,它建立在ODBC基础之上,不仅能够提供传统的数据基础之上,不仅能够提供传统的数据库访问,并且能够访问关系型数据库和非关系型数据库。库访问,并且能够访问关系型数据库和非关系型数据库。OLE DB其本质就是一个封装数据库访问的一系列其本质就是一个封装数据库访问的一系列COM接接口,使用口,使用COM接口不仅能够减少应用程序和数据库之间的
11、接口不仅能够减少应用程序和数据库之间的通信和交互,也能够极大的提升数据库的性能,让数据库通信和交互,也能够极大的提升数据库的性能,让数据库的访问和操作更加便捷。的访问和操作更加便捷。lODBC(Open Database Connection,开放式数据互连),开放式数据互连)是访问数据库的一个统一接口标准,它允许开发人员使用是访问数据库的一个统一接口标准,它允许开发人员使用ODBC API(应用程序接口)来访问多种不同的数据源,并(应用程序接口)来访问多种不同的数据源,并执行数据操作。执行数据操作。2023年5月5日第13页3.2数据类型、常量和变量3.2.1 数据类型1.系统的数据类型 系
12、统的数据类型是系统的数据类型是T-SQL内部支持的固有的数据类型,有关数据类型内部支持的固有的数据类型,有关数据类型的分类和说明在第的分类和说明在第2章已有详细说明。章已有详细说明。2.用户定义数据类型用户定义数据类型 T-SQL支持用户自定义数据类型,用户定义数据是在系统数据类型基支持用户自定义数据类型,用户定义数据是在系统数据类型基础上的扩充或限定。当对多表操作时,这些表中的某些列要存储同样础上的扩充或限定。当对多表操作时,这些表中的某些列要存储同样的数据类型,且对该数据类型有完全相同的基本类型(系统数据类的数据类型,且对该数据类型有完全相同的基本类型(系统数据类型)、长度和是否为空的规则
13、,这时用户可以定义数据类型,并在定型)、长度和是否为空的规则,这时用户可以定义数据类型,并在定义表中的这些列时使用该数据类型。义表中的这些列时使用该数据类型。用户定义数据类型的创建和删除可以采用两种方法。一种是图形化的用户定义数据类型的创建和删除可以采用两种方法。一种是图形化的方法,在方法,在SQL Server Management Studio中实现。另外一种是执行中实现。另外一种是执行命令的方法,即调用系统存储过程实现。命令的方法,即调用系统存储过程实现。2023年5月5日第14页1.图形化的方法创建和删除用户定义数据类型步骤如下(1)启动SQL Server Management St
14、udio,并连接到服务器。(2)在SQL Server Management Studio的对象资源管理器视图中的树型视图中依次展开以下节点:数据库/实例数据库/可编程性/类型/用户定义数据类型,在该项上右击,弹出菜单中选择“新建用户定义数据类型”。(3)单击“新建用户定义数据类型”菜单,打开“新建用户定义数据类型”窗口。在该窗口中填写相关各项。(4)单击“新建用户定义数据类型”窗口的“确定”按钮,回到SQL Server Management Studio可以在对象资源管理器的数型视图中查看到刚刚定义的数据类型。(5)在这种方式下也很容易删除已经存在的用户定义数据类型,所示的数据类型“xue
15、hao”项上点击右键,在弹出菜单中选择删除即可。2023年5月5日第15页2.调用系统的存储过程创建和删除用户定义数据类型l存储过程(存储过程(Stored Procedure)是一组为)是一组为了完成特定功能的了完成特定功能的TSQL语句集,经编译语句集,经编译后存储在后存储在SQL Server服务器端数据库中。服务器端数据库中。l优点:优点:允许用户进行模块化设计,提高了用户程序设计效率。允许用户进行模块化设计,提高了用户程序设计效率。减少网络通信流量。减少网络通信流量。2023年5月5日第16页在在SQL-Server中还可以通过调用系统定义的存储过程实现中还可以通过调用系统定义的存储
16、过程实现用户定义数据类型的创建和删除。创建用户定义数据类型用户定义数据类型的创建和删除。创建用户定义数据类型的创建语法格式如下:的创建语法格式如下:sp_addtype typename=type,phystype=system_data_type ,nulltype=null_type ;说明:说明:type:用户定义的数据类型的名称。该名称在数据库中:用户定义的数据类型的名称。该名称在数据库中必须是唯一的。必须是唯一的。system_data_type:该参数是用户定义的数据类型所基:该参数是用户定义的数据类型所基于的于的SQL Server提供的基本类型,例如提供的基本类型,例如int或
17、者或者char型。型。null_type:该参数指明用户定义的数据类型处理空值的:该参数指明用户定义的数据类型处理空值的方式。该参数有三个取值:方式。该参数有三个取值:null、not null或者或者nonull。其默认值为其默认值为null。2023年5月5日第17页例如,创建一个名为例如,创建一个名为“kechenghao”的新的用户定的新的用户定义数据类型,该类型的基类是义数据类型,该类型的基类是varchar,长度是,长度是6,不可以为不可以为null,在,在SQL Server Management Studio的查询分析器中输入以下程序,执行即可。的查询分析器中输入以下程序,执行
18、即可。USE 实例数据库实例数据库EXEC sp_addtype kechenghao,varchar(6),not nullGO2023年5月5日第18页如果要用命令删除用户定义数据类型,则要调用名如果要用命令删除用户定义数据类型,则要调用名为为sp_droptype的存储过程,该存储过程的语法的存储过程,该存储过程的语法为:为:sp_droptype typename=type其中的其中的type即是用户要删除的数据类型的名称,例即是用户要删除的数据类型的名称,例如要删除刚刚创建的如要删除刚刚创建的“kechenghao”的数据类型,的数据类型,则执行以下语句:则执行以下语句:USE 实例
19、数据库实例数据库EXEC sp_droptype kechenghaoGO2023年5月5日第19页3.应用用户定义数据类型定义字段创建用户自定义数据类型后,可以在创建表的字段时使用用户定义数据类型对某字段进行定义,可以在SQL Server Management Studio环境中使用,也可以调用命令使用。例如在SQL Server Management Studio环境创建表时,在选择字段的数据类型时可以直接选择已创建的用户定义数据类型2023年5月5日第20页也可以用命令形式指定字段使用用户定义数据类型,例如下面的程序段也可以用命令形式指定字段使用用户定义数据类型,例如下面的程序段中,对
20、中,对“学号学号”字段的定义就是采用的用户定义数据类型字段的定义就是采用的用户定义数据类型“xuehao”。USE 实例数据库实例数据库CREATE TABLE 学生表学生表学号学号 xuehao,姓名姓名 nchar(20)NOT NULL,性别性别 char(2)NULL,出生日期出生日期 smalldatetime NULL,入学日期入学日期 smalldatetime NULL,院系名称院系名称 varchar(20)NULL,备注备注 text NULL,GO2023年5月5日第21页3.2.2 常量1.字符串字符串常量代表特定的一串字符,在使用时用单引号括起来。例如:字符串常量代表
21、特定的一串字符,在使用时用单引号括起来。例如:Hello计算机计算机如果字符串中要包含单引号,则使用两个单引号表示,例如:如果字符串中要包含单引号,则使用两个单引号表示,例如:He say:Hello!可以在字符串内包含字母和数字字符(可以在字符串内包含字母和数字字符(az、AZ和和09)以及特殊的字)以及特殊的字符,例如感叹号(!)、符,例如感叹号(!)、at字符(字符()和数据号()和数据号(#)。)。2.Unicode字符串Uicode字符串也属于字符串的一种表达形式,它的格式与普通的字符串字符串也属于字符串的一种表达形式,它的格式与普通的字符串类似,不同的是在使用时前面加上一个类似,不
22、同的是在使用时前面加上一个N标识符(标识符(N必须为大写),必须为大写),例如:例如:NHelloN计算机计算机2023年5月5日第22页3.整型常量根据整型的进制不同,整型又可以分为十进制常量、二进制根据整型的进制不同,整型又可以分为十进制常量、二进制常量和十六进制常量。其中十进制常量以普通的整数表示。常量和十六进制常量。其中十进制常量以普通的整数表示。二进制常量即数字二进制常量即数字0和和1。十六进制常量在使用时加上前缀。十六进制常量在使用时加上前缀0 x。例如:。例如:200 /*十进制数十进制数-2958 /*十进制数十进制数0 /*十进制数,也可以认为是二进制数,二者在数十进制数,也
23、可以认为是二进制数,二者在数值上相等。值上相等。0 x60A2 /*十六进制数,代表十进制十六进制数,代表十进制247380 xE5f /*十六进制数,代表十进制十六进制数,代表十进制3679 2023年5月5日第23页4.实型常量实型常量实型常量是包含有小数点的数字,分为定点表示和浮点表示两种。例如:32.50 /*定点表示的实型常量25.8E4 /*浮点表示的实型常量,其值为25.81043.2E-2 /*浮点表示的实型常量,其值为3.210-2-2E6 /*浮点表示的实型常量,其值为-21065.日期时间常量日期时间常量使用特定格式的日期值字符来表示日期和时间常量。在使用时用单引号引起来
24、。在SQL Server中系统可以识别多种格式的日期时间常量。例如:2007-01-01 /*数字日期格式3/12/1995 /*数字日期格式Febrary 2,2000 /*字母日期格式20050825 /*未分割的字符串日期格式12:00:00 /*时间格式05:30:PM /*时间格式2007-10-10 08:40:30 /*日期时间格式2023年5月5日第24页6.货币常量货币常量货币常量代表货币的多少,通常采用整型或者实型常量加上$前缀构成,例如:$1234.56-$2007.唯一标识常量唯一标识常量唯一标识常量用于表示全局唯一标识符(GUID)的字符串。可以使用字符或者二进制字符
25、串指定。例如:6A526F-88C635-DA94-0035C4100FC0 xfa35998cc44abe3e60028d5daf279ff2023年5月5日第25页3.2.3 变量l变量是指在程序的执行过程中可以改变的变量是指在程序的执行过程中可以改变的量,变量可以保存特定类型的值。变量包量,变量可以保存特定类型的值。变量包括变量名和数据类型两个属性。在括变量名和数据类型两个属性。在SQL Server2005中,变量的作用域大多是局部中,变量的作用域大多是局部的,也就是说,在某个批处理或者存储过的,也就是说,在某个批处理或者存储过程中,变量的作用范围从声明开始,到该程中,变量的作用范围从
展开阅读全文