文档库 最新最全的文档下载
当前位置:文档库 › 数据库游标的使用

数据库游标的使用

数据库游标的使用
数据库游标的使用

--1、为什么要使用游标?

select * from SC

* 从某个查询结果集中逐行地读取,对每一行进行相同或不同的操作;

而不是一次对整个结果集进行同一操作;

--2、什么是游标?

游标是与一条select语句相关联;

游标由select查询语句的结果集和结果集中指向特定记录的游标位置组成;

--3、怎么使用游标?

(1)声明游标declare

declare 游标名cursor

[forward_only | scroll]

.....

for select语句

(2)打开游标open

open 游标名

(3)读取数据fetch

fetch next | first | last | absolute n | relative n

from 游标名

[into 变量, ....]

* 如果fetch next是第一次读取游标中的数据,则返回的是结果集中的第一行;而不是第二行;

* @@fetch_status

(4)关闭游标close

close 游标名

(5)释放游标资源deallocate

--eg1:

--声明游标

declare curStudent cursor scroll --注意理解forward_only 与scroll的区别!

for select Sno, Sname, Ssex from Student

--打开游标

open curStudent

--读取数据

declare @Sno char(5), @Sname char(8), @Ssex char(2)

fetch next from curStudent into @Sno, @Sname, @Ssex --第一行

while @@fetch_status = 0

begin

print '学号=' + @Sno + ';姓名=' + @Sname + ';性别=' + @Ssex

fetch next from curStudent into @Sno, @Sname, @Ssex

end

fetch first from curStudent into @Sno, @Sname, @Ssex

print '第1条记录是:'

print '学号=' + @Sno + ';姓名=' + @Sname + ';性别=' + @Ssex

fetch absolute 3 from curStudent into @Sno, @Sname, @Ssex

print '第3 条记录是:'

print '学号=' + @Sno + ';姓名=' + @Sname + ';性别=' + @Ssex

fetch last from curStudent into @Sno, @Sname, @Ssex

print '最后一条记录是:'

print '学号=' + @Sno + ';姓名=' + @Sname + ';性别=' + @Ssex

--关闭游标

close curStudent

--释放游标

deallocate curStudent

--eg2:

declare curSC cursor for select Sno, Cno, Grade from SC

open curSC

declare @Sno char(5), @Cno char(1), @Grade int

fetch next from curSC into @Sno, @Cno, @Grade

while @@fetch_status = 0

begin

if @Grade between 50 and 60

update SC set Grade = Grade + 10 where Sno = @Sno and Cno = @Cno fetch next from curSC into @Sno, @Cno, @Grade

end

close curSC

deallocate curSC

--eg3:多行记录的触发器

alter trigger tri_insertSC on SC for insert

as

select * from inserted

select * from deleted

declare curInserted cursor for select * from inserted open curInserted

fetch next from curInserted

while @@fetch_status = 0

begin

print '触发器被触发了!'

fetch next from curInserted

end

close curInserted

deallocate curInserted

--测试触发器

select * into temp from SC where 1 = 2

insert into temp values('95003', '1', 100)

insert into temp values('95003', '2', 80)

insert into temp values('95004', '1', 70)

select * from temp

insert into SC select * from temp

select * from sc

delete from SC where Sno in('95003', '95004')

现场考试答案数据库原理 ( 第3次 )

数据库原理 ( 第3次 ) 一、填空题(本大题共30分,共 10 小题,每小题 3 分) 1. 面向问题域的分析方法是从问题域、系统边界、系统责任三方面出发,通过调查企事业单位业务工作流程入手。 2. 在SQL语句中,使用CREATE INDEX 语句来建立索引。 3.在文件组织结构中,定长记录结构就是存储数据的文件记录采用统一的长度。 4. 在对象模型中对象是现实世界中实体的模型化,与记录概念相仿,但远比记录复杂。 5. 我们可以通过优先图来判定调度是否冲突可串行化。 6. 巴赫范式由Boyce和Codd提出的,比3NF又进了一步,通常认为是修正的第三范式。 7. PowerBuilder 中使用的编程语言是PowerScript。 8. 不含多余属性的超键称为候选键。 9. 用OPEN语句打开游标时,游标指针指向查询结果的 _第一个记录_ 10. E-R模型是一种语义模型,主要体现在模型力图去表达数据的意义。 二、简答题(本大题共40分,共 8 小题,每小题 5 分) 1. 将简述画数据流程图应该注意的注意事项。 答:(1)层次的划分 (2)语法的正确性 (3)可读性 (4)确定系统边界。 2. 网状数据库和层次数据库的缺点。 答:网状数据库和层次数据库已经很好地解决了数据的集中和共享问题,但是在数据独立性和抽象级别上仍有很大欠缺。用户在对这两种数据库进行存取时,仍然需要明确数据的存储结构,指出存取路径。 3.好的关系模式应具备哪些条件? 答:(1)尽可能少的数据冗余。 (2)没有插入异常。 (3)没有删除异常。 (4)没有更新异常。 4.请描述时间戳排序协议的优点。 答:⑴满足该协议的任何调度都是冲突可串行化的,这主要是因为该协议是按照事务的时间戳顺序来处理事务之间的冲突操作; ⑵满足该协议的调度无死锁,因为冲突的事务被回滚重启并赋予新的时间戳,而不是等待执行。 5. 简述定长记录删除一条记录可以采用的策略。 答:(1)删除一条记录时,顺序移动其后的所有记录。 (2)删除一条记录时,将文件的最后一条记录移动到被删记录的位置。 (3)删除一条记录时,并不着急移动记录,而是将其空间加入空闲记录列表。 6. 进行概念结构设计,将一个概念划分为实体或属性的原则是什么?

