
第2章结构化查询语言S0L 中央电大工学院史红星 华习日标 结构化查询语言(S网L)是进行关系数据库操作的基础。请同学们结合实验2、实验3 学习本章内容。 一、基本理论 1,S0L语言分类 分为四大类:数据定义语言。数据查出语言,数据操枫语言,数据控制语言。 (1)数据定义语言:主要用创建、修政或副除数据库中对象,如表、程图、模式、 触发器和存储过程等,与其相关的主要SL语句包括CEAT(创建),LTE球(修政)、附P (副除)1 (2)数据授纵语言:主要用于数据的增,到、改操作。主要语句有1NSE灯(插入), DELETE(到降)、FD4TE(修政)片 (3)数据查询语言:主要用于数据的检索查询,与其相关的语句是SCT(查询): (4)数据控制语言:主要用于控制用户对数据库的访问权限、完整性规则描述、事 务控制等操作。控制用户对数据库的访月权限的主要语句有GRWT(授予权利)和EO保E (取消权利)等。事务控制的语句包括QWIT(事务提交)和B第(事务巢滑)等。 2.S0L语言的种点 非过程化语言:统一的语言:是所有关系数据库的公共语言。 3.S0L语言的基本数据类型 限Seer提供了数植型、字符型、日期型、二进制型、位型、双字节型等6大类数 据类亚。 1)数值数据类型 一般可以分为整数型、精确数值类型、浮点数值类型和货币类型等4类。 1
1 第 2 章 结构化查询语言 SQL 中央电大工学院 史红星 学习目标 结构化查询语言(SQL)是进行关系数据库操作的基础。请同学们结合实验 2、实验 3 学习本章内容。 一、基本理论 1.SQL 语言分类 分为四大类:数据定义语言,数据查询语言,数据操纵语言,数据控制语言。 (1)数据定义语言:主要用创建、修改或删除数据库中对象,如表、视图、模式、 触发器和存储过程等,与其相关的主要 SQL 语句包括 CREAT(创建)、ALTER(修改)、DROP (删除); (2)数据操纵语言:主要用于数据的增、删、改操作,主要语句有 INSERT(插入)、 DELETE(删除)、UPDATE(修改); (3)数据查询语言:主要用于数据的检索查询,与其相关的语句是 SELECT(查询); (4)数据控制语言:主要用于控制用户对数据库的访问权限、完整性规则描述、事 务控制等操作。控制用户对数据库的访问权限的主要语句有 GRANT(授予权利)和 REVOKE (取消权利)等。事务控制的语句包括 COMMIT(事务提交)和 ROLLBACK(事务撤消)等。 2.SQL 语言的特点 非过程化语言;统一的语言;是所有关系数据库的公共语言。 3.SQL 语言的基本数据类型 SQL Server 提供了数值型、字符型、日期型、二进制型、位型、双字节型等 6 大类数 据类型。 1)数值数据类型 一般可以分为整数型、精确数值类型、浮点数值类型和货币类型等 4 类

