SQL-Server数据库总复习2010.doc_第1页
SQL-Server数据库总复习2010.doc_第2页
SQL-Server数据库总复习2010.doc_第3页
SQL-Server数据库总复习2010.doc_第4页
SQL-Server数据库总复习2010.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SQL Server 复习资料第1章 数据库基础知识重点掌握:1、数据库(DB)、数据库管理系统(DBMS)和数据库系统(DBS)的基本概念及三者之间的关系。数据库系统(DBS)是由哪几个部分组成的?什么是DBA?DBS:数据库系统 (DataBase System),是采用了数据库技术的计算机系统,是一个实际可运行的、按照数据库方法存储、维护和向应用系统提供数据支持的系统 ,它是数据库、硬件和软件,以及数据库管理员(DBA)的集合体。DB:数据库(DataBase)DBMS:数据库管理系统(DataBase Management System),是指数据库系统中对数据进行管理的软件系统,它是数据库系统的核心组成部分。可以通过DBMS对DB进行定义、查询、更新及各种控制.三者联系: DBS包含DB和DBMS。2、数据库的概念模型:ER图是设计概念模型的有效工具。ER图中4个基本成分:矩形框、椭圆框、菱形框和直线。能熟练地将ER图转换成关系模式。3、关系模型的基本术语:关系、属性及值域、关系模式及其表示、元组、主键Primary Key、外键Foreign Key4、关系模型的完整性规则:关系模型中可以有3类完整性约束,要求通过实例运用规则(1)实体的完整性规则(2)参照完整性规则(3)用户定义的完整性规则一、选择题1、在数据库系统中,负责对数据库进行管理的有 ( ) A、操作系统和DBA B、DBMS C、操作系统和DBMS D、DBMS和DBA2、下列关于数据库的说法不正确的是( )A、数据库就是长期存储在计算机中、有组织、可共享的数据集合B、数据库中的数据没有任何冗余C、数据库中的数据可同时被多个用户共享D、数据库中的数据是按一定的数据模型组织、描述和存储的3、数据库(DB)、数据库系统(DBS)和数据库管理系统(DBMS)三者之间的关系是( )。A、DBS包括DB 和DBMS B、DBMS包括DB和DBSC、DB包括DBS 和DBMSD、DBS就是DB,也就是DBMS4、DBMS目前最常用的模型是( )。A、网状模型 B、层次模型C、面向对象模型 D、关系模型5.( )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。ADBMS BDB CDBS DDBA6SQL Server 2005是一个( )的数据库系统。A网状型 B.层次型 C.关系型 D.以上都不是12DBA是( )A.操作系统 B.数据库管理系统 C.数据库 D. 数据库管理员7、有个学生关系,其关键字为学号;一个课程关系,其关键字为课程号;一个选修关系,其关键字为学号和课程号的组合,则学号和课程号分别为该关系的( )A、外关键字(外键) B、主辅关键字 C、主关键字 D、什么都不是7、包含在任何一个候选关键字中的属性称为( ),不包含在任何一个侯选关键字中的属性称为( )。A、主属性 B、次属性 C、非主属性 D、外属性8、一个同学可以借阅多本图书,一本图书可能有多个同学借阅,学生和图书之间的联系为( )。A、一对多 B、多对多 C、多对一 D、一对一9、关系中的元组和属性分别对应二维表中的( B )和( A )。A、列 B、行 C、记录 D、结构10、关系模型中,一个关键字是( )。A、可由多个任意属性组成B、至多由一个属性组成C、可由一个或多个其值能唯一标识该关系模式中任何元组的属性组成D、以上都不是11、同一个关系模型的任意两个元组值( )。A、不能全同 B、可全同 C、必须全同 D、以上都不是12、一个关系数据库文件中的各条记录( )。A、前后顺序不能任意颠倒,一定要按照输入的顺序排列B、前后顺序可以任意颠倒,不影响库中的数据关系C、前后顺序可以任意颠倒,但排列顺序不同,统计处理的结果就可能不同D、前后顺序不能任意颠倒,一定要按照关键字段值的顺序排列13、关系模型的任何属性( )。A、不可再分 B、可再分C、命名在该关系模式中可以不惟一 D、以上都不是*14、若关系R1NF,且它的每一非主属性都完全函数依赖于主键,则称R属于( B )。A、第一范式 B、第二范式 C、第三范式 D、第四范式*15、若关系R2NF,且它的每一非主属性都不传递函数依赖于主键,则称R属于(C )。A、第一范式 B、第二范式 C、第三范式 D、第四范式二、填空题 1、为保证多个用户可同时共享数据库中的数据,数据库管理系统(DBMS)必须提供数据库的安全性控制、数据库的完整性控制、数据库恢复、并发控制和事务支持的功能。2、客观存在并可相互区别的事物称为 实体 。3、关系模型的基本结构是 表 ,它又称为 关系 ;关系模型中数据之间的联系是通过 公共属性 实现的。4、关系模型用表格形式结构来表示实体类型和实体之间的联系。关系在用户看来是一个表,记录(元组)是其中的 行 ,属性是其中的 列 。5、一个关系模式的定义主要包括关系名、属性名、属性类型、属性长度和关键字。6、关系数据库中可命名的最小数据单位是 属性名 。7、关系模式是关系的 框架 ,相当于 记录格式 。8、在一个实体表示的信息中,称 能唯一标识实体的属性或属性组为关键字。9、已知系(系编号,系名称、系主任、电话、地点)和学生(学号,姓名,性别,入学日期,专业,系编号)两个关系,系关系的主关键字是系编号,学生关系的主关键字是 学号 ,学生关系的外关键字是 系编号。10.完整性约束包括实体完整性、_参照_完整性和用户定义完整性。_实体完整性用于保证数据库中数据表的每一个特定实体的记录都是惟一的。*7、关键的规范化是对关系的 分解 过程。*8、在1NF,2NF,3NF之间,相互是一种 包含 的关系。*9、在一个关系R中,若每个数据项都是不可再分割的,那么R一定属于第一范式。*10、设有关系R(工号,姓名,工种,定额),则R属于第二 范式,将其转化为第三范式结果应为R1(工号,姓名,工种)和R2(工种,定额)。关系R属于第二范式而不属于第三范式的说明:关系R的主键是工号,主键是单属性不可能存在部分函数依赖 R2NF 又关系R中工号工种,工种工号,工种定额,关系R中存在传递函数依赖,关系R不属于第三范式。三、数据库概念设计题说明下列ER图中,矩形、椭圆和菱形各表示什么?从上面的ER图中,回答学生的主键和课程的主键各是什么?试将下面的ER图转换成关系模式。(1)学分课程名姓名学号成绩mn选修课程学生年龄课程号学时性别班级答:用 表示实体 用 表示属性用表示实体间联系 学生的主键是学号,课程的主键是课程号。上面的ER图转换成三个关系: 学生(学号,姓名,性别,年龄,班级)课程(课程号,课程名,学分,学时)选修(学号,课程号,成绩) 在选修关系中,学号、课程号分别称为选修关系的外键。2、下面的ER图反映实体间什么联系?实体主键各是什么?请把该ER图转换为关系模式。班编号班名姓名学号学生属于班级n1地址年龄性别答:上面的ER图表示的是学生实体与班级实体间的联系是多对一联系。转换为关系模式应该有2个。请同学们自己转换关系模式。第2章 SQL Server 2005概述1、了解SQL Server 2005体系结构的4个组成部分;Reporting Services报表服务Analysis Services分析服务Integration Services 集成服务Database Engine 数据库引擎2、SQL Server 2005的版本;(6个不同的版本)企业版:功能最齐全、性能最优标准版:适合于中小型企业的数据管理开发人员版:适合于应用程序开发人员工作组版:入门级的数据库产品精简版:是一个免费、易用且便于管理的数据库版企业评估版:运行时间只有120天。3、了解配置服务器、查看服务器属性第3章 创建和管理SQL Server2005数据库1、SQL Server 2005 的两种数据库类型,系统数据库和用户数据库;系统数据库: master、tempdb、msdb、ReSource和modelmaster数据库是SQL Server的核心,如果该数据库被损坏,SQL Server将无法正常工作。msdb数据库是一个与SQL Server Agent服务有关的数据库model数据库是所有数据库的模板,当执行CREATE DATABASE语句时,将通过复制 model 数据库中的内容来创建数据库的第一部分。Resource数据库是隐藏、只读的,包含了SQL Server 2005中的所有系统对象Tempdb数据库 保存所有临时表和临时存储过程用户数据库:如示例数据库AdventureWorks,还有用户自己创建的数据库2、数据库的组成;一个SQL Server 2005的数据库由多个文件组成。SQL Server 2005中每个数据库包括主数据库文件(.mdf)、辅助数据库文件(.ndf)和事务日志文件(.ldf)。一个SQL Server 2005的数据库至少应包含一个主数据库文件和一个事务日志文件。每个数据库文件有两个名称: 逻辑文件名:(logical_file_name):是在所有 Transact-SQL 语句中引用文件时所使用的名称。物理文件名(os_file_name):是包括目录路径的物理文件名。是操作系统下的文件名。文件组:可以将数据文件分成文件组。有两种类型的文件组:主文件组(Primary)和用户定义文件组。注意:日志文件不包括在文件组内。3. 掌握建立数据库的方法;用图形界面方式创建和用SQL语句建立: CREATE DATABASE 数据库名练习题一、选择题1、当执行CREATE DATABASE语句时,将通过复制( )数据库中的内容来创建数据库的第一部分。 A、Master B、Msdb C、Model D、Tempdb2、主数据文件的扩展名是( )A、.mdf B、.ndf C、.ldf D、.pdf3、在SQL SERVER中不是系统数据库的是( )。A. Master B. Model C. Tempdb D. Pubs4Microsoft SQL Server 2005系统由四个部分组成,这四个部分被称为4个服务,其中核心服务是( )。A.数据库引擎 B.Analysis ServicesC.Reporting Services D.Integration Services5下列哪个不是SQL Server数据库文件的后缀。( )A.mdf B.ldf C.tif D.ndf6下面描述错误的是( )。A.每个数据文件中有且只有一个主数据文件。B.日志文件可以存在于任意文件组中。C.主数据文件默认为在primary文件组。D.文件组是为了更好的实现数据库文件组织。二、填空题1、每个SQL Server 2005的数据库至少具有两个操作系统文件:一个数据文件和一个日志文件。2、每个数据库文件有两个名称,分别是逻辑文件名和一个物理文件名。第4章 创建和管理SQL Server 2005数据表1. 掌握建立表的方法,特别注意用SQL语句建立约束的方法,6种约束主键约束CREATE TABLE 学生表(学号 varchar(11) primary key,空值约束 姓名 varchar(20) not null,默认约束 性别 char(2) default 男, 出生日期 smalldatetime, 入学日期 smalldatetime, 院系名称 varchar(20),唯一性约束 身份证 char(18) UNIQUE) 外键约束 CREATE TABLE 选课表( 学号 varchar(11) FOREIGN KEY references 学生表(学号), 课程号 varchar(6) FOREIGN KEY references 课程表(课程号), 检查(check)约束 分数 int check(分数 between 0 and 100), primary key(学号,课程号)主键约束)2、标识列(IDENTITY):需要指定两个值:种子值和增量值,标识列的类型定义为int或bigint类型。3、一般掌握修改表结构和删除表的方法: ALTER TABLE DROP TABLE4、掌握INSERT、UPDATE、DELETE语句的格式和功能(1)INSERT语句的基本语法:INSERT INTO 表名 (列名1 , 列名2, , 列名n)VALUES (值1, 值2 , , 值n)有时用:INSERT INTO 表名 (列名1, 列名2, , 列名n) SELECT 语句 (2)UPDATE语句基本语法:UPDATE 表名 SET 列名1值1 , 列名2值2, , 列名n值nWHERE 条件表达式(2)DELETE语句基本语法:DELETE FROM 表名 WHERE 条件表达式练习题一、选择题1、设学生表结构是:学号 varchar(11) primary key, 姓名 varchar(20) not null, 性别 char(2) default 男, 出生日期 smalldatetime, 入学日期 smalldatetime, 院系名称 varchar(20), 身份证 char(18)需要插入1988年1月2日出生的张三的记录,若执行Insert into 学生表(学号,姓名,院系名称,出生日期) Values(20080101,张三,计算机系,1988-1-2)则命令( )。A、编译出错 B、编译通过但不能插入 C、能插入出生日期 D、说不准2、要在学生表中增加一个日期型字段B,应该用( ) A、INSERT INTO 学生表 ADD B B、ALTER 学生表 ADD B DATETIME C、ALTER TABLE 学生表 ADD B DATETIME D、ALTER TABLE 学生表 ADD B DATE()3、要在学生表中删除一条字符类型字段A的值是字符串B的记录,应该用( )A、DELETE FROM 学生表 WHERE A=B B、ALTER 学生表 DROP A C、DELETE FROM 学生表 WHERE A=BD、DELETE FROM 学生表 WHERE A IS B 4、限制输入到列的值的范围,应使用( )约束。A. CHECKB. PRIMARY KEY C. FOREIGN KEY D. UNIQUE第5章 数据查询SELECT语句一般格式为:SELECT *| ALL|TOP n | DISTINCT , FROM , WHERE GROUP BY HAVING ORDER BY ASC | DESC SELECT语句练习题:实验原始数据:Studentmaneger数据库,有三个表:学生表记录24条,计算机系22,财经系1,机电系1;课程表记录7条 选课表记录77条 1、对单个表的查询,查询结果已给出,请同学们将命令补充完整。(1) 查询财经系全体学生的信息。Select * from 学生表where 院系名称=财经系 (2) 查询姓张的学生的学号和姓名 select 学号,姓名from 学生表where 姓名like 张%(3) 查询每门课的学分select 课程名,学分from 课程表(4) 查询平均分大于等于90分的学生学号和平均分select 学号,avg(分数) as 平均分from 选课表group by 学号having avg(分数)=90(5) 查询平均分最高的前三名学生学号和平均分select top 3 学号,avg(分数) as 平均分from 选课表group by 学号order by avg(分数)desc(6) 查询学号最后一位为5的学生Select * from 学生表where 学号like %5 2、对多个表的连接或嵌套查询:(7) 查询学生的学号、姓名,选修课程名称和成绩,先按课程号升序排列,相同课程按分数降序排列use StudentManagerselect 学生表.学号,学生表.姓名,课程表.课程名,选课表.分数from 学生表inner join 选课表 on 学生表.学号=选课表.学号inner join 课程表 on 选课表.课程号=课程表.课程号order by 选课表.课程号 ,分数 desc 请同学们修改为用Where子句的连接查询select 学生表.学号,学生表.姓名,课程表.课程名,选课表.分数from 学生表, 选课表, 课程表where 选课表.课程号=课程表.课程号 and 学生表.学号=选课表.学号order by 选课表.课程号,分数desc (8) 查询计算机系总分前5名的学生信息use StudentManagerselect top 5 学生表.学号,姓名 sum(分数) AS 总分from 学生表inner join 选课表 on 学生表.学号=选课表.学号where 院系名称=计算机系可以换成总分group by 学生表.学号,姓名order by sum(分数) desc请同学们修改为用Where子句的连接查询select top 5 学生表.学号,姓名,sum(分数) AS 总分from 学生表, 选课表where 学生表.学号=选课表.学号and 院系名称=计算机系group by 学生表.学号,姓名order by 总分desc(9) 查询学分大于等于经济法的课程select 课程名from 课程表where 学分=(select 学分from 课程表where 课程名= 经济法)(10) 查询没有选修任何课程的学生信息select *from 学生表where 学号 not in(select学号from 选课表)(11) 查询选修了 ASP.NET课程且成绩在85分以上(包括85分)的学生的学号、姓名和分数use StudentManagerselect 学生表.学号,学生表.姓名,选课表.分数from 学生表inner join 选课表 on (学生表.学号= 选课表.学号)inner join 课程表 on (课程表.课程号= 选课表.课程号)where 选课表.分数=85 and 课程名=ASP.NET 请同学们修改为用Where子句的连接查询select 学生表.学号,学生表.姓名,选课表.分数from 学生表, 选课表, 课程表where 学生表.学号= 选课表.学号and 课程表.课程号= 选课表.课程号and 选课表.分数=85 and 课程名=ASP.NET(12) 查询选修课程超过4门的学生use studentmanagerselect *from 学生表where 学号 in ( select 学号 from 选课表 group by 学号 having count(*)4) (13) 查询有课程考试不及格的学生use StudentManagerselect 学生表.学号,学生表.姓名,学生表.性别,学生表.院系名称from 学生表 inner Join 选课表 on (学生表.学号= 选课表.学号)where 选课表.分数= 59或者用下列方法:select *from 学生表where 学号 in ( select 学号 from 选课表 where 分数60)(14) 查询有学生考试不及格的课程(与上例相同,请用第二种方法作)use StudentManagerselect 课程表.课程号,课程表.课程名from 课程表inner Join 选课表 on (课程表.课程号= 选课表.课程号)where 分数= 59 (15) 查询考试分数两门不及格的学生人数 use StudentManagerselect count(*) as 两门课不及格的人数from 学生表 where 学号 in(select 学号from 选课表where 分数60group by 学号having count (*) = 2)第 6 章 Transact-SQL语言1. 掌握字符数据类型:固定长度字符Char 、 Nchar、可变长度字符Varchar、Nvarchar 数字类型:int、smallint、money、smallmoney 2、局部变量(Local Variable)和全局变量(Global Variable)局部变量必须以开头,而且必须先用DECLARE命令说明后才可使用,其说明形式如下:DECLARE 变量名 变量类型 , 变量名 变量类型注意:必须使用 SELECT 或 SET 命令来设定变量的值,其语法格式如下: SELECT 局部变量 = 字段、变量值或表达式 SET 局部变量 = 变量值或表达式3、全局变量不是由用户的程序定义的,它们是在服务器级定义的。只能使用预先说明及定义的全局变量。引用全局变量时,必须以开头。4、运算符 增加模糊匹配查找运算符 LIKE 模糊查询的匹配符 %和_5、聚合函数 SUM、AVERAGE、MAX、MIN、COUNT等聚合函数经常在SELECT语句中出现,也常常和GROUP BY子句配合使用,例如:(1)统计每名学生的考试门数。SELECT 学号,COUNT(*) as 考试门数FROM 选课表GROUP BY 学号(2)统计多少学生参加考试。select count(*) as 考试人数 from 学生表where 学号in (SELECT distinct 学号FROM 选课表)(3)统计课程号是03001的平均成绩和最高成绩SELECT AVG(分数) as 平均成绩, MAX(分数) as 最高成绩FROM 选课表Where 课程号=03001(4)统计学号=063001032的平均分数、考试的课程门数。DECLARE fenshu real , x intSet x=0SELECT fenshu=Avg(分数), x=count(*) FROM 选课表 WHERE 学号=063001032Print 平均分数为 +convert(char(3),fenshu)+,共+convert(char(1),x)+门课6.掌握以下函数:(1)字符串函数(Left,right,Ltrim,len,Lower,Upper)(2)日期和时间函数GETDATE():返回系统日期函数DAY、MONTH、YEAR:日期部分值函数DATEPART :返回指定日期的部分值函数DATEADD:指定日期加上一个时间间隔之后的日期DATEDIFF:返回两个指定日期的部分间隔值 例如:SELECT dateadd(dd,120,getdate()SELECT DATEDIFF(dd,getdate(),2010-2-14)(3)随机函数RAND格式: RAND(seed) 产生01之间的随机小数(4)舍入函数ROUND格式: ROUND(数值表达式,小数点后位数,0或非0)当第三参数是0或省略时,表示四舍五入。例如:SELECT round(RAND()*10,0) 产生什么范围的随机数?0,10(5)求字符串长度函数LEN ,不包含尾部空格例如:SELECT len( hello )(6)求子串函数LEFT、RIGHT、SUBSTRING (7)字符串转换函数ASCII、CHAR、LOWER、UPPER 、STR (8)去空格函数LTRIM、RTRIM(9)数据类型转换函数CAST和CONVERT n CAST (表达式 AS 数据类型 (长度) )n CONVERT ( 数据类型 ( 长度) , 表达式 , style ) 练习题1、下列说法中正确的是( )A. SQL中局部变量可以不声明就使用B. SQL中全局变量必须先声明再使用C. SQL中所有变量都必须先声明后使用D. SQL中只有局部变量先声明后使用,全局变量是由系统提供的用户不能自己建立2、用于模糊查询的匹配符是( )。A. ? B. C. % D. *3在SQL Server 2005中,下列变量名正确的是( A )。Asum Bj Csum D4kk 4.用于求系统日期的函数是( )。AYEAR() BGETDATE() CCOUNT() DSUM()4用SELECT进行模糊查询时,可以使用like或not like匹配符,但要在条件值中使用%或下划线等通配符来配合查询。并且,模糊查询只能针对_字符串_类型字段查询。5. 语句SELECT len( 你 是BigTiger ) 的执行结果是:_。6. 语句 select upper(beautiful) , ltrim ( 北京欢迎你!) 的执行结果是: _和_。7. SQL Server 2005局部变量名字必须以_开头,而全局变量名字必须以_开头。第 7 章 视 图1、创建视图的基本语法格式:CREATE VIEW ( , ) AS WITH CHECK OPTION 说明:其中,子查询可以是任意复杂的SELECT语句,但通常不允许含有ORDER BY子句。如果包含ORDER BY子句的话,必须同时包含TOP子句。WITH CHECK OPTION表示对视图进行UPDATE、INSERT和DELETE操作时要保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)。2、了解利用视图修改数据时的特点子查询涉及多个基表时,不可用视图更新多个表字段。注意每次修改只能影响到一个基表,不能修改计算得到的字段。1.下列说法正确的是( ) 。A. 视图是观察数据的一种方法,只能基于基本表建立。B. 视图是虚表,观察到的数据是实际基本表中的数据。C. 通过视图可以修改计算得到的字段。D. 通过视图可以同时修改两个或多个基本表中的数据。2、在SQL中,建立视图用的命令是 ( )。A.CREATE SCHEMA B.CREATE TABLE C.CREATE VIEW D.CREATE INDEX3关于视图下列哪一个说法是错误的( )。A. 视图是一种虚拟表 B. 视图中也存有数据 C. 视图也可由视图派生出来 D. 视图是保存在数据库中的SELECT查询4. _是由一个或多个数据表(基本表)或视图导出的虚拟表。第8章 索引1. 掌握索引的分类及特点,索引的基本操作;索引的分类:索引分为聚集索引和非聚集索引 聚集索引(Clustered) :使用表中的一列或多列来排序记录,然后再重新存储在磁盘上,表的物理行顺序和聚集索引中行的顺序一致。一个表只能有一个聚集索引。 非聚集索引(Nonclustered):存储指向表数据的指针,称为行定位器。非聚集索引的表中的数据由存储指针的索引页构成 用SQL语句建立索引的方法:CREATE UNIQUE CLUSTERED INDEX id_idx ON 学生表(学号)语句作用:在“学生表”的“学号”列上创建唯一聚集索引CREATE INDEX name_idx ON 学生表(姓名)语句作用:在“学生表”的“姓名”列上创建非聚集索引。练习题1.在SQL Server 2005中,索引的顺序和数据表的物理顺序相同的索引是( )。A. 聚集索引 B、非聚集索引 C、主键索引 D、唯一索引 2.要删除mytable表中的myindex索引,可以使用( )语句。A. DROP myindex B.DROP mytable.myindex C. DROP INDEX myindex D.DROP INDEX myindex ON mytable3使用索引下列哪个说法是正确的( )。A. 节省磁盘空间 B. 缩短查询时间C. 在执行插入、修改、删除时节省时间 D. 与表无关4建立索引的目的是( )。A降低SQL Server数据检索的速度B与SQL Server数据检索的速度无关C加快数据库的打开速度D提高SQL Server数据检索的速度第9章 存储过程1. 掌握用SQL语句定义与调用存储过程;n SQL语句定义存储过程CREATE PROCEDURE procedure_name parameter1 输入参数类型=默认值 , parameter2 输出参数类型 OUTPUTAS SQL语句n SQL语句调用存储过程EXEC procedure_name 输入参数实参值,输出参数 OUTPUT,练习题1、定义不带参数过程getsc90create procedure getsc90as select * from SC where Grade90调用过程:Exec getsc902、定义带输入参数过程create proc getSCminmax minfs int, maxfs int as select * from SC where Grade between minfs and maxfs 调用过程:Exec getSCminmax 70,803、定义带输入、输出参数过程create proc getSCMaxMin xuehao varchar(12), maxfs int output, minfs int output as select * from SC where Sno=xuehao select maxfs=max(Grade) from SC where Sno=xuehao select minfs=min(Grade) from SC where Sno=xuehao调用过程:declare x1 int,x2 realexec getSCMaxMin 20080106 ,x1 output,x2 outputselect x1 as 最高分数,x2 as 最低分数第10章 触发器和游标1、触发器:主要掌握DML触发器的功能:主要是通过UPDATE、INSERT、DELETE事件进行触发而被执行的存储过程。例如,当对某一个表进行诸如UPDATE、INSERT、DELETE这些操作时,SQL Server就会自动执行触发器所定义的T-SQL语句。触发器可以建立在表或视图上。按照触发器触发事件的操作时间划分,可以把DML触发器分为AFTER触发器和INSTEAD OF触发器。2、SQL Server 2005在为每个触发器都定义了两个虚拟表,一个是插入表(inserted),一个是删除表(deleted)。触发器表和deleted 、inserted表结构相同。3、游标:SQL Server 2005通过游标提供了对一个结果集进行逐行处理的能力。游标也可以被看作是一个表中的记录指针,该指针与某个查询结果相联系。使用游标示例:DECLARE Student_Cursor CURSOR FORSELECT Sname,Sfzh FROM Student -定义游标DECLARE Sname char(8),Sfzh Char(18) -定义局部变量OPEN Student_Cursor -打开游标FETCH Next FROM Student

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论