大数据库原理复习题2017

数据库原理及应用 复习题 2017-4-28 一、选择题 1.数据库系统与文件系统的主要区别是[ ] A.数据库系统复杂,而文件系统简单 B.文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决 C.文件系统只能管理程序文件,而数据库系统能够管理各种类型的文件 D.文件系统管理的数据量较少,而数据库系统可以管理庞大的数据量 2.数据库系统中,对用户使用的数据视图的描述称为[ ] A.概念模式 B.模式 C.存储模式 D.外模式 3.以下错误的表达是[ ] A.数据受数据类型和取值围的约束; B.数据有定性表示和定量表示之分; C.数据是信息的载体,并具有多种表现形式; D.数据有“型”和“值”之分,“型”就是数据的规模或大小; 4.设有关系R(A,B,C)和关系S(B,C,D),那么与R?S等价的关系代数表达式是[ ] 1=2 A.σ1=5(R?S) B.σ1=5(R×S) C.σ1=2(R?S) D.σ1=2(R×S) 5.结构化查询语言SQL是一种关系数据库语言,其主要功能有[ ] A.数据定义、数据操作、数据安全B.数据安全、数据编辑、数据并发控制 C.数据定义、数据操作、数据控制D.数据查询、数据更新、数据输入输出 6.概念结构设计阶段得到的结果是[ ] A.数据字典描述的数据需求 B.E-R图表示的概念模型 C.某个DBMS所支持的数据模型 D.包括存储结构和存取方法的物理结构 7.关系R和S进行自然连接时,要求R和S含有一个或多个公共[ ] A.元组 B.行 C.记录 D.属性 8.若事务T对数据对象A加上X锁,则[ ] A.只允许T修改A,其他任何事务都不能再对A加任何类型的锁 B.只允许T读取A.其他任何事务都不能再对A加任何类型的锁 C. 只允许T读取和修改A,其他任何事务都不能再对A加任何类型的锁 D.只允许T修改A,其他任何事务都不能再对A加X锁

陶宏才《数据库原理及设计》第3版课后习题答案

第一章 一、解答题 1、解释术语:数据、数据库、数据管理系统、数据库系统、数据库应用系统、视图、数据字典。P19-20 数据:是描述现实世界中各种具体事物或抽象概念的、可存储并具有明确意义的信息。 数据库:是相互关联的数据集合。 数据管理系统:是一个通用的软件系统,由一组计算机程序构成。 数据库系统:是一个用户的应用系统得以顺利运行的环境。 数据库应用系统:主要指实现业务逻辑的应用程序。 视图:指不同的用户对同一数据库的每一种理解称为视图。 数据字典:用于存储数据库的一些说明信息的特殊文件。 2、简述数据抽象、数据模型及数据模式之间的关系P26 数据模型是数据抽象的工具,是数据组织和表示的方式; 数据模式是数据抽象利用数据模型,将数据组织起来后得到的结果; 总而言之,数据模式是数据抽象的结果。 3、DBMS应具备的基本功能有哪些?P9 数据独立性、安全性、完整性、故障恢复、并发控制 4、数据库中对数据最基本的4种操作是什么?P24 增加、删除、修改、查询 5、评价数据模型的3个要素是什么?P12 1)能够真实地描述现实系统 2)能够容易为业务用户所理解 3)能够容易被计算机实现 6、数据模型的3个要素是什么?P24 数据结构、数据操作、数据约束 7、简述SQL语言的使用方式。P13 一般有两种方式:SQL的交互式使用;用户通过开发应用系统与RDBMS交互。 8、在数据库设计时,为什么涉及到多种数据模型?P12 因为目前商用化DBMS没有一个能够同时满足3项要求,为此,人们不得不走折中路线,设计一些中间的数据模型。 9、数据库系统中的用户类型有哪些?P28-29 最终用户、数据库应用开发人员、数据库管理员、其他与数据库系统有关的人员。11、简述OLTP与OLAP间的区别。P42-43 OLTP(联机事务处理)主要面向日常的业务数据管理,完成用户的事务处理,提高业务处理效率,通常要进行大量的更新操作,同时对响应时间要求比较高。 OLAP(联机分析处理)注重数据分析,主要对用户当前及历史数据进行分析,辅助领导决策,通常要进行大量的查询操作,对时间的要求不太严格。 二、单项选择题 1、( A )不是SQL语言的标准。P156 A.SQL-84 B.SQL-86 C.SQL-89 D.SQL-92 2、( D )数据模型没有被商用DBMS实现。P26 A.关系模型 B.层次模型 C.网状模型 D.E-R模型 3、( C )不是数据模型应满足的要求。P12 A.真实描述现实世界 B.用户易理解

Oracle数据库游标在包中的使用