2)半符型 常用的字符型有Char,Varchar和Text等3种. (1)chr类型。长度国定。如果字段或变量被定义为char类型,而实际长度没有达 到定文的长度。则在字符串尾部漆加空格以达到固定的字符数。 (2)varchar类型。长度可变。如果字段或变量核定义为varchar类型,而实际长度 没有达到定复的长度。SQL Server会自动丢掉尾部的空格以节省空间。 (3)text类型. 当要存储的字符型数据非常庞大,长度超过了800个字符时,可选释1数据类型。 即文本型,最大可存储钓2G的数据: 3)日期时间型 主要用米存储日期和时间的组合数据,根据取值范围的大小分为at0tHm和 s国Ildatetine两种, 4)二进制数据关型 二进制数据类型有定长和变长之分,主要用米存储二进制数据,如图形图像、d文 档文件等。S.Server提供了binary、varbinary和ige等3种常用二进制数据类型, 5)位型 bit(位型)是SQL Server提供的一种支持逻網数据的类型,只用米存储1或0两种, 只有一位字节长,在SQL Server中bit字段的用途很多,可以作为“真/假”,“男/女”、“开 /关”这类状态信息的标志,可以作为话动账号的指示器成项目的使用标志等。 6)特辣数据类型 有两类不常用的数据类型,即双字节数据类型和时同殿数据(T国st即)类型。它们主 要是为了实现特殊的用途,称为特殊数据类型。 时间置数据类型往往因为其名字面违成误解,实际上它既不是日期。也不是时何数据, 而是SL5evr根据事件的发生次序白动生成的一种二制数据。这个数据有很多用途,其 中之一是在Sq.Server关闭重新启动时,作为进行恢复工作的重要部分,另外利用 tinesta即数据还可以替代传统的数据库如领技术, 2
2 2)字符型 常用的字符型有 Char、Varchar 和 Text 等 3 种。 (1)char 类型。长度固定。如果字段或变量被定义为 char 类型,而实际长度没有达 到定义的长度,则在字符串尾部添加空格以达到固定的字符数。 (2)varchar 类型。长度可变。如果字段或变量被定义为 varchar 类型,而实际长度 没有达到定义的长度,SQL Server 会自动丢掉尾部的空格以节省空间。 (3)text 类型。 当要存储的字符型数据非常庞大,长度超过了 8000 个字符时,可选择 text 数据类型。 即文本型,最大可存储约 2G 的数据。 3)日期时间型 主要用来存储日期和时间的组合数据,根据取值范围的大小分为 datetime 和 smalldatetime 两种。 4)二进制数据类型 二进制数据类型有定长和变长之分,主要用来存储二进制数据,如图形图像、Word 文 档文件等。SQL Server 提供了 binary、varbinary 和 image 等 3 种常用二进制数据类型。 5)位型 bit(位型)是 SQL Server 提供的一种支持逻辑数据的类型,只用来存储 1 或 0 两种, 只有一位字节长,在 SQL Server 中 bit 字段的用途很多,可以作为“真/假”、“男/女”、“开 /关”这类状态信息的标志,可以作为活动账号的指示器或项目的使用标志等。 6)特殊数据类型 有两类不常用的数据类型,即双字节数据类型和时间戳数据(Timestamp)类型。它们主 要是为了实现特殊的用途,称为特殊数据类型。 时间戳数据类型往往因为其名字而造成误解,实际上它既不是日期,也不是时间数据, 而是 SQL Server 根据事件的发生次序自动生成的一种二制数据。这个数据有很多用途,其 中之一是在 SQL Server 关闭重新启动时,作为进行恢复工作的重要部分。另外利用 timestamp 数据还可以替代传统的数据库加锁技术

4。数据定文哥言 1)空值 空值也可称为N山值。空植不是“空格”符或“0”值,它表示的是没有值,是不确定 的值。 2)数据岸 在SL中,数据库被定文为对象的集合,这丝对象主要有表、常引、祝图、存储过程等。 数据库在通盒上是以文件为单位存储的,由要据文件和日志文件组成。数据文件中实际存战 数据库的所有数据和对象,日志文件用来存放用户对数据库所进行的所有操作,它是维护数 据岸完整性的重要工具。 (1)创建数据库 语句格式:CREATE DATARASE《数据牌名> 语句功能:创建一个数据库,就是定文一个存储空间。 应用举例:CREATE DATARASE教学管理库 (2)酬除数据库 语句格式:DROP DATABASE(数据库名> 语句功能:从计算机系统中时除(挑消)一个数据库。当然会同时把该库中的所有偏 息一并副除掉。 语句举例:RPD4 TABASE教学管理 5.表 1)表的概念 关系数据库的主要特点之一就是用表的方式组织数据。表是SL语言存放数据,查找 数据以及更新数据的基本数据结构。在5语言中,表有严格的定义,它是一个由行、列组 成的二雀结构。通常把行称做记录,把列称为字段。 表2-1学生基本情况登记表 学号 姓名 性别 出生日期 专业 年级 2008001 张红 1988-3-6 计算机应用 2008002 李明 男 1988-10-11 信息管理
3 4.数据定义语言 1)空值 空值也可称为 NULL 值。空值不是“空格”符或“0”值,它表示的是没有值,是不确定 的值。 2)数据库 在 SQL 中,数据库被定义为对象的集合,这些对象主要有表、索引、视图、存储过程等。 数据库在磁盘上是以文件为单位存储的,由数据文件和日志文件组成。数据文件中实际存放 数据库的所有数据和对象,日志文件用来存放用户对数据库所进行的所有操作,它是维护数 据库完整性的重要工具。 (1)创建数据库 语句格式: CREATE DATABASE 语句功能:创建一个数据库,就是定义一个存储空间。 应用举例:CREATE DATABASE 教学管理库 (2)删除数据库 语句格式:DROP DATABASE 语句功能:从计算机系统中删除(撤消)一个数据库。当然会同时把该库中的所有信 息一并删除掉。 语句举例:DROP DATABASE 教学管理 5.表 1)表的概念 关系数据库的主要特点之一就是用表的方式组织数据。表是 SQL 语言存放数据、查找 数据以及更新数据的基本数据结构。在 SQL 语言中,表有严格的定义,它是一个由行、列组 成的二维结构,通常把行称做记录,把列称为字段。 表 2-1 学生基本情况登记表 学号 姓名 性别 出生日期 专业 年级 2008001 张红 女 1988-3-6 计算机应用 1 2008002 李勇 男 1988-10-11 信息管理 1 … … … … … …

