第5章++t-sql语言-1

上传人:今*** 文档编号:107030375 上传时间:2019-10-17 格式:PPT 页数:102 大小:2.03MB
返回 下载 相关 举报
第5章++t-sql语言-1_第1页
第1页 / 共102页
第5章++t-sql语言-1_第2页
第2页 / 共102页
第5章++t-sql语言-1_第3页
第3页 / 共102页
第5章++t-sql语言-1_第4页
第4页 / 共102页
第5章++t-sql语言-1_第5页
第5页 / 共102页
点击查看更多>>
资源描述

《第5章++t-sql语言-1》由会员分享,可在线阅读,更多相关《第5章++t-sql语言-1(102页珍藏版)》请在金锄头文库上搜索。

1、第5章 T-SQL语言,5.1 SQL语言与T-SQL语言,5.2 常量、变量与数据类型,5.3 运算符与表达式,5.4 流程控制语句,5.5 系统内置函数,5.6 用户定义函数,5.1 SQL语言与T-SQL语言,1什么是SQL语言 SQL语言的全名是结构化查询语言(Structured Query Language),是用于数据库中的标准数据查询语言,IBM公司最早使用该语言在其开发的数据库系统中。1986年10月,美国ANSI对 SQL进行规范后,以此作为关系数据库管理系统的标准语言。 作为关系数据库的标准语言,它已被众多商用数据库管理系统产品所采用,不过,不同的数据库管理系统在其实践过

2、程中都对SQL规范做了某些改变和扩充。所以,实际上,不同数据库管理系统之间的SQL语言不能完全通用。例如,微软公司的MS SQL-Server支持的是T-SQL,而甲骨文公司的Oracle 数据库所使用的SQL语言则是PL-SQL。 2什么是T-SQL语言 T-SQL是SQL语言的一种版本,且只能在微软MS SQL-Server以及Sybase Adaptive Server系列数据库上使用。 T-SQL是ANSI SQL的扩展加强版语言,除了提供标准的SQL命令之外,T-SQL还对SQL做了许多补充,提供了类似C、BASIC和Pascal的基本功能,如变量说明、流控制语言、功能函数等。,5.

3、1 SQL语言与T-SQL语言,3T-SQL语言的构成 在SQL Server数据库中,T-SQL语言由以下几部分组成。 (1)数据定义语言(DDL)。DDL用于执行数据库的任务,对数据库以及数据库中的各种对象进行创建、删除、修改等操作。如前所述,数据库对象主要包括表、默认约束、规则、视图、触发器、存储过程。DDL包括的主要语句及功能如表5.1所示。,表5.1 DDL主要语句及功能,5.1 SQL语言与T-SQL语言,DDL各语句的语法、使用方法及举例请参考相关章节。 (2)数据操纵语言(DML)。DML用于操纵数据库中的各种对象,检索和修改数据。DML包括的主要语句及功能如表5.2所示。,表

4、5.2 DML主要语句及功能,5.1 SQL语言与T-SQL语言,DML各语句的语法、使用方法及举例请参考相关章节。 (3)数据控制语言(DCL)。DCL用于安全管理,确定哪些用户可以查看或修改数据库中的数据。DCL包括的主要语句及功能如表5.3所示。,表5.3 DCL主要语句及功能,DCL各语句的语法、使用方法及举例请参考相关章节。 (4)T-SQL增加的语言元素。这部分不是ANSI SQL所包含的内容,而是微软为了用户编程的方便而增加的语言元素。这些语言元素包括变量、运算符、流程控制语句、函数等。这些T-SQL语句都可以在查询分析器中交互执行。本章将介绍这部分增加的语言元素。,5.2 常量