--创建学员信息表 create table stuInfo ( stuId varchar2(15) not null, --学员Id,主键 stuName varchar2(10) not null, --学员姓名 stuNo varchar2(10) not null, --学号,外键应用stuMarks的stuNo stuAge int not null, --年龄 stuAddress varchar2(100) default('中国') not null,--家庭住址 stuEmail varchar2(100) not null --电子邮箱 ); alter table stuInfo add constraint PK_stuId primary key(stuId); alter table stuInfo add constraint CK_stuAge check(stuAge between 18 and 40); alter table stuInfo add constraint CK_stuEmail check(stuEmail like '%@%'); --创建序列 create sequence SQ_ID increment by 1 start with 10000; --为学员信息表创建触发器TG_STUID create or replace trigger TG_STUID before insert on stuInfo for each row begin select 'SID'||SQ_ID.Nextval into :new.stuId from dual; end; --向学员信息表中添加数据 insert into stuInfo(stuName,stuNo,stuAge,stuAddress,stuEmail) values ('张飞','s1t0102',30,'三国',''); insert into stuInfo(stuName,stuNo,stuAge,stuAddress,stuEmail) values ('关羽','s1t0830',35,'蜀国',''); insert into stuInfo(stuName,stuNo,stuAge,stuAddress,stuEmail) values ('马超','s2t1326',25,'三国',''); insert into stuInfo(stuName,stuNo,stuAge,stuAddress,stuEmail) values ('刘备','s3t0403',40,'蜀国',''); insert into stuInfo(stuName,stuNo,stuAge,stuAddress,stuEmail) values ('诸葛亮','s2t1521',21,'蜀国',''); insert into stuInfo(stuName,stuNo,stuAge,stuAddress,stuEmail) values ('刘翔','s3t0706',29,'上海',''); insert into stuInfo(stuName,stuNo,stuAge,stuAddress,stuEmail) values ('曹操','s3t0915',34,'魏国',''); insert into stuInfo(stuName,stuNo,stuAge,stuAddress,stuEmail) values ('孙权','s1t1123',32,'东吴',''); insert into stuInfo(stuName,stuNo,stuAge,stuAddress,stuEmail) values ('董卓','s2t0507',35,'三国',''); insert into stuInfo(stuName,stuNo,stuAge,stuAddress,stuEmail) values

《数据库原理》期末试卷及答案(A)

《数据库系统原理》期末试题及答案 一、单项选择(本大题共20小题,每题1分,共20分。在每小题列出的4个选项中只有一个是符合题目要求的,请将其代码填在题后的括号内。错选或未选都无分。) 1、数据库管理系统是数据库系统的核心,它负责有效地组织、存储、获取或管理数据,属于一种【】,是位于用户和操作系统之间的一层数据管理软件。 A、系统软件 B、工具软件 C、应用软件 D、教学软件 2、数据模型的三要素是指【】。 A、数据结构、数据对象和共享 B、数据结构、数据操作和数据控制 C、数据结构、数据操作和完整性 D、数据结构、数据操作和完整性约束条件 3、用有向图结构表示实体类型及实体间联系的数据模型是【】。 A、关系模型 B、层次模型 C、网状模型 D、面向对象模型 4、关系模型概念中,不含有多余属性的超键称为【】。 A、候选键 B、对键 C、内键 D、主键 5、SQL语言是【】。 A、高级语言 B、非过程化语言 C、汇编语言 D、宿主语言 6、在SQL中,与关系代数中的投影运算相对应的子句是【】。 A、SELECT B、FROM C、WHERE D、ORDER BY 7、在SQL查询时,如果要去掉查询结果中的重复组,需使用【】。 A、UNIQUE B、COUNT C、DISTINCT D、UNION 8、关于视图,下列说法中正确的是【】。 A、对视图的使用,不可以进行查询和修改操作 B、视图只能从表中导出 C、视图与表一样也存储着数据 D、对视图的操作,最终要转化为对基本表的操作 9、SELECT语句中使用* 表示【】。 A选择任何属性 B 选择全部属性 C 选择全部元组 D 选择键码 10、下列概念中,【】不用于嵌入式SQL和宿主语言之间的交互。 A、通信区 B、游标

Oracle 数据库中 游标实验报告

Oracle 数据库实验报告 系别:******* 班级:******* 姓名:******* 学号:******* 指导老师:****