从表2-1可以看出,数据表一般具有以下属性: (1)表名:表的惟一标凯。比如学生基本情况登记表: (2)字段!一张表可以由若干列组成,称为字段。列名惟一,且同一列的数据必须 具有相同的数据类重。 (3)记录:表中的每一行称为一条记录,比如“2008001,张红,女1988.36,计算 机应用。1”,它搭述了一名学生的若干属性: (4)主关健字:能够惟一表示数据表中的每条记录的字段成者字段的组合,也称为 主码,主键,比如学号。在一个学校中,学生的姓名可能重复,但学号必须是隆一的。 2)侧建表结构 (1)语句格式 C随AT正TE《表名>((列名1)×列的数据类型>,(列名2)(列的量据类型>,:.) (2)语句功能: 在当前数据库中定义一个表的结构(即关系模式)。 (3)语句举例: 如果希望在”致学管理”数据库中创建一个名为"学生表”的表结构,则可执行下列 语句: CREATE TABLE学生表( 学号char(7)Primary Key. 姓名char(6), 性别char(2), 出生日期dateti, 专业char(10), 年级int) 在上述语句中,数据表的名称为“学生表”,它包括学生号、姓名、性别、出生日期、 专业,年级等6个字段(列)。学名的数据类型为ar型(字符型),长度为7:出生日期 的数据类型为atatine型(日期型):年领的数据类型为Int型(整数型), 3)刷除表结构
4 从表 2-1 可以看出,数据表一般具有以下属性: (1)表名:表的惟一标识。比如学生基本情况登记表; (2)字段:一张表可以由若干列组成,称为字段。列名惟一,且同一列的数据必须 具有相同的数据类型。 (3)记录:表中的每一行称为一条记录,比如“2008001,张红,女 1988.3.6,计算 机应用,1”,它描述了一名学生的若干属性; (4)主关键字:能够惟一表示数据表中的每条记录的字段或者字段的组合,也称为 主码、主键,比如学号。在一个学校中,学生的姓名可能重复,但学号必须是惟一的。 2)创建表结构 (1)语句格式: CREATE TABLE (,,...) (2)语句功能: 在当前数据库中定义一个表的结构(即关系模式)。 (3)语句举例: 如果希望在“教学管理”数据库中创建一个名为“学生表”的表结构,则可执行下列 语句: CREATE TABLE 学生表( 学号 char(7) Primary Key, 姓名 char(6), 性别 char(2), 出生日期 datetime, 专业 char(10), 年级 int ) 在上述语句中,数据表的名称为“学生表”,它包括学生号、姓名、性别、出生日期、 专业、年级等 6 个字段(列)。学名的数据类型为 Char 型(字符型),长度为 7;出生日期 的数据类型为 Datatime 型(日期型);年级的数据类型为 Int 型(整数型)。 3)删除表结构