5、、变量与数据类型,5.2.1 常量 根据常量值的不同类型,常量分为字符串常量、整型常量、实型常量、日期时间常量、货币常量、唯一标识常量。各类常量举例说明如下。 1字符串常量 字符串常量分为ASCII字符串常量和Unicode字符串常量。 (1)ASCII字符串常量。ASCII字符串常量是用单引号括起来,由ASCII字符构成的符号串。 ASCII字符串常量举例如下: China How do you! OBbaar /*如果单引号中的字符串包含引号,可以使用两个单引号来表示嵌入的单引号。*/,5.2.1 常量,(2)Unicode 字符串常量。Unicode 字符串常量与ASCII字符串常量相似

6、,但它前面有一个N标识符(N代表 SQL-92标准中的国际语言National Language),N前缀必须为大写字母。 Unicode字符串常量举例如下: NChina NHow do you! Unicode 数据中的每个字符用两个字节存储,而每个ASCII字符用一个字节存储。,5.2.1 常量,2整型常量 按照不同表示方式,整型常量又分为二进制整型常量、十六进制整型常量和十进制整型常量。 十六进制整型常量的表示:前辍 0x 后跟十六进制数字串。 十六进制常量举例: 0xEBF 0x69048AEFDD010E 0x /*空十六进制常量*/ 二进制整型常量的表示:即数字 0 或1,并且不

7、使用引号。如果使用一个大于 1 的数字,它将被转换为1。 十进制整型常量即不带小数点的十进制数,例如, 1894 2 +145345234 -2147483648,5.2.1 常量,3实型常量 实型常量有定点表示和浮点表示两种方式,举例如下。 定点表示: 1894.1204 2.0 +145345234.2234 -2147483648.10 浮点表示: 101.5E5 0.5E-2 +123E-3 -12E5,5.2.1 常量,4日期时间常量 日期时间常量:用单引号将表示日期时间的字符串括起来构成。SQL Server可以识别如下格式的日期和时间。 字母日期格式,如April 20, 200

8、0; 数字日期格式,如4/15/1998,1998-04-15; 未分隔的字符串格式,如20001207; 以下是时间常量的例子: 14:30:24 04:24:PM 以下是日期时间常量的例子: April 20, 2000 14:30:24,5.2.1 常量,5money常量 money常量是以“$”作为前缀的一个整型或实型常量数据。下面是money常量的例子: $12 $542023 -$45.56 +$423456.99 6uniqueidentifier常量 uniqueidentifier 常量是用于表示全局唯一标识符(GUID)值的字符串。可以使用字符串或十六进制字符串格式指定。例

9、如, 6F9619FF-8A86-D011-B42D-00004FC964FF 0xff19966f868b11d0b42d00c04fc964ff,5.2.2 数据类型,1系统数据类型 系统数据类型又称为基本数据类型。在第3章已详细地介绍了系统数据类型,此处不再赘述。 2用户自定义数据类型 用户自定义数据类型可看做系统数据类型的别名。 在多表操作的情况下,当多个表中的列要存储相同类型的数据时,往往要确保这些列具有完全相同的数据类型、长度和为空性(数据类型是否允许空值)。用户自定义数据类型并不是真正的数据类型,它只是提供了一种提高数据库内部元素和基本数据类型之间一致性的机制。,5.2.2 数据

10、类型,用户自定义数据类型student_num后,可以重新设计学生成绩管理数据库表XSB、CJB结构中的学号字段,如表5.4、表5.5和表5.6所示。,表5.4 自定义类型student_num,表5.5 表XSB中学号字段的重新设计 表5.6 表CJB中学号字段的重新设计,5.2.2 数据类型,通过上例可知:要使用用户自定义类型,首先应定义该类型,然后用这种类型来定义字段或变量。在创建用户自定义数据类型时首先应考虑如下三个属性: 数据类型名称; 新数据类型所依据的系统数据类型(又称为基类型); 为空性。 如果为空性未明确定义,系统将依据数据库或连接的ANSI Null 默认设置进行指派。 创