一.实验名称 用带参数游标的FOR循环依此输出每一个部门名称,在部门名称的下面输出该部门的员工姓名和工资,按工资的升序排列。二.实验目的 通过本次实验,逐渐熟悉oracle数据库的应用及输出的格式,更加深刻的了解其输出的语法,变量的定义及赋值和操作环境以及循环结构,异常的捕获,定义,处理,Oracle数据库中表的创建,插入,及表中所需数据的提取,掌握游标的定义,使用。三.实验步骤 开始——运行输入cmd,出来oracle运行界面,代码如下: DECLARE --变量,游标的声明; CURSOR dept_cursor IS SELECT Dname,Deptno FROM DEPT; --游标的定义; CURSOR emp_cursor(v_dept CHAR) IS SELECT Ename,Salary FROM EMP WHERE deptno=v_dept ORDER BY Salary;--按工资升序排序格式输出; BEGIN FOR dept_record IN dept_cursor LOOP --for循环,查询的结果单独的输出; DBMS_OUTPUT.PUT_LINE('部门名称为:

'||dept_record.Dname||chr(10)||'部门编号:'||dept_record.Deptno); --输出语句; FOR emp_record IN emp_cursor(dept_record.Deptno) LOOP DBMS_OUTPUT.PUT_LINE('员工姓名为:'||emp_record.Ename||'员工工资为:'||emp_record.Salary); END LOOP; END LOOP; END; / 四.实验结果

陶宏才《数据库原理和设计》第3版课后习题答案解析教学内容

陶宏才《数据库原理和设计》第3版课后习题答案解析

第一章 一、解答题 1、解释术语:数据、数据库、数据管理系统、数据库系统、数据库应用系统、视图、数据字典。P19-20 数据:是描述现实世界中各种具体事物或抽象概念的、可存储并具有明确意义的信息。 数据库:是相互关联的数据集合。 数据管理系统:是一个通用的软件系统,由一组计算机程序构成。 数据库系统:是一个用户的应用系统得以顺利运行的环境。 数据库应用系统:主要指实现业务逻辑的应用程序。 视图:指不同的用户对同一数据库的每一种理解称为视图。 数据字典:用于存储数据库的一些说明信息的特殊文件。 2、简述数据抽象、数据模型及数据模式之间的关系 P26 数据模型是数据抽象的工具,是数据组织和表示的方式; 数据模式是数据抽象利用数据模型,将数据组织起来后得到的结果; 总而言之,数据模式是数据抽象的结果。 3、DBMS应具备的基本功能有哪些?P9 数据独立性、安全性、完整性、故障恢复、并发控制 4、数据库中对数据最基本的4种操作是什么? P24 增加、删除、修改、查询 5、评价数据模型的3个要素是什么? P12 1)能够真实地描述现实系统 2)能够容易为业务用户所理解 3)能够容易被计算机实现 6、数据模型的3个要素是什么? P24 数据结构、数据操作、数据约束 7、简述SQL语言的使用方式。P13 一般有两种方式:SQL的交互式使用;用户通过开发应用系统与RDBMS交互。 8、在数据库设计时,为什么涉及到多种数据模型?P12 因为目前商用化DBMS没有一个能够同时满足3项要求,为此,人们不得不走折中路线,设计一些中间的数据模型。 9、数据库系统中的用户类型有哪些?P28-29 最终用户、数据库应用开发人员、数据库管理员、其他与数据库系统有关的人员。 11、简述OLTP与OLAP间的区别。P42-43 OLTP(联机事务处理)主要面向日常的业务数据管理,完成用户的事务处理,提高业务处理效率,通常要进行大量的更新操作,同时对响应时间要求比较高。 OLAP(联机分析处理)注重数据分析,主要对用户当前及历史数据进行分析,辅助领导决策,通常要进行大量的查询操作,对时间的要求不太严格。 二、单项选择题 1、( A )不是SQL语言的标准。P156 A.SQL-84 B.SQL-86 C.SQL-89 D.SQL-92 2、 ( D )数据模型没有被商用DBMS实现。P26

游标操作实验-数据库实验六

广州XX学院 数据库实验报告 专业班级计算机181 实验日期2020.5.1 姓名李XX 学号20181X 实验名称游标操作实验指导教师王x (报告内容包括实验目的、实验设备及器材、实验内容、实验步骤、实验结果、实验小结等) 一、实验目的 使学生加深对游标概念的理解,掌握游标的定义、使用方法及使用游标查询、修改和删除数据表中数据的方法。 二、实验设备及器材 Windows平台,SQL-server 2012 三、实验内容 (1)利用游标逐行显示所查询的数据块的内容。 (2)利用游标显示指定行的数据内容。 (3)利用游标修改和删除指定的数据元组。 四、实验步骤 1.利用T-SQL语句声明一个游标,查询EDUC数据库中Student表中男生的信息,并读取 数据。 首先声明游标,并且打开游标 USE EDUC DECLARE S_sex SCROLL CURSOR FOR SELECT* FROM Student WHERE sex='男' OPEN S_sex (1)读取最后一条记录。 FETCH LAST FROM S_sex (2)读取第一条记录。 FETCH FIRST FROM S_sex (3)读取第5条记录。 FETCH ABSOLUTE 5 FROM S_sex

(4)读取当前记录指针位置后第3条记录。 FETCH RELATIVE-3 FROM S_sex 2. 利用T-SQL语句声明一个游标,查询TSGL数据库中readers表中的信息,并读取数 据。 首先声明游标,并且打开游标 USE TSGL DECLARE R_info SCROLL CURSOR FOR SELECT* FROM readers OPEN R_info (1)读取最后一条记录。 FETCH LAST FROM R_info (2)读取第一条记录。 FETCH FIRST FROM R_info (3)读取第5条记录。 FETCH ABSOLUTE 5 FROM R_info (4)读取当前记录指针位置后第3条记录。 FETCH RELATIVE-3 FROM R_info 五、实验小结 通过此次实验,我基本掌握游标了的定义、使用方法及使用游标查询、修改和删除数据表中数据的方法。

《数据库原理与应用》课后作业参考答案

模块1数据库理论基础 1. 某医院病房计算机管理中心需要如下信息: 科室:科名、科地址、科电话、医生姓名 病房:病房号、床位号、所属科室名 医生:姓名、职称、所属科室名、年龄、工作证号 病人:病历号、姓名、性别、诊断、主管医生、病房号 其中,一个科室有多个病房、多个医生,一个病房只能属于一个科室, 一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。 请设计该计算机管理系统的E-R模型。