(1》语句格式: OPTA以E<表名》 2语句功能: 从当前数据库中副除一个表,当然在副除表结构的同时也副除了全部内容。 3)语句举例1 O即TAE以E学生表 从当前数据库中制除掉名称为“学生表”的表,假定事先已经在当前库建立过该表。 6。索引 1)素引的概老 索引(Idex)提偶了一种快速访国数据的途径。索引具有以下特点。 (1)索引是在基本表的列上建立的一种数据加对象,它和基本表分开存储,它的建 立或量消对数暴的内容毫无影响。 (2)素引一经创建,就完全由系统白动途择和推护。不需要用户指定使用素引,也 不需要用户执行打开索引成法行重新素明等操作,所有这些工作都是由SQL Server数据库 管理系统自动完成。 (3)基本表的记录数量感多,记录越长,越有必要创建素引,这对加快查询速度的 效率十分明显。相反,对于记录比较少的基本表而言,创建索引的意文不大。 (4)索引是为了加逸查询速度而创建的,创同时会影响基本表的插入,酬除或修改 等更新活动的速度,当对基本表的数据进行增围改操作时,索引文件也要随之变化,以保持 与基本表的一致,因此只有对那些数据量大,查询顿度较高、实时性要求强的基本表要创建 索引,并且一张基本表上不要创建过多的素引, 2)制建常明的原则 索引是建立在基本表列上的对象。通常可参考以下原则: (1)基本表的记录数量感多,记录越长,越有必要创建素引,这对加快查询速度的 效率十分明显。相反,对于记录比较少的基本表而言,创建素引的意义不大 (2)索引是为了加速查询速度而创建的,但同时会影响基本表的插入,酬除或修改 5
5 (1)语句格式: DROP TABLE (2)语句功能: 从当前数据库中删除一个表,当然在删除表结构的同时也删除了全部内容。 (3) 语句举例: DROP TABLE 学生表 从当前数据库中删除掉名称为“学生表”的表,假定事先已经在当前库建立过该表。 6.索引 1)索引的概念 索引(Index)提供了一种快速访问数据的途径。索引具有以下特点。 (1)索引是在基本表的列上建立的一种数据加对象,它和基本表分开存储,它的建 立或撤消对数据的内容毫无影响。 (2)索引一经创建,就完全由系统自动选择和维护,不需要用户指定使用索引,也 不需要用户执行打开索引或进行重新索引等操作,所有这些工作都是由 SQL Server 数据库 管理系统自动完成。 (3)基本表的记录数量越多,记录越长,越有必要创建索引,这对加快查询速度的 效率十分明显。相反,对于记录比较少的基本表而言,创建索引的意义不大。 (4)索引是为了加速查询速度而创建的,但同时会影响基本表的插入、删除或修改 等更新活动的速度,当对基本表的数据进行增删改操作时,索引文件也要随之变化,以保持 与基本表的一致,因此只有对那些数据量大、查询频度较高、实时性要求强的基本表要创建 索引,并且一张基本表上不要创建过多的索引。 2)创建索引的原则 索引是建立在基本表列上的对象,通常可参考以下原则: (1)基本表的记录数量越多,记录越长,越有必要创建索引,这对加快查询速度的 效率十分明显。相反,对于记录比较少的基本表而言,创建索引的意义不大。 (2)索引是为了加速查询速度而创建的,但同时会影响基本表的插入、删除或修改

