泰州职业技术学院电子工程系 课程授课教案 课程名称数据库技术( SQLServer2000) 主讲教师 蔡伯峰 03网商 授课班级 《数据库原理与 SQL Server2000教程》 使用教材 北京工业大学出版社,苏啸编著 理论 3 课程学分6周学时 实践 3
1 泰州职业技术学院电子工程系 课程授课教案 课程名称 数据库技术(SQL Server 2000) 主讲教师 蔡 伯 峰 授课班级 0 3 网 商 使用教材 《数据库原理与 SQL Server2000 教程》 北京工业大学出版社,苏啸编著 课程学分 6 周学时 理论 3 实践 3
授课题目(章、节) 第十讲 SQL Server2000数据类型 学时_3授课时间 周3第3~5节第10)授课 主要参考书 《 SQL Server数据库原理及应用教程》,清华大学出版社 教学目的与要求 1、了解各个数据类型的使用场合 2、能根据问题的需要选择合适的数据类型并熟练运用。 教学重点、难点 1、根据问题的需要选择合适的数据类型 大体内容 教学方法时间安排 Transact-SQL概述 面授 SQL Server支持的数据类型 面授 用户定义的数据类型 面授 教研室审阅意见 教研室主任签名 年月日
2 授课题目(章、节) 第十讲 SQL Server2000 数据类型 学时 3 授课时间 周 3 第 3~5 节 第( 10 )次授课 主要参考书 《SQL Server 数据库原理及应用教程》,清华大学出版社 教学目的与要求: 1、了解各个数据类型的使用场合; 2、能根据问题的需要选择合适的数据类型并熟练运用。 教学重点、难点: 1、根据问题的需要选择合适的数据类型 大体内容 教学方法 时间安排 Transact-SQL 概述 面授 SQL Server 支持的数据类型 面授 用户定义的数据类型 面授 教研室审阅意见: 教研室主任签名: 年 月 日
教学过程(基本内容) 辅助手段备注 时间分配 一、 Transact-SQL概述 SQL(结构化数据查询语言, Structure Query Language),是关系型 数据库( RDBMS)的应用语言 Transact-SQL是在包含了大多数 ANSI SQL89和 ANSI SQL92功能 的基础上对 ANSI SQL92的扩展,对语法作了一些精简,增强了可编程和 灵活性,它是非标准的SQL,是基于商业应用的SQL,用于编写具有实 际意义的CS(客户/服务器)模式下的数据库应用程序,要想移植到其 它平台上只需修改少量语法即可。它是 Server2000的核心组件之一。 尽管 SQL Server2000提供了使用方便的图形化用户界面,但各种功 能的实现基础是 Transact-SQL语言,只有 Transact-SQL可以直接和数据 库引擎进行交互。 1. Transact-SQL的特点 体化的特点。 Transact-SL语言集数据定义语言、数据操纵 语言、数据控制语言和附加语言元素(包括变量、运算符、函 数、流程控制语句和注释等)为一体 两种使用方式,统一的语法结构。两种使用方式即联机交互式 和嵌入高级语言的使用方式 高度非过程化。 Transact-SQL语言一次处理一个/多个记录 所有的SQL语句接受集合作为输入,返回集合作为输出,并允 许一条S吼L语句的结果作为另一条SQL语句的输入。另外, Transact-SQL语言不要求用户指定对数据的存放方法,所有的 Transact-SQL语句使用查询优化器,用以指定数据以最快速度 存取的手段 类似于人的思维习惯,容易理解和掌握 2.SQL语句的构成及提交 构成:任何一条 Transact-SQL语句至少需要包含一个命令动词,即 个明确动作含义的动词。SQL语句中的命令动词是一种对SQL服务器 有特定意义的关键字,而其它关键字则是在SQL语句中引入的其它限制 条件。 提交:用户通过查询分析器或应用程序向服务器提交 Transact-SQL
3 教学过程(基本内容) 辅助手段 备注 时间分配 一、Transact-SQL 概述 SQL(结构化数据查询语言,Structure Query Language),是关系型 数据库(RDBMS)的应用语言。 Transact-SQL 是在包含了大多数 ANSI SQL 89 和 ANSI SQL 92 功能 的基础上对 ANSI SQL92 的扩展,对语法作了一些精简,增强了可编程和 灵活性,它是非标准的 SQL,是基于商业应用的 SQL,用于编写具有实 际意义的 C/S(客户/服务器)模式下的数据库应用程序,要想移植到其 它平台上只需修改少量语法即可。它是 Server 2000 的核心组件之一。 尽管SQL Server 2000提供了使用方便的图形化用户界面,但各种功 能的实现基础是Transact-SQL语言,只有Transact-SQL可以直接和数据 库引擎进行交互。 1.Transact-SQL 的特点 ⚫ 一体化的特点。Transact-SQL语言集数据定义语言、数据操纵 语言、数据控制语言和附加语言元素(包括变量、运算符、函 数、流程控制语句和注释等)为一体。 ⚫ 两种使用方式,统一的语法结构。两种使用方式即联机交互式 和嵌入高级语言的使用方式。 ⚫ 高度非过程化。Transact-SQL语言一次处理一个/多个记录, 所有的 SQL语句接受集合作为输入,返回集合作为输出,并允 许一条 SQL语句的结果作为另一条 SQL语句的输入。另外, Transact-SQL语言不要求用户指定对数据的存放方法,所有的 Transact-SQL语句使用查询优化器,用以指定数据以最快速度 存取的手段。 ⚫ 类似于人的思维习惯,容易理解和掌握。 2.SQL 语句的构成及提交 构成:任何一条 Transact-SQL 语句至少需要包含一个命令动词,即 一个明确动作含义的动词。SQL 语句中的命令动词是一种对 SQL 服务器 有特定意义的关键字,而其它关键字则是在 SQL 语句中引入的其它限制 条件。 提交:用户通过查询分析器或应用程序向服务器提交 Transact-SQL
语句时均采用批处理的形式(在书写批处理语句时,需要使用GO语句 作为批处理命令的结束标志。当编译器读取到GO语句时,它会把Go 句前面所有的语句当作一个批处理,并将这些句打包发送给服务器。 GO语句本身并不是 Transact-SQL语句的组成部分,它只是一个用于表 示批处理结束的前端指令 3.服务器处理SQL语句的过程 当服务器收到一条SQL语句后,将依次进行 1)分析2)优化3)编译4)执行 二、 SQL Server支持的数据类型(26种,参见“数据表的创建与维护”) 在SQL中,数据类型通常指字段、存储过程参数和局部变量的 数据特征 数据类型通常由SQL系统定义,称为系统数据类型。 SQL Server 也支持用户定义的数据类型(并非真正的用户定义,而是对现 有类型的一种具体化描述)。 (一)、字符型 字符型(由单引号括起)用来存储非统一编码型或统一编码的数据。 分为四种:定长char及 nchar、可变长 varchar及 nvarchar 1.字符型字段的长度 定义字符型字段时,必须规定它的最大长度,以表明它所能存储的 最大字符数 选择char或 varchar类型的原则字段中字符长度是否固定。 ■对char,若实际长度不足,则以空格填充到尾部 可变长度的字符结构需要额外的存储开销(主要是开辟一 字节用于指明究竞多长) 尽管 varchar需要额外的存储开销,但能够删除字段尾部的 空格 2.关于截断字符串 向表中插入字符串时,如果实际长度大于字段的定义长度,则系统
4 语句时均采用批处理的形式(在书写批处理语句时,需要使用 GO 语句 作为批处理命令的结束标志。当编译器读取到 GO 语句时,它会把 GO 语句前面所有的语句当作一个批处理,并将这些语句打包发送给服务器。 GO 语句本身并不是 Transact-SQL 语句的组成部分,它只是一个用于表 示批处理结束的前端指令)。 3.服务器处理 SQL 语句的过程 当服务器收到一条 SQL 语句后,将依次进行: 1)分析 2)优化 3)编译 4)执行 二、SQL Server 支持的数据类型(26 种,参见“数据表的创建与维护”) ⚫ 在 SQL 中,数据类型通常指字段、存储过程参数和局部变量的 数据特征。 ⚫ 数据类型通常由 SQL 系统定义,称为系统数据类型。SQL Server 也支持用户定义的数据类型(并非真正的用户定义,而是对现 有类型的一种具体化描述)。 (一)、字符型 字符型(由单引号括起)用来存储非统一编码型或统一编码的数据。 分为四种:定长 char 及 nchar、可变长 varchar 及 nvarchar。 1.字符型字段的长度 定义字符型字段时,必须规定它的最大长度,以表明它所能存储的 最大字符数。 ◼ 选择 char 或 varchar 类型的原则:字段中字符长度是否固定。 ◼ 对 char,若实际长度不足,则以空格填充到尾部。 ◼ 可变长度的字符结构需要额外的存储开销(主要是开辟一 字节用于指明究竟多长) ◼ 尽管 varchar 需要额外的存储开销,但能够删除字段尾部的 空格 2.关于截断字符串 向表中插入字符串时,如果实际长度大于字段的定义长度,则系统
将报告错误信息,且不向表中插入该记录。 (二)、十六进制型(也即二进制型) 有两种:固定长度 binary、可变长度 varbinary。用于存储十六进制数 据或十六进制字符串 十六进制数据由09、A_F或af组成:由0x开头,其中每 两个字符为一组,共同构成一个字节,不需加引号。若输入的 十六进制数据位数为单数,则在最高位加0变成双数,以便按 整字节存放,再在尾部补0。 输入十六进制型数据只能通过SQL的 insert进行,在企业管理 器中不能向表中直接输入数据 (三)、文本型和图像型 即:text、 ntext、 Image text/ ntext字符型,用来存储大量的非统一编码/统一编码型字 符数据。其容量理论上为1到231-1个字节,但实际应用时要 根据硬盘的存储空间而定。 对text、 ntext和mage字段的任何更新操作,都会引起对这些字 段的初始化操作, SQL Server为它们分配至少2kB的存储空间 故应慎用更新操作 在 SQL Server2000中,小的text、 ntext可以直接存储在记录中 大的text、 ntext或 Image值被存储在页集合中。每个表只有一个保存 text、 ntext和 Image数据的页集合,text、 ntext和 Image数据可以保存 在同一页中。在 sysindexes中 indid=255的记录保存了这个页集合的起始 位置。当text、 ntext或 Image值被存储在页集合中时,在记录的相应字 段中将存放一个16位的指针来代替text、 ntext或 Image的信息,该指针 指向页集合 例 create table text exl(PId int not null, name char( 8), text field text) insert text exl(PID, text field) values( 101, null) insert text exI(PID, text field) values103我们胜利了!)
5 将报告错误信息,且不向表中插入该记录。 (二)、十六进制型(也即二进制型) 有两种:固定长度 binary、可变长度 varbinary。用于存储十六进制数 据或十六进制字符串。 ⚫ 十六进制数据由 0—9、A—F 或 a—f 组成:由 0x 开头,其中每 两个字符为一组,共同构成一个字节,不需加引号。若输入的 十六进制数据位数为单数,则在最高位加 0 变成双数,以便按 整字节存放,再在尾部补 0。 ⚫ 输入十六进制型数据只能通过 SQL 的 insert 进行,在企业管理 器中不能向表中直接输入数据。 (三)、文本型和图像型 即:text、ntext、image ⚫ text/ntext 字符型,用来存储大量的非统一编码/统一编码型字 符数据。其容量理论上为 1 到 2 31-1 个字节,但实际应用时要 根据硬盘的存储空间而定。 ⚫ 对 text、ntext 和 image 字段的任何更新操作,都会引起对这些字 段的初始化操作,SQL Server 为它们分配至少 2kB 的存储空间, 故应慎用更新操作。 在 SQL Server 2000中,小的text、ntext可以直接存储在记录中, 大的text、ntext或image值被存储在页集合中。每个表只有一个保存 text、ntext和image数据的页集合,text、ntext和 image数据可以保存 在同一页中。在sysindexes中indid=255的记录保存了这个页集合的起始 位置。当text、ntext或image值被存储在页集合中时,在记录的相应字 段中将存放一个16位的指针来代替text、ntext或image的信息,该指针 指向页集合。 例 1: create table text_ex1(PID int not null,name char(8),text_field text) insert text_ex1(PID,text_field) values(101,null) insert text_ex1(pid) values(102) insert text_ex1(PID,text_field) values(103,'我们胜利了!')