病人 2. 一个图书馆借阅管理数据库要求提供下述服务: (1)可随时查询书库中现有书籍的品种、数量与存放位置。所有各类书籍均可由书号唯一标识。 (2)可随时查询书籍借还情况,包括借书人单位、姓名、借书证号、借书日期和还书 日期。我们约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有唯一性。 (3 )当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息 向相应出版社增购有关书籍。我们约定,一个出版社可出版多种书籍,同一教材仅为一个出 版社出版,出版社名具有唯一性。 请根据以上情况和假设设计满足需求的E-R模型。

:借书日期] (还书日期][¥? 模块3表的操作 一.填空题 1 .数字数据可分为整数型、精确数值型和近似数值型3种类型。其中,精确数值型数 据由由整数和小数两部分组成 2. 在创建表的命令语句中,要设置表字段属性为自动编号的关键字是IDENTITY。 3. SQL Server 2008 中,根据表的用途可以分为4类,即系统表、用户表、已分区表和临时表。 4 .如果表中记录的某一字段或字段组合能唯一标识记录,则称该字段或字段组合 为_主键_。 5 .创建数据库表的命令语句是create table 。 2 .下列对表的描述正确的是(C )。

Oracle数据库游标使用大全

Oracle数据库游标使用大全(1) SQL是用于访问ORACLE数据库的语言,PL/SQL扩展和加强了SQL的功能,它同时引入了更强的程序逻辑。PL/SQL支持DML命令和SQL的事务控制语句。本文我们将讨论各种用于访问ORACLE数据库的DDL和TCL 语句。 SQL是用于访问ORACLE数据库的语言,PL/SQL扩展和加强了SQL的功能,它同时引入了更强的程序逻辑。PL/SQL支持DML命令和SQL的事务控制语句。DDL在PL/SQL中不被支持,这就意味作在PL/SQL程序块中不能创建表或其他任何对象。较好的PL/SQL程序设计是在PL/SQL块中使用象DBMS_SQL这样的内建包或执行EXECUTE IMMEDIATE命令建立动态SQL来执行DDL命令,PL/SQL编译器保证对象引用以及用户的权限。下面我们将讨论各种用于访问ORACLE数据库的DDL和TCL语句。 查询 SELECT语句用于从数据库中查询数据,当在PL/SQL中使用SELECT语句时,要与INTO子句一起使用,查询的返回值被赋予INTO子句中的变量,变量的声明是在DELCARE中。SELECT INTO语法如下: PL/SQL中SELECT语句只返回一行数据。如果超过一行数据,那么就要使用显式游标(对游标的讨论我们将在后面进行),INTO子句中要有与SELECT子句中相同列数量的变量。INTO子句中也可以是记录变量。TYPE属性 在PL/SQL中可以将变量和常量声明为内建或用户定义的数据类型,以引用一个列名,同时继承他的数据类型和大小。这种动态赋值方法是非常有用的,比如变量引用的列的数据类型和大小改变了,如果使用了%TYPE,那么用户就不必修改代码,否则就必须修改代码。 例: 不但列名可以使用%TYPE,而且变量、游标、记录,或声明的常量都可以使用%TYPE。这对于定义相同数据类型的变量非常有用。

数据库原理游标及触发器实验

《数据库原理》实验报告要求 报告的主要内容 一、实验目的 根据各实验项目的实验目的撰写,具体在附件中给出。 二、实验环境 操作系统:Windows XP,数据库管理系统(DBMS):SQL Server2008 三、实验要求 根据各实验项目要求撰写,具体在附件中给出。 四、实验内容及完成情况 自己所完成的内容,进行了哪些操作、编写了哪些程序及执行后的结果,包括一些错误结果及解决办法等。 五、实验体会 具体要求 1、 本实验属综合性实验,要使用学校统一的报告纸,附加纸张要 挟在报告纸内并左侧装订; 2、 报告纸的封面要填写完整,项目要与实验日历中的项目完全一 致,否则将返回重写; 3、 报告第四项“实验内容及完成情况”中,只允许对操作结果和 程序运行结果进行打印,其余内容必须用钢笔或水性笔书写, 报告要整洁; 4、 严禁出现雷同报告,如果出现雷同,雷同报告的所有学生本次实 验将作不及格或最低分处理。如果出现不及格实验项目将取消考 试资格。

实验目的及要求 实验三、存储过程及游标 实验目的: 综合运用程序设计和数据结构,使用游标完成具有较完整功能的存储过程。 实验要求: 根据所给的excel表格,完成实验内容。 说明:“招生表”中部分属性保存的是代码值,请按所给代码表完成如下要求。 1.使用SQL语句创建数据库,并在数据库中完成表的创建。(报告中要分析各个表的主键和外键是什么) 创建数据库studentManage

2.写一个存储过程,功能是查询所有招生信息。使用游标完成逐行输出,每行要有行号。(在查询结果中,要求各类代码要替换成具体的文字信息,例如:政治面貌不要显示“01”,而要显示“中共党员”。)

南昌大学计算机数据库实验七 Transact和游标实验

实验七Transact-SQL程序设计(2学时) 学号:6100410235 姓名:郑俊班级:计科103班实验日期:2012-12-06 1.实验目的 (1)掌握Transact-SQL的数据类型、常量变量、表达式等的概念和使用方法。 (2)掌握程序中注释的基本概念和使用方法。 (3)掌握程序中的流程控制语句的使用方法。 (4)掌握SQL Server 2005中常用函数的用法。 (5)掌握游标的概念和声明方法,以及使用游标进行数据的查询、修改、删除操作等。 2.实验内容 (1)选择student_db数据库,输入以下T-SQL代码。 DECLARE @stu_name varchar(10) SELECT @stu_name=姓名 FROM student_info WHERE 姓名LIKE '张%' SELECT @stu_name 观察显示的结果,与student_info表中数据进行比较,@stu_name赋值的是SELECT结果集中的哪个数据?

(2)定义int型局部变量@grademax、@grademin、@gradesum,在grade 表中查找最高分、最低分和总分,分别赋给@grademax、@grademin和@gradesum,并显示。 (3)使用SET命令将某个查询结果集记录数目赋值给int型局部变量@row。 (4)以下代码在curriculum表中插入新记录: DECLARE @intCId int,@intErrorCode int INSERT INTO curriculum(课程编号,课程名称,学分)

V ALUES('0006','VB程序设计',2) SELECT @intCId=@@identity,@intErrorCode=@@error SELECT @intCId,@intErrorCode 将该代码段连续执行两次,观察两次显示的信息及curriculum表中数据的变化,为什么前后两次执行时显示的信息会不同? 第一次: 第二次: (5)在student_db数据库的student_info表中,以“性别”为分组条件,分别统计男生和女生人数。 (6)在grade表中,使用适当函数找出“高等数学”课程的最高分、最低分和平均分。 (7)定义一个datetime型局部变量@studate,以存储当前日期。计算student_info表中的学生的年龄,并显示学生的姓名、年龄。

数据库原理期末考试试卷答案

山西大学2008级数据库原理试卷答案 一、填空题(共10分,每空1分) 1、从数据库管理系统的角度划分数据库系统的体系结构,可分为()、 ()和()3层。 答案:外模式、模式、内模式 2、RDBMS的中文意思是()。 答案:关系数据库管理系统 3、在关系代数中,θ连接是由笛卡尔积和()运算组合而成的。 答案:选择 4、通过模式分解把属于低级范式的关系模式转换为几个属于高级范式的关系模式的集合,这一过程称为()。 答案:规范化 5、要使关系模式属于第三范式,既要消除(), 也要消除()。 答案:非主属性对码的部分依赖、非主属性对码的传递依赖 6、利用游标进行查询需要4种语句,分别是说明游标、()、 ()和关闭游标。

答案:打开游标、推进游标 二、单选题(共10分,每题1分) 1、数据库系统的基础是()。 A. 数据结构 B. 数据库管理系统 C. 操作系统 D. 数据模型 答案:D 2、经过投影运算后,所得关系的元组数()原关系的元组数。 A. 等于 B. 小于 C. 小于或等于 D. 大于 答案:C 3、关系R与关系S只有1个公共属性,T1是R与S作θ连接的结果,T2是R 与S作自然连接的结果,则()。 A. T1的属性个数等于T2的属性个数

B. T1的属性个数小于T2的属性个数 C. T1的属性个数大于或等于T2的属性个数 D. T1的属性个数大于T2的属性个数 答案:D 4、在SQL中,与关系代数中的投影运算对应的子句是() A. SELECT B. FROM C. WHERE D. ORDER BY 答案:A 5、在SQL的排序子句:ORDER BY 总分DESC, 英语DESC 表示() A. 总分和英语分数都是最高的在前面 B. 总分和英语分数之和最高的在前面 C. 总分高的在前面,总分相同时英语分数高的在前面 D. 总分和英语分数之和最高的在前面,相同时英语分数高的在前面答案:C 6、下面哪一个依赖是平凡依赖()

数据库原理试题及答案(五)

数据库原理试题及答案 一、单项选择题(本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.使用数据库技术来处理一个实际问题时,对数据描述经历的过程是( B ) A.定义、描述、实现 B.概念设计、逻辑设计、物理设计 C.结构设计、表设计、内容设计 D.逻辑设计、结构设计、表设计 2.负责DBS的正常运行,承担创建、监控和维护数据库结构责任的数据库用户是( D ) A.应用程序员 B.终端用户 C.专业用户 D.DBA 3.数据库应用系统设计的需求分析阶段生成的文档是数据字典和( A ) A.数据流图 B.E-R图 C.功能模块图 D.UML图 4.设有课程关系Course(课程号,课程名,学分,开设专业号,先修课程号)和专业关系Speciality(专业号,专业名),则课程关系Course的外键是( D ) A.课程号 B.开设专业号 C.先修课程号 D.开设专业号和先修课程号 5.由于关系模式设计不当所引起的插入异常指的是( C )

A.未经授权的用户对关系进行了插入操作 B.两个事务并发地对同一关系进行插入而造成数据库的不一致 C.由于码值的部分为空而不能将有用的信息作为一个元组插入到关系中 D.向关系中插入了不该插入的数据 6.X→Y能用FD推理规则推出的充分必要条件是( B ) A.Y?X B.Y?X+ C.X?Y+ D.X+=Y+ 7.下面关于SQL语言的描述中,不正确 ...的是( B ) A.SQL语言支持数据库的三级模式结构 B.一个SQL数据库就是一个基本表 C.SQL的一个表可以是一个基本表,也可以是一个视图 D.一个基本表可以跨多个存储文件存放,一个存储文件也可以存放一个或多个基本表 8.当关系R和S做自然连接时,能够把R和S原该舍弃的元组放到结果关系中的操作是 ( C )A.左外连接 B.右外连接 C.外连接 D.外部并 9.设有关系R(书号,书名),如果要检索书名中至少包含4个字母,且第3个字母为M的图 书,则SQL查询语句中WHERE子句的条件表达式应写成( C )A.书名LIKE '%_ _M%' B.书名LIKE '_ _M%'

数据库原理A答案

广州大学2009-2010 学年第一学期考试卷 课程数据库原理考试形式(闭卷,考试) 学院系专业班级学号姓名_ 一、选择题(共20分,每题1 分) 1、在数据库三级模式间引入二级映象的主要作用是(A)。 A. 提高数据与程序的独立性 B. 提高数据与程序的安全性 C. 保持数据与程序的一致性 D. 提高数据与程序的可移植性 2、数据库系统中的数据模型通常由(A)三部分组成。 A. 数据结构、数据操作和完整性约束 B. 数据定义、数据操作和安全性约束 C. 数据结构、数据管理和数据保护 D. 数据定义、数据管理和运行控制 3、五种基本关系代数运算是(A)。 A. ∪,-,×,π和σ B. ∪,-,∞,π和σ C. ∪,∩,×,π和σ D. ∪,∩,∞,π和σ 4、在关系R和关系S进行自然联接时,只把S中原该舍弃的元组保存到新关系中,这种 操作称为(D)。 A. 外联接 B. 内联接 C. 左外联接 D. 右外联接 5、下列聚合函数中不忽略空值(null)的是( C )。 A. SUM(列名) B. MAX(列名) C. COUNT(* ) D. A VG(列名)

6、关系数据库规范化是为了解决关系数据库中(A)的问题而引入的。 A. 插入、删除、更新异常和数据冗余 B. 提高查询速度 C. 减少数据操作的复杂性 D. 保证数据的安全性和完整性 7、学生社团可以接纳多名学生参加,但每个学生只能参加一个社团,从社团到学生之间的联系类型是( D )。 A. 多对多 B. 一对一 C. 多对一 D. 一对多 8、现有一个关系:借阅(书号,书名,库存数,读者号,借期,还期),假如同一本书允 许一个读者多次借阅,但不能同时对一种书借多本,则该关系模式的主码是(D)。 A. 书号 B. 读者号 C. 书号+ 读者号 D. 书号+ 读者号+ 借期 9、若用如下的SQL语句创建一个student表,可插入表中的元组是(B)。CREATE TABLE student (SNO CHAR(4) PRIMARY KEY, NAME CHAR(8) NOT NULL, SEX CHAR(2), AGE INT); A. ( '001', '曾华', 男, 20 ) B. ( '002', '曾华', NULL, NULL ) C. ( NULL, '曾华', '男', NULL ) D. ( '003', NULL, '男', 20 ) 10、有关系模式R(A, B, C, D, E),根据语义有如下函数依赖集: F={A→B, B→A, (A,C)→D, D→E},下列属性组中的哪一个(些)是R的候选码( B )。 Ⅰ. (A, C) Ⅱ. (A, B) Ⅲ. (B, C) Ⅳ. (A, D) Ⅴ. (A, C, D) A. 只有Ⅰ B. Ⅰ和Ⅲ C. 只有Ⅴ D. Ⅲ和Ⅳ 11、接10题,关系模式R的规范化程度最高达到(B)。 A. 1NF B. 2NF C. 3NF D. BCNF 12、下列说法正确的是( B ) A. 视图是观察数据的一种方法,只能基于基本表建立。 B. 视图是虚表,观察到的数据是实际基本表中的数据。 C. 索引查找法一定比表扫描法查询速度快。 D. 索引的创建只和数据的存储有关系 13、若事务T对数据R已加排他锁(X锁),则其他事务对R(D) A. 可以加共享锁(S锁),不能加X锁 B. 不能加S锁,可以加X锁 C. 可以加S锁,也可以加X锁 D. 不能加任何锁 14、设有T1和T2两个事务,其并发操作如下所示,下面评价中正确的是(C)

数据库原理与应用实验5-游标

电子与信息工程学院实验报告 班级学号姓名吴前斌 同组 实验课程:数据库实验 实验项目:游标 实验日期:2019 年06 月09 日

三、实验步骤 1、游标的创建。 1)使用S_C数据库中的S表、C表、SC表创建一个存储过程—sp_CURSOR1。该存储过程的作用是:显示所有的课程信息,如果成绩>=90显示成绩本身;成绩>=80显示良;成绩>=70显示中;成绩>=60显示及格;成绩>=0显示不及格;如果没有成绩则显示无成绩。信息还包含学号,姓名,课程和成绩,显示格式如下:学号---姓名---课程---成绩,如图1所示。 要求使用游标技术实现上述要求,使用Print语句实现显示。 图1 成绩显示格式 sp_CURSOR1的创建语句: if exists(select name from sysobjects where name='sp_CURSOR1'and type='p') drop procedure sp_CURSOR1 go create proc sp_CURSOR1 as declare@g float declare sp_cur cursor for select s.sno,sname,cname from s,sc,c where s.sno=sc.sno and https://www.wendangku.net/doc/e88001317.html,o=https://www.wendangku.net/doc/e88001317.html,o open sp_cur fetch next from sp_cur into@g while(@@fetch_status=0) if @grade is null begin print ‘无成绩’ fetch next from sp_cur into @g end else if(@g>=90) begin select grade from sc where grade=@g fetch next from sp_cur into@g end else if(@g>=80and@g<90) begin print'良' fetch next from sp_cur into@g end

数据库《游标的使用》实验报告

x x大学计算机与信息技术学院 实验报告 姓名学号专业班级 课程名称数据库系统概论实验日期 成绩指导教师批改日期 实验名称游标的使用 一、实验目的: ?掌握游标的使用方法 ?掌握使用游标逐行操作SELECT语句结果集的数据的技能 二、实验内容: ?游标声明 ?打开游标 ?读取数据 ?关闭游标 ?释放游标 三、实验步骤: (一)使用游标的几个步骤: 1、声明游标。使用T-SQL语句生成一个结果集,并且定义游标的特征,如游标中的记录是否可以修改; 2、打开游标 3、推进游标指针,从游标的结果集中提取数据,从游标中检索一行或多行数据成为提取数据。 4、逐行处理游标指针所指向的行数据。 5、关闭和释放游标。 例1、 利用标准方式声明一个名称为“student”的游标 use 学生选课 declare student cursor for select Sno,Sname,sage FROM student WHERE sage=19 FOR READ ONLY GO open student // 打开 go fetch next from student //从游标中读取数据 go close student // 关闭 deallocate student // 删除

例2: 声明一个名称为Xuanke的游标 use 学生选课 /*声明一个名称为Xuanke的游标*/ DECLARE XUANKE CURSOR DYNAMIC /*动态的,动力的*/ FOR SELECT Sno,Grade FROM SC WHERE Cno='1' FOR UPDATE OF Sno GO /*打开XUANKE游标*/ OPEN XUANKE GO /*从XUANKE游标中读取数据*/ FETCH NEXT FROM XUANKE GO /*关闭XUANKE游标*/ CLOSE XUANKE /*删除XUANKE游标*/ DEALLOCATE XUANKE

数据库原理习题 (1)l

数据库原理及应用习题 一、选择题: 1.手工处理阶段是。 A.计算机数据处理技术发展的初级阶段 B. 计算机数据管理技术发展的初级阶段 C.计算机数据处理技术发展的中级阶段 D. 计算机数据管理技术发展的中级阶段 3.下列哪种数据管理技术难以保存数据。 A.自由管理 B. 独享式文件管理 C. 共享式文件管理 D. 数据库系统管理 4.下列哪种数据管理技术真正消除了程序与数据间的相互依赖关系。A.自由管理 B. 文件管理 C. 数据库系统管理 D. 以上说法都不对 5.数据库中,实体是指。 A.客观存在的事物 B. 客观存在的属性 C. 客观存在的特性 D. 某一具体事件 6.数据库中,属性是指。 A.客观存在的事物 B. 事物的具体描述 C. 事物的某一特征 D. 某一具体事件 7. 数据库中,实体的联系是指。 A.1: 1、1: m、m: n联系 B. 一元联系、二元联系、多元联系 C.两实体间联系 D. 实体集内部的联系 8.下列哪种数据管理技术真正消除了冗余。 A.自由管理 B. 文件管理 C. 数据库系统管理 D. 以上说法都不对 9.数据库中,实体的一元联系是指。 A.1: 1、1: m、m: n联系 B. 一个实体与另一个实体的联系 C.两实体间联系 D. 实体集内部的联系 10. 数据库中,实体的二元联系是指。 A.1: 1、1: m、m: n联系 B. 相同实体间的联系 C.不同实体间的联系 D. 实体集内部的联系 11. 数据库中,两实体间的联系是指。 A.1: 1、1: m、m: n联系 B. 相同实体间的联系 C.不同实体间的联系 D. 实体集内部的联系 12. 文件系统与数据库系统对数据处理方式的主要区别体现在。

SQL游标用法

游标 1 table1结构如下 2 id int 3 name varchar(50) 4 -------------------------- 5 declare @id int 6 declare @name varchar(50) 7 declare cursor1 cursor for--定义游标cursor1 8 select*from table1 --使用游标的对象(跟据需要填入select文) 9 open cursor1 --打开游标 10 11 fetch next from cursor1 into @id,@name --将游标向下移行,获取的数据放入之前定义的变量@id,@name中 12 13 while@@fetch_status=0 --判断是否成功获取数据 14 begin 15 update table1 set name=name+'1' 16 where id=@id --进行相应处理(跟据需要填入SQL 文) 17 18 fetch next from cursor1 into @id,@name --将游标向下移行 19 end 20 21 close cursor1 --关闭游标 22 deallocate cursor1 游标一般格式: DECLARE 游标名称CURSOR FOR SELECT 字段1,字段2,字段3,... FROM 表名WHERE ... OPEN 游标名称 FETCH NEXT FROM 游标名称INTO 变量名1,变量名2,变量名3,... WHILE @@FETCH_STATUS=0 BEGIN SQL语句执行过程... ... FETCH NEXT FROM 游标名称INTO 变量名1,变量名2,变量名3,... END CLOSE 游标名称 DEALLOCATE 游标名称(删除游标)

相关文档