等更新活动的速度,当对基本表的数据进行增,副,改操作时,素引文件也要面之变化,以 保持与基本表的一致。因此只有对那生数据量大,查询规度较高,实时性要求强的基本表要 创建素引,并且一张基本表上不要创建过多的索引。 (3)索引是建立在基本表列上的对象,到底在哪个列上创建索引,通常可改变列在 HEE,RFR,GPN子句中出现的频率。比如,如果某个或某些列经常出现在OgER 醒子句中,那么就可考虑在之上建立需引, 3)不悬创建素引的几种情况 (1)包含太多重复值的列: (2)查询中根少被引用的列: (3)值特别长的列: (4)具有很多ML值的列 (5)需要经常插入、酬除、修改的列。 (6)记录较少的基本表 (7)需要进行频繁、大批量数据更新的基本表 4)素引的类透 索引是创建在基本表列上的一种数据对象,从使用角度可将素引分为以下单列索月 候一素引、复合索引三类:从是否改变基木表记录的物理位置角度可分为聚集索以和非聚集 索引两类。实际的素引通常是这两大类5种方式的组合。 5)聚集和幸聚集素引的对比 聚集素引和非聚集素引是SQL Server中经常用到的两个概含,是丰此即被的关系。 一个单列域复合索引即可以是聚集的也可以是非豪集的。在建立素引时,是采用聚集方式还 是非聚集方式主要应从以下几点考必: (1)存取速度 从建立了聚集索引的表中取出数据要比建立了非聚集素引的表换。但相对面言,聚集 索引会降低向表中插入、酬除和修改数据的速度。 (2)索引的数据 对聚集索引的主要限制是每个表只能建立一个聚集素引。但是一个表可以有不止一个 非聚集索引。实际上,对每个表最多可以建立249个非聚集素引。也可以对一个表同时建立
6 等更新活动的速度,当对基本表的数据进行增、删、改操作时,索引文件也要随之变化,以 保持与基本表的一致,因此只有对那些数据量大、查询频度较高、实时性要求强的基本表要 创建索引,并且一张基本表上不要创建过多的索引。 (3)索引是建立在基本表列上的对象,到底在哪个列上创建索引,通常可改变列在 WHERE、ORDER BY、GROUP BY 子句中出现的频率。比如,如果某个或某些列经常出现在 ORDER BY 子句中,那么就可考虑在之上建立索引。 3)不易创建索引的几种情况 (1)包含太多重复值的列; (2)查询中很少被引用的列; (3)值特别长的列。 (4)具有很多 NULL 值的列 (5)需要经常插入、删除、修改的列。 (6)记录较少的基本表 (7)需要进行频繁、大批量数据更新的基本表 4)索引的类型 索引是创建在基本表列上的一种数据对象,从使用角度可将索引分为以下单列索引、 惟一索引、复合索引三类;从是否改变基本表记录的物理位置角度可分为聚集索引和非聚集 索引两类。实际的索引通常是这两大类 5 种方式的组合。 5)聚集和非聚集索引的对比 聚集索引和非聚集索引是 SQL Server 中经常用到的两个概念,是非此即彼的关系。 一个单列或复合索引即可以是聚集的也可以是非聚集的。在建立索引时,是采用聚集方式还 是非聚集方式主要应从以下几点考虑: (1)存取速度 从建立了聚集索引的表中取出数据要比建立了非聚集索引的表快。但相对而言,聚集 索引会降低向表中插入、删除和修改数据的速度。 (2)索引的数据 对聚集索引的主要限制是每个表只能建立一个聚集索引。但是一个表可以有不止一个 非聚集索引。实际上,对每个表最多可以建立 249 个非聚集索引。也可以对一个表同时建立

素集和非聚集索引。 (3)所需空间 非聚集索引需要较多的硬量空间和内存。 6)创速素引 (1)语句格式: CREATE[NIQUE][C5 TERED]INDEX 0N《表名>([次序]…) (2)语句功能 主要参数的意义是: WIE:为表或视图创建惟一索引(不允许存在索引值相同的两行). LASTERED:聚集素引 索引名:在实际使用时,用户并不需要知道素引名,但在创建阶段,索引名应符合SL Serv©T的命名规则,并且在整个数据库中,素引名不能重复, 次序:每个“列名”后面可以用“次序”指定索引值的排列次序,SC表示升序,ESC 表示降序,默认植是ASC, 7)除素到 (1)语句格式: DROP INDEX《素引名>L,] (2)语句功能: 使用该语句一次可以撒消一个或多个指定的索月,索引名之间川冠号间隔。 7.视图 1)视图的概意 视图看上去同表一械一样。具有一组命名的字段和数据项,但它其实是一个虚拟的表, 在数据库中并不实际存。在视图是由查面数据岸表产生的,它限制了用户能看到和修改的数 据。 7
7 聚集和非聚集索引。 (3)所需空间 非聚集索引需要较多的硬盘空间和内存。 6)创建索引 (1)语句格式: CREATE [UNIQUE][CLUSTERED] INDEX ON ([次序][,[次序]]…) (2)语句功能 主要参数的意义是: UNIQUE:为表或视图创建惟一索引(不允许存在索引值相同的两行)。 CLUSTERED:聚集索引 索引名:在实际使用时,用户并不需要知道索引名,但在创建阶段,索引名应符合 SQL Server 的命名规则。并且在整个数据库中,索引名不能重复。 次序:每个“列名”后面可以用“次序”指定索引值的排列次序,ASC 表示升序,DESC 表示降序,默认值是 ASC。 7)删除索引 (1)语句格式: DROP INDEX [,…n] (2)语句功能: 使用该语句一次可以撤消一个或多个指定的索引,索引名之间用逗号间隔。 7.视图 1)视图的概念 视图看上去同表一模一样,具有一组命名的字段和数据项,但它其实是一个虚拟的表, 在数据库中并不实际存。在视图是由查询数据库表产生的,它限制了用户能看到和修改的数 据

