第9章 SQL Server 2008高级应用

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

9.1.2 Transact-SQL 数据类型
5. Unicode 字符串数据类型
Unicode 字符串数据类型包括ntext,nchar和nvarchar三 种类型。ntext是长度可变的Unicode 字符串数据类型, 存储大小是所输入字符个数的两倍(以字节为单位)。 nchar是长度固定的Unicode字符串数据类型,格式为 nchar [(n)],其中的n 值必须在 1 到 4 000 之间(含) ,存储大小为两倍n字节。nvarchar是长度可变的 Unicode字符串数据类型,格式为nvarchar [(n | max)], 其中的n 值在 1 到 4 000 之间(含),max 指示最大存 储大小为 2E31-1个字节,存储大小是所输入字符个数的 两倍加两个字节。
在程序设计语言中,变量是必不可少的 组成部分,它是在程序执行过程中可以 改变数值的量,主要用于存储数据。 Transact-SQL允许使用两种变量,一种 是用户自己定义的局部变量,另一种是 系统提供的全局变量。
9.1.3 变量
1.全局变量
全局变量是SQL Server系统内部使用的变量,其作用范围 并不局限于某一程序,而是任何程序均可随时调用。全局 变量通常存储一些SQL Server的配置设定值和效能统计数 据。用户可在程序中用全局变量来测试系统的设定值或 Transact-SQL 命令执行后的状态值。 全局变量不是由用户的程序定义的,而是由系统定义和维 护的,只能使用预先说明及定义的全局变量。引用全局变 量时必须以“@@”开头。局部变量的名称不能与全局变 量的名称相同,否则会在应用中出错。
9.1.4 运算符
2.赋值运算符
等号 (=) 是唯一的 Transact-SQL 赋值运算 符。在以下示例中,将创建一个 @MyCounter 变量,然后赋值运算符将 @MyCounter 设置为表达式返回的值。 DECLARE @MyCounter INT; SET @MyCounter = 1;
9.1.2 Transact-SQL 数据类型
7.其他数据类型
SQL Server 2008还提供了其他的数据类型, 如cursor,timestamp,sql_variant, uniqueidentifier,table和xml。它们主要用于 存储一些特殊类型的数据,例如时间戳、游 标等。
9.1.3 变量
9.1.3 变量
2.局部变量
局部变量是用户可自定义的变量,它的作用范围仅 在程序内部。局部变量在程序中通常用来储存从表 中查询到的数据,或当作程序执行过程中暂存变量 。局部变量必须以@开头,而且必须先用DECLARE 命令说明后才可使用。其说明形式如下: DECLARE @变量名 变量类型[,@变量名 变量类 型…]
运算符 +(正) -(负) ~(位非) 含义 数值为正。 数值为负。 按位取反
9.1.4 运算符
运算符优先级和结合性
SQL Server 2008中运算符的优先级顺序如下: ~(按位取反) *(乘)、/(除)、%(取余) +(正)、-(负)、+(加)、(+字符串串联)、-(减 )、&(按位与)、^(按位异或)、|(按位或) =、>、<、>= 、<= 、<> 、!=, !> 、!<(比较运算符) Not And All、Any、Between、In、Like、Or、Some =(赋值)
9.1.1 Transact-SQL语法约定
Transact-SQL参考的语法关系中使用的约定如下表所示:
规范 大写 斜体 |(竖线) [ ](方括号) {}(大括号) [ ,...n ] [ ...n ] 加粗 <标签> ::= 用途 Transact-SQL 关键字(保留字) Transact-SQL 语法中用户提供的参数 分隔括号或大括号内的语法选项,只能选择一个选项 可选语法项目,不必键入方括号 必选语法项,不必键入大括号 表示前面的项可重复 n 次,每一项由逗号分隔 表示前面的项可重复 n 次,每一项由空格分隔 数据库名、表名、列名、索引名、存储过程、实用工具、数据类型 名以及必须按所显示的原样键入的文本 语法块的名称。此规则用于对可在语句中的多个位置使用的过长语 法或语法单元部分进行分组和标记,适合使用语法块的每个位置由 括在尖括号内的标签表示:<标签>
第9章 SQL Server2008高级 应用
9.1 Transact-SQL语言基础
T-SQL的主要构成: T-SQL 是 使 用 SQL Server 的 核 心 , 与 SQL Server实例通信 的所有应用程序都 通过将T-SQL语句发 送到服务器运行来 实现使用SQL Server 及其数据的。
SQL 元素 标识符 数据类型 说明 表、视图、列、数据库和服务器等对象的名称。 定义数据对象(如列、变量和参数)所包含的数据的类型。大多数 T-SQL 语句 并不显式引用数据类型,但它们的结果受语句中所引用对象的数据类型之间的 交互操作影响。 函数 表达式 语法元素,可以接受零个、一个或多个输入值,并返回一个标量值或表格形式 的一组值。比如 SUM 函数、DATEDIFF 函数、@@SERVERNAME 函数等。 SQL Server 可以解析为单个值的语法单位。包括常量、返回单值的函数、列或 变量的引用。 表 达 式 中 的 运 算 与一个或多个简单表达式一起使用,构造一个更为复杂的表达式。 符 注释 保留关键字 插入到 T-SQL 语句或脚本中、用于解释语句作用的文本段。SQL Server 不执行 注释。 保留下来供 SQL Server 使用的词,不能用作数据库中的对象名。
9.1.2 Transact-SQL 数据类型
3.字符串数据类型
(1)char类型 格式为char[(n)],是一种固定长度的字符数据类型。存储 大小为 n 个字节,n 的取值范围为 1 至 8 000。 (2)varchar类型 格式为varchar [(n | max)],是一种可变长度的字符数据 类型。其中n 的取值范围为 1 至 8000,max 代表最大存 储大小是 2E31-1个字节。 (3)text类型 text是一种服务器代码页中长度可变的非 Unicode 数据, 最大长度为 2E31-1个字符。
9.1.3 变量
3.注释符
在Transact-SQL 中可使用两类注释符: (1)ANSI 标准的注释符“- -”用于单行注释; (2)与C 语言相同的程序注释符号,即 “/*……*/”,“/*”用于注释文字的开头,“*/” 用于注释文字的结尾,可在程序中标识多行文字为 注释。
9.1.4 运算符
9.1.2 Transact-SQL 数据类型
在SQL Server 2008中,每个列、局部变量、 表达式和参数都具有一个相关的数据类型。 数据类型是一种属性,用于指定对象可保 存的数据类型。SQL Server 2008提供的数 据类型主要有六大类,即精确数据类型、 近似数据类型、日期和时间数据类型、字 符串数据类型、Unicode 字符串数据类型、 二进制字符串数据类型。
9.1.2 Transact-SQL 数据类型
6.二进制字符串数据类型
Unicode 二进制数据类型包括binary,image 和varbinary三种类型。binary是固定长度的二 进制数据,varbinary是可变长度的二进制数 据,两种数据类型都可用来存储二进制数。 image是长度可变的二进制数据,用来存储图 像数据。
运算符是一种符号,用来指定要在一个 或多个表达式中执行的操作。Microsoft SQL Server 2008提供了算术运算符、逻 辑运算符、赋值运算符、字符串串联运 算符、按位运算符、一元运算符和比较 运算符。
9.1.4 运算符
1.算术运算符
算术运算符用于两个表达式执行数 学运算,表达式均为数值数据类型 。相关运算符及含义如下表所示。 加 (+) 和减 (-) 运算符也可用于对 datetime 、 smalldatetime、money 和smallmoney 值执行算术运算。
9.1.2 Transact-SQL 数据类型
1.精确数据类型 (1)整型数据
整数数据类型介绍 如下表:
数据类型 bigint int smallint tinyint 范 围 -2E63 ~2E63-1 -2E31 ~2E31-1 -32768 ~32767 0 ~255 存 储 8 字节 4 字节 2 字节 1 字节
9.1.4 运算符
3.字符串串联运算符
加号 (+) 是字符串串联运算符,可以用它将 字符串串联起来。其他所有字符串操作都使 用字符串函数进行处理。例如'good' + ' ' + 'morning'的结果是'good morning'。
9.1.4 运算符
4.比较运算符
比较运算符用来比较两个 表达式值之间的大小关系 ,可以用于除了 text、 ntext 或 image 数据类型 之外的所有数据类型。运 算的结果为True、False, 通常用来构造条件表达式 。Transact-SQL 的比较运 算符如下表所示。
运 算 符 = > < >= <= <> != !< !> 含 等于 大于 小于 大于等于 小于等于 不等于 不等于(非 SQL-92 标准) 不小于(非 SQL-92 标准) 不大于(非 SQL-92 标准) 义
9.1.4 运算符
5.逻辑运算符
逻辑运算符用来对多个条件进行运算,运算的结果 为True或False,通常用来表示复杂的条件表达式。 Transact-SQL 的逻辑运算符如下表所示。
9.1.4 运算符
6. 按位运ห้องสมุดไป่ตู้符
按位运算符对两个二进制数据或整数数据进行位操作,但 是两个操作数不能同时为二进制数据,必须有一个为整数 数据。SQL Server 2008提供的按位运算符如下表所示。
运算符 & |(位或) ^) 含义 按位与 按位或 按位异或
9.1.4 运算符
7.一元运算符
一元运算符只对一个表达式进行运算,SQL Server 2008提供的一元运算符如下表所示。
9.1.2 Transact-SQL 数据类型
3.日期和时间数据类型
datetime和smalldatetime是用于表示某天的日期和时间 的数据类型。SQL Server 2008数据库引擎用两个 4 字节 的整数内部存储 datetime 数据类型的值。第一个 4 字 节存储“基础日期”(即 1900 年 1 月 1 日)之前或之 后的天数。另外一个 4 字节存储天的时间,以午夜后经 过的 1/300 秒数表示。smalldatetime 数据类型存储天 的日期和时间,但精确度低于 datetime。数据库引擎将 smalldatetime 值存储为两个 2 字节的整数,第一个 2 字节存储 1900 年 1 月 1 日后的天数,另外一个 2 字节 存储午夜后经过的分钟数。
9.1.5 批处理
批处理是包含一个或多个T-SQL语句的组,在批 处理的所有语句被整合成一个执行计划。一个批 处理内的所有语句要么被放在一起通过解析,要 么没有一句能够执行。 批处理是使用GO语句将多条SQL语句进行分隔, 其中每两个GO之间的SQL语句就是一个批处理单 元。批处理的结束符为“GO”。
9.1.2 Transact-SQL 数据类型
(2)浮点数据
decimal和 numeric是带固定精度和小数位数的数值数据类型。
(3)货币类型
money与smallmoney是货币或货币值的数据类型,其中money类型 的数据占用8字节,smallmoney类型的数据占用4字节。
(4)逻辑数据类型
bit是逻辑数据类型,只占用1个字节的存储空间,其值为“0”和 “1”。只要输入的值为非“0”,系统都会当作“1”处理。
9.1.2 Transact-SQL 数据类型
2.近似数据类型
近似数据类型用于表示浮点数值数据的大致数值。近似 数据类型包括float和real两种。 float的格式为float [(n)],其中 n 为用于存储 float 数值 尾数的位数,以科学记数法表示,因此可以确定精度和 存储大小。如果指定了n,则它必须是介于 1 和 53 之 间的某个值,n 的默认值为 53。 real类型占用的存储空间为4字节。
相关文档
最新文档