第04章Transact-SQL语言基础ppt课件.ppt
《第04章Transact-SQL语言基础ppt课件.ppt》由会员分享,可在线阅读,更多相关《第04章Transact-SQL语言基础ppt课件.ppt(65页珍藏版)》请在三一文库上搜索。
1、第04章 Transact-SQL语言基础,内容提要: Transact-SQL语言是SQL Server 2005在SQL语言的基础上增加了一些语言要素后的扩展语言,其语言要素包括注释、变量、运算符、函数和流程控制语句等。 掌握Transact-SQL语言是进一步学习更多的管理技术和数据库应用开发技术的关键。 本章主要介绍Transact-SQL语言中的常量、变量、函数、表达式等语言成份和控制流语句等。,第04章 Transact-SQL语言基础,4.1 了解Transact-SQL编程语言 4.2 Transact-SQL语法要素 4.3 Transact-SQL运算符 4.4 Trans
2、act-SQL函数 4.5 Transact-SQL表达式 4.6 Transact-SQL控制流语句 4.7小结,4.1 了解Transact-SQL编程语言,4.1.1 Transact-SQL概述 Transact-SQL语言用于处理SQL Server 2005数据库引擎实例的相关操作,主要包括创建和管理数据库对象、插入、检索、修改和删除数据。 Transact-SQL语言不是一种标准的编程语言,只能够提供SQL Server 的数据引擎来分析和运行。,4.1 了解Transact-SQL编程语言,4.1.1 Transact-SQL概述 1Transact-SQL语言的语法约定 表4
3、.1列出了Transact-SQL 参考的语法格式中使用的约定,并进行了说明。,4.1 了解Transact-SQL编程语言,4.1.1 Transact-SQL概述 2Transact-SQL语言中对象的引用方法 SQL Server 2005的所有对数据库对象名的 引用可以是由4部分组成的名称,格式如下: server_name. database_name. schema_name. | database_name.schema_name. | schema_name. object_name 引用某个特定对象时,不必总是指定服务器、数据库和架构供 SQL Server 2005 Dat
4、abase Engine 标识该对象。,4.1 了解Transact-SQL编程语言,4.1.1 Transact-SQL概述 3架构的使用和说明 SQL Server 2005 中的架构是形成单个命名空间的数据库实体的集合。架构是单个用户所拥有的数据库对象的集合,这些对象形成单个命名空间。 数据库对象由架构所拥有,而架构由数据库用户或角色所拥有。当架构所有者离开单位时,会在删除离开的用户之前将该架构的所有权移交给新的用户或角色。 在使用架构的过程中,应该了解以下内容: (1)利用架构可以简化DBO和开发人员的工作。,4.1 了解Transact-SQL编程语言,4.1.1 Transact-
5、SQL概述 3架构的使用和说明 (2)用户架构分离。架构与数据库用户分离对DBO和开发人员而言有下列好处: 多个用户可以通过角色成员身份或 Windows 组成员身份拥有一个架构。简化了删除数据库用户的操作。 删除数据库用户不需要重命名该用户架构所包含的对象。 多个用户可以共享一个默认架构以进行统一名称解析。 开发人员通过共享默认架构可以将共享对象存储在为特定应用程序专门创建的架构中,而不是 DBO 架构中。 可以用更大的粒度管理架构和架构包含的对象的权限。,4.1 了解Transact-SQL编程语言,4.1.1 Transact-SQL概述 3架构的使用和说明 完全限定的对象名称现在包含4
6、部分: server.database.schema.object -即服务器.数据库.架构.数据库对象 (3)默认架构。SQL Server 2005 利用默认架构的概念解析未使用其完全限定名称引用的对象的名称。如果未定义 DEFAULT_SCHEMA,则数据库用户将把 DBO 作为其默认架构。,4.1 了解Transact-SQL编程语言,4.1.2 Transact-SQL语句分类 Transact-SQL语言中的语句根据用途分为4种类型。 (1)数据定义语言(DDL)。数据定义语言(data definition language)通常是数据库管理系统的一部分,在SQL Server
7、2005中,数据库对象包括表、视图、触发器、存储过程、规则、默认、用户自定义的数据类型等。定义语言的语句有CREATE,ALTER,DROP等。 (2)数据操纵语言(DML)。数据操作语言 (data manipulation language)用于检索和操作数据的 SQL 语句的子集。数据操纵语言语句包括SELECT、INSERT、UPDATE、DELETE等命令。,4.1 了解Transact-SQL编程语言,4.1.2 Transact-SQL语句分类 (3)数据控制语言。数据控制语言(DCL)是用来设置或更改数据库用户或角色权限的语句,包括GRANT,DENY,REVOKE等命令。在默
8、认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权限执行数据控制语言。 (4)控制流语句。Transact-SQL还为用户提供了控制流语句,用于控制SQL语句、语句块或者存储过程的执行流程。常用流程控制语句有BEGINEND、IFELSE、WHILE、BREAK、GOTO、WAITFOR、RETURN等主要语句。,4.2 Transact-SQL语法要素,4.2.1 Unicode码与ASC码 (1)ASC码。ANSI标准机构制定了一种编码标准ASC码,要求用8个二进制位来表示字母的范围。存在的缺陷是只能表示256个不同的字符,不
9、能在一个单独的8位编码体系中指定所有的字符。 (2) Unicode码。Unicode标准使用2个字节来表示每个字符。SQL Server 2005将Unicode定义的一组字母、数字和符号识别为nchar、nvarchar 和 ntext 数据类型。 在Unicode标准编码机制下,Unicode 具有65,000多个可选的值,Unicode 可以包含大多数语言的字符。每个不同的字符都用一种唯一的编码进行表示,不同语言的系统之间传输数据时不需要任何编码转换,这就使得字符数据可以完全可移植了。,4.2 Transact-SQL语法要素,4.2.2标识符 根据命名对象的方式,对象标识符可分为常规
10、标识符和分隔标识符。其字符数都必须在 1 到 100 之间。 1常规标识符 常规标识符是符合成为常规标识符的下列格式规则的对象名称。常规标识符的字母要符合Unicode Standard 2.0标准和如下格式规则: 标识符可以以字母开头,也可以符号(表示局部变量)、#(表示临时变量)或者下划线_开头。字母要符合Unicode Standard 2.0标准。 后续字符可以是字母、数字和下划线(_)。 标识符不能是Transact-SQL的保留字。 标识符中不允许嵌入空格或特殊字符。,例如,下面给出的示例都是合法的常规标识符。 -声明了一个名为Ex_Local的局部变量。 DECLARE Ex_L
11、ocal NCHAR(10) -声明了一个名为Ex_Table的表变量。 DECLARE Ex_Table TABLE(col1,CHAR) -用于创建一个名为TempTable的临时表变量。 CREATE TABLE #TempTable(itemid,INT) -定义了一个名为sp_User1的存储过程标识符。 CREATE PROCEDURE sp_User1 AS BEGIN END,4.2 Transact-SQL语法要素,4.2.2标识符 2分隔标识符 对于使用分隔标识符,不符合成为常规标识符的格式规则的标识符必须始终使用方括号 “ ”进行分隔。分隔符仅用于标识符,不能用于关键字。
12、 (1)下列情况下需要使用分隔标识符: 当对象的名称或名称中的一部分使用保留关键字时。必须先更改对象的标识符,才能使用分隔标识符引用对象。 当对象的名称使用未被列为限定标识符的字符时,允许分隔标识符使用当前代码页中的任意字符。,4.2 Transact-SQL语法要素,4.2.2标识符 2分隔标识符 (2)分隔标识符的格式规则: 分隔标识符的主体可以包含当前代码页中的字符(包括分隔符本身)的任意组合。如果分隔标识符的主体包含分隔符,则需进行特殊处理: 如果标识符的主体只包含左方括号( ),则无需进行额外处理。 如果标识符的主体包含一个右方括号,则必须指定两个右方括号 ( )。,例如,下面给出的
13、示例都是合法的分隔标识符。假设语句中,Sales Volume、Sales Cube 和 select 都是分隔标识符。 - 在 Sales Volume 和 Sales Cube 标识符中插入空格,而select是一个保留关键字。 SELECT Measures.Sales Volume FROM Sales Cube WHERE Product.select -下面的示例中,对象的名称是 Total Profit Domestic。若要引用此对象,必须使用以下分隔标识符: Total Profit Domestic 请注意,不必更改 Domestic前面的左方括号来创建分隔标识符。但是,必
14、须将Domestic 后面的右方括号替换为两个右方括号。,4.2 Transact-SQL语法要素,4.2.3 常量 常量表示一个特定数据值的符号。 (1)字符串常量。 字符串常量括在单引号内并包含字母数字字符(a-z、A-Z 和 0-9)以及特殊字符(如!、和#等)的字符序列。 字符串常量遵循当前数据库的默认排序规则,除非使用 COLLATE 子句为其指定了排序规则。 如果单引号中的字符串包含一个嵌入的引号,则可以使用两个单引号表示嵌入的单引号。也可以使用双引号定义字符串常量,则对于嵌入在双引号中的单引号不必作特别处理。 空字符串用中间没有任何字符的两个单引号表示。,以下是字符串的示例: C
15、A123 OBrien Process X is 50%. The level for job_id: %d should be between %d and %d. “OBrien“ 对于Unicode 字符串,其前面必须有一个大写字母N 前缀。例如,ABCD 是字符串常量而 NABDC 则是 Unicode 常量。,以下是在 Transact-SQL 中使用的分隔符类型:,引用的标识符用双引号 (“) 分隔开: SELECT * FROM “Blanks in Table Name” 括在括号中的标识符用方括号 ( ) 分隔开: SELECT * FROM Blanks In Table
16、Name 仅当 QUOTED_IDENTIFIER 选项设为 ON 时,引用的标识符才有效。默认情况下,当用于 SQL Server 的 Microsoft OLE DB 提供程序和 SQL Server ODBC 驱动程序连接时,将 QUOTED_IDENTIFIER 设为 ON。,当 QUOTED_IDENTIFIER 设为 ON 时,对于 SQL 语句中的双引号 (“) 和单引号 () 的用法,SQL Server 遵循 SQL-92 规则。例如:,双引号只能用于分隔标识符,不能用于分隔字符串。 单引号只用于包含字符串,不能用于分隔标识符。 如果字符串包含嵌入的单引号,则应在该嵌入的单引
17、号前再添加一个单引号。例如:,SELECT * FROM “My Table“ WHERE “Last Name“ = OBrien,如果 QUOTED_IDENTIFIER 设为 OFF,对于单引号和双引号的用法,SQL Server 遵循以下规则: 引号不能用于分隔标识符,而必须将括号用作分隔符。 单引号或双引号可用于包含字符串。 如果使用双引号,嵌入的单引号将不必用两个单引号来表示。例如:,SELECT * FROM My Table WHERE Last Name = “OBrien “ 无论采用哪种 QUOTED_IDENTIFIER 设置,都可以使用括号分隔符。,4.2 Trans
18、act-SQL语法要素,4.2.3 常量 (2)二进制常量 。二进制常量具有前辍0x并且是十六进制数字字符串。这些常量不使用引号括起。 下面是二进制字符串的示例: 0xAA 0x1CE 0x69048AEFBB010E 0x ( 表示空二进制字符) (3)bit 常量。bit常量使用数字0或1表示,并且不括在引号中。如果使用一个大于 1 的数字,则该数字将转换为1。,4.2 Transact-SQL语法要素,4.2.3 常量 (4)日期时间常量。datetime 常量使用特定格式的字符日期值来表示,并被单引号括起来。 常用的datetime常量格式的示例如下: April 15, 2010 1
19、5 April, 2011 090415 04/15/10 下面是时间常量的示例: 16:30:27 07:27 PM,(5)整型常量。integer 常量以没有用引号括起来并且不包含小数点的数字字符序列来表示。integer 常量不能包含小数且必须全部为数字。,4.2 Transact-SQL语法要素,4.2.3 常量 (6)数值型常量。decimal 常量由没有用引号括起来并且包含小数点的数字字符串来表示。 下面是 decimal 常量的示例: 3.1415926 9.807 (7)浮点型常量。float 和 real 常量一般使用科学记数法来表示。 下面是 float 或 real 值的
20、示例: 13.76E9 2.77E-3,4.2 Transact-SQL语法要素,4.2.3 常量 (8)货币型常量。money 常量以前缀为可选的小数点和可选的货币符号的数字字符串来表示。 下面是 money 常量的示例: $20137 $5420437,数值型常量(包括integer 、decimal、 float 、money等类型)若要指示一个数是正数还是负数,可以对数值常量应用 + 或 - 一元运算符,成为一个表示有符号数字值的表达式。如果没有应用+或-一元运算符,则数值常量为正数。 例如,各数值类型的正负数示例如下: +3356 918 -2277 +3.1426 7.3789 -
21、2.71828 +123E-3 -12E5 -$45.56 +$423456.99 $423455,(9)GUID常量。全局唯一标识符(uniqueidentifier)常量是表示 GUID 的字符串。可以使用字符或二进制字符串格式指定。 以下是 GUID类型示例: 6F9619FF-8B86-D011-B42D-00C04FC964FF 0xff19966f868b11d0b42d00c04fc964ff,4.2 Transact-SQL语法要素,4.2.4 变量 两种形式的变量:用户自己定义的局部变量和系统提供的全局变量。 声明变量:使用DECLARE命令,为变量赋值时则需要使用SET和S
22、ELECT命令。SET命令一次只能为一个变量赋值,而SELECT命令可以同时为多个变量赋值。 1局部变量 局部变量是一个能够拥有特定数据类型的对象,它的作用范围仅限制在程序内部。局部变量被引用时要在其名称前加上标志,而且必须先用DECLARE命令定义后才可以使用。 定义局部变量的语法形式如下: DECLAER local_variable data_type,n,如果想要设定局部变量的值,必须使用SELECT命令或者SET命令。其语法形式为: SET local_variable = expression 或者: SELECT local_variable = expression ,.n ,
23、例4.1声明一个myvar 变量,然后将一个字符串值放在变量中,再输出myvar 变量的值。 程序代码如下: DECLARE myvar nchar(20) set myvar = This is a test SELECT myvar GO,4.2 Transact-SQL语法要素,4.2.4 变量 2. 全局变量 全局变量是SQL Server系统内部使用的变量,可以让任何程序均可以随时调用。 全局变量通常存储一些SQL Server的配置设定值和统计数据。用户可以在程序中用全局变量来测试系统的设定值或者是Transact-SQL命令执行后的状态值。 在使用全局变量时应该注意以下几点: 全
24、局变量是在服务器级定义的。 用户只能使用预先定义的全局变量。 引用全局变量时,必须以标记符“”开头。 局部变量名称不能与全局变量的名称相同,否则会在应用程序中出现不可预测的结果。,例4.2显示到当前日期和时间为止试图登录SQL Server 2005的次数。 程序代码如下: SELECT GETDATE() AS 当前的时期和时间, CONNECTIONS AS 试图登录的次数,4.2 Transact-SQL语法要素,4.2.5注释 注释是程序代码中非可执行的文本字符串。使用注释对代码进行说明,不仅能使程序易读易懂,而且有助于日后的管理和维护。 注释通常用于记录程序名称、作者姓名和主要代码更
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 04 Transact SQL 语言 基础 ppt 课件
链接地址:https://www.31doc.com/p-2546801.html