2)视图的作用 视图是由一个或多个基本表导出的表,人们通常把它理解为一组存销在SQL Server 数据库中,经过硕先骗译的SELECT语句。在SCL Server中可以基本表一样对视图进行查询, 剩除,更新操作,国在对视图数据所进行的增加,酬除,修改等更新操作最锋都肤射到相应 的基本表上,并有一定的限制,在实际应用中,尽可隆不要通过视图对记录选行更新操作。 (1)视图是经过顶编译的S过CT语句,存储在数据库服务器端,因此执行视图比从 客户端直接执行S,CT语句速度更快,效率更高一些。 (2)视图属于用户模式范畴,在实际中,一般的用户不一定具有SCT语句方而的 专门知识,从户友好性角度来说,祝图更便于用户使用: (3)利用祝图可以简化的形式表达复秦的5CT语句组,如长套查询等。 3)创建视图 (1)语句格式: CREATE VIEY(《列名>,.,)AS<SCT子句) (2)语句功能: 在当前数据库中根据S辽CT子句的查询结果建立一个视图。 4)副除视图 (1)语句格式: OP VIE国《视图名 (2)语句功能: 到除当前数据库的一个视图。 8,存储过程 1)存储过程的概念 存储过程(Stored Procedure)是一组预先编译好的,以一种可执行的形式水久地存 储在数据中的SL代码,在aster数据库中存储了一些SQLServer事先定义好的系统存储 过程,通常以s印江x做为存储过程的名字。当用户创建数据库时,也会自动生成一些事先 定义好的存储过程,通常以dtx做为名学。使川存储过程的好处可归纳为以下几点:
8 2)视图的作用 视图是由一个或多个基本表导出的表,人们通常把它理解为一组存储在 SQL Server 数据库中,经过预先编译的 SELECT 语句。在 SQL Server 中可以基本表一样对视图进行查询、 删除、更新操作,但在对视图数据所进行的增加、删除、修改等更新操作最终都映射到相应 的基本表上,并有一定的限制,在实际应用中,尽可能不要通过视图对记录进行更新操作。 (1)视图是经过预编译的 SELECT 语句,存储在数据库服务器端,因此执行视图比从 客户端直接执行 SELECT 语句速度更快、效率更高一些。 (2)视图属于用户模式范畴,在实际中,一般的用户不一定具有 SELECT 语句方面的 专门知识,从户友好性角度来说,视图更便于用户使用。 (3)利用视图可以简化的形式表达复杂的 SELECT 语句组,如嵌套查询等。 3)创建视图 (1)语句格式: CREATE VIEW (,...) AS (2)语句功能: 在当前数据库中根据 SELECT 子句的查询结果建立一个视图。 4)删除视图 (1)语句格式: DROP VIEW (2)语句功能: 删除当前数据库的一个视图。 8.存储过程 1)存储过程的概念 存储过程(Stored Procedure)是一组预先编译好的,以一种可执行的形式永久地存 储在数据中的 SQL 代码,在 master 数据库中存储了一些 SQL Server 事先定义好的系统存储 过程,通常以 sp_xxxx 做为存储过程的名字。当用户创建数据库时,也会自动生成一些事先 定义好的存储过程,通常以 dt_xxxx 做为名字。使用存储过程的好处可归纳为以下几点:

(1)执行速度快。 (2)棱块化的程序设计, (3)减少网络流量。 (4)保证系饶的安全性, 2)创建存储过程 (1)语句格式: C家EATE PROC[EDE】《存储过程名>AS (2)语句功能: 创建一个存储过程,(SL语句多数是指利用SQL Server的Transact-SgL编写的程 序。 3)执行存储过程 (1)语句格式 EC,成直接运行存储过程名。 (2)语句功能: 执行当前数据牌中事先定义好的一个存储过程。 4)修改存储过程 (1)语句格式: LTE球0C《存储过程名》AS(SL语句》. (2)语句功能: 修改当的数据库中事先定义好的一个存储过程。 5)副除存储过程 (1)语句格式: PPC《存储过程名>: (2)语句功能: 到除当前数据库中事先定义好的一个存储过程
9 (1)执行速度快。 (2)模块化的程序设计。 (3)减少网络流量。 (4)保证系统的安全性。 2)创建存储过程 (1)语句格式: CREATE PROC[EDURE] AS (2)语句功能: 创建一个存储过程,多数是指利用 SQL Server 的 Transact-SQL 编写的程 序。 3)执行存储过程 (1)语句格式: EXEC ,或直接运行存储过程名。 (2)语句功能: 执行当前数据库中事先定义好的一个存储过程。 4)修改存储过程 (1)语句格式: ALTER PROC AS 。 (2)语句功能: 修改当前数据库中事先定义好的一个存储过程。 5)删除存储过程 (1)语句格式: DROP PROC 。 (2)语句功能: 删除当前数据库中事先定义好的一个存储过程

9,触发器 触发器是一种特殊的存储过程。它基于一个表创建,但可以针对多个表进行操作,与表 紧密相连,可以看作是表定义的一部分,主要用米保证数据的完整性: 在SQL Server中一张表可以有多个触发器,用户可以针对PMTE、ETE、I心RT 语句分别设置触发器,郑么当用户进行OATE、ISER、回ETE等数据体护操作执行后,这 些事先定义好的触发器对象就会被“触发”。并按事先是义好的规则自动执行,触发墨如果 使用不当,会影响数据库的效果,因此初学者慎用。 10,数据操抓语言 S数据定义语言的主要作用是创建存储数据的结构,而数据操飙语言的主要作用则 是向数据库中琉写数据,具体包括增加,副除、修改等操作。 1)插入数据 (1)语句格式 INSERT INTO《表名>((列名>,…)YES((列值),…) (2)语句功能 向一个表中所指定的若干列插入一行记录。当向表中插入一完整的记录时,可以省略 列名表表。 (3)语句常例 INSERT INT0学生表VuES(”2007001',”王图”,”女”,’1987-10-31”,2) 在当前数据库中执行上述语句后,。将在名为“学生表”的数据表中插入一名新月学的 完整信息。由于“学生表”的学号、姓名和性别字段被定义为了字符型(Q型),因此它 们对应的字段值必领用半角的单H号引起米,在SQL.Server中日期型(Dateti©)也需要 用单引号,面数植型(1t)则不需要这样做。 2)副除数据 (1)语句格式 DELETE F《表名>EE《条件) (2)语句功能 10
10 9.触发器 触发器是一种特殊的存储过程,它基于一个表创建,但可以针对多个表进行操作,与表 紧密相连,可以看作是表定义的一部分,主要用来保证数据的完整性。 在 SQL Server 中一张表可以有多个触发器,用户可以针对 UPDATE、DELETE、INSERT 语句分别设置触发器,那么当用户进行 UPDATE、INSER、DELETE 等数据维护操作执行后,这 些事先定义好的触发器对象就会被“触发”,并按事先定义好的规则自动执行。触发器如果 使用不当,会影响数据库的效果,因此初学者慎用。 10.数据操纵语言 SQL 数据定义语言的主要作用是创建存储数据的结构,而数据操纵语言的主要作用则 是向数据库中填写数据,具体包括增加、删除、修改等操作。 1)插入数据 (1)语句格式 INSERT INTO (,… ) VALUES(,…) (2)语句功能 向一个表中所指定的若干列插入一行记录。当向表中插入一完整的记录时,可以省略 列名表表。 (3)语句举例 INSERT INTO 学生表 VALUES(’2007001’,’王丽’,’女’,’1987-10-31’,2) 在当前数据库中执行上述语句后,将在名为“学生表”的数据表中插入一名新同学的 完整信息。由于“学生表”的学号、姓名和性别字段被定义为了字符型(Char 型),因此它 们对应的字段值必须用半角的单引号引起来,在 SQL Server 中日期型(Datetime)也需要 用单引号,而数值型(Int)则不需要这样做。 2)删除数据 (1)语句格式 DELETE FROM WHERE (2)语句功能