11、建用户自定义数据类型的方法如下。 (1)使用对象资源管理器定义。步骤如下。 第1步:启动“SQL Server Management Studio”,在“对象资源管理器”中展开“数据库PXSCJ可编程性”,右击“类型”,选择“新建”选项,再选择“新建用户定义数据类型”,弹出“新建用户定义数据类型”窗口。,5.2.2 数据类型,第2步:在“名称”文本框中输入自定义的数据类型名称,如student_num。在“数据类型”下拉框中选择自定义数据类型所基于的系统数据类型,如char。在“长度”栏中填写要定义的数据类型的长度,如6。其他选项使用默认值,如图5.1所示,单击“确定”按钮即可完成创建。,图5

12、.1 “新建用户定义数据类型属性”窗口,5.2.2 数据类型,(2)使用命令定义。在SQL Server 2008中,使用CREATE TYPE语句来实现用户数据类型的定义。语法格式: CREATE TYPE schema_name. type_name FROM base_type ( precision , scale ) NULL | NOT NULL ; 根据上述语法,定义描述学号字段的数据类型的语句如下: CREATE TYPE student_num FROM char(6) NOT NULL,5.2.2 数据类型,(3)删除用户自定义数据类型。在SSMS中删除用户自定义数据类型的

13、主要步骤如下: 在对象资源管理器中展开数据库“PXSCJ可编程性类型”,在“用户定义数据类型”中选择类型“dbo.student_num”,右击鼠标,在弹出的快捷菜单中选择“删除”菜单项,打开“删除对象”窗口后单击“确定”按钮即可(实际不做操作)。 (4)使用命令删除用户自定义数据类型。使用命令方式删除自定义数据类型可以使用DROP TYPE语句。语法格式: DROP TYPE schema_name. type_name ; 例如,删除前面定义的student_num类型的语句为 DROP TYPE student_num,5.2.2 数据类型,(5)利用用户自定义数据类型定义字段。 在定义

14、类型后,接着应考虑定义这种类型的字段,同样可以利用对象资源管理器和T-SQL命令两种方式实现。读者可以参照第2章进行定义,不同点只是数据类型为用户自定义类型,而不是系统类型。 例如,在对象资源管理器中对于XSB表学号字段的定义如图5.2所示。,图5.2 使用用户自定义数据类型定义XSB表,5.2.2 数据类型,利用命令方式定义XSB表结构: CREATE TABLE XSB ( 学号 student_num NOT NULL PRIMARY KEY, /*将学号定义为student_num类型*/ 姓名 char(8) NOT NULL, 性别 bit NULL DEFAULT 1, 出生时间

15、 datetime NULL, 专业 char(12) NULL, 总学分 int NULL, 备注 varchar(500) NULL ),5.2.2 数据类型,3用户自定义表数据类型 SQL Server 2008还提供了一种新的用户自定义数据类型,称为用户自定义表数据类型(User-defined Table Types)。这种数据类型也由用户自行定义,可以作为参数提供给语句、存储过程或者函数。创建自定义表数据类型也使用CREATE TYPE语句,语法格式如下: CREATE TYPE schema_name. type_name AS TABLE ( ,.n ) ; 【例5.1】 创建

16、用户自定义表数据类型,包含CJB表中的所有列。 CREATE TYPE CJB_tabletype AS TABLE ( 学号 char(6) NOT NULL, 课程号 char(3) NOT NULL, 成绩 int NOT NULL, PRIMARY KEY(学号, 课程号) ),5.2.3 变量,1变量 变量名必须是一个合法的标识符。 (1)标识符。在SQL Server中标识符分为两类。 常规标识符:以ASCII字母、Unicode字母、下划线(_)、或#开头,后续可跟一个或若干个ASCII字符、Unicode字符、下划线(_)、美元符号($)、或#,但不能全为下划线(_)、或#。 注意:常规标识符不能是T-SQL的保留字。常规标识符中不允许嵌入空格或其他特殊字符。 分隔标识符:包含在双引号(“)或者方括号( )内的常规标识符或不符合常规标识符规

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号