数据库实验5

合集下载

数据库原理实验5指导书

数据库原理实验5指导书

一实验题目:视图的定义和使用二实验目的:加深对视图的理解,熟练视图的定义、查看、修改等操作三实验内容及要求:(从下面10个题目中选一个)题目一:学生(学号,年龄,性别,系名)课程(课号,课名,学分,学时)选课(学号,课号,成绩)1 根据上面基本表的信息定义视图显示每门课的课名、选课人数、平均成绩2 观察基本表数据变化时,视图中数据的变化。

3 利用视图,查询平均成绩最高的学生。

题目二:图书(书号,书名,价格,出版社)读者(卡号,姓名,年龄,所属单位)借阅(书号,卡号,借阅日期)1 根据上面基本表的信息定义视图显示每本书的书名、借阅次数2 观察基本表数据变化时,视图中数据的变化。

3利用视图,查询借阅次数最多的书。

题目三:商品(编号,品名,进价,库存,售价,厂商编号)顾客(卡号,姓名,电话,积分)厂商(编号,厂址,名称、电话)销售(顾客卡号,商品编号,数量,日期)1 根据上面基本表的信息定义视图显示每种商品的品名、销售数量2 观察基本表数据变化时,视图中数据的变化。

3利用视图,查询销售数量最高的商品。

题目四:图书(书号,书名,作者编号,价格,出版社编号)作者(编号,姓名,电话)出版社(编号,出版社名称,地址)1 根据上面基本表的信息定义视图显示每个出版社的名称、出版书的数量2 观察基本表数据变化时,视图中数据的变化。

3利用视图,查询出版书最多的出版社题目五:零件(编号,名称,颜色,生产车间号)车间(编号,名称,人数,主任)产品(编号,名称,类型)生产(产品编号,生产车间编号)使用(产品编号,使用零件编号,个数)1 根据上面基本表的信息定义视图显示每个产品的编号,使用零件的编号,生产零件的车间号,车间主任2 观察基本表数据变化时,视图中数据的变化。

3利用视图,查询使用零件最多的产品。

题目六:药品(编号,名称,价格,厂商)处方(药品编号,数量,医生编号)医生(编号,姓名,科室,职称)1 根据上面基本表的信息定义视图显示每种药品的品名、销售金额2 观察基本表数据变化时,视图中数据的变化。

数据库原理_实验五指导书

数据库原理_实验五指导书

数据库原理
实验指导书
实验五SQL Server 2000中数据库安全性设置
1. 实验的目的
1)熟悉通过SQL对数据进行安全性控制。

2)完成作业的上机练习。

2. 实验内容
要求:在SQLSERVER2000中利用SQL语句完成以下操作。

1)通过SQL对登入账号,用户的创建修改与删除。

2)通过SQL对角色管理,以及角色中添加用户。

3)对角色和用户数据的授权和权力回收
3. 实验步骤
1)复制生成xscj数据库的代码并运行。

2)创建登入账号和用户名s1,s2,t1,t2,l1,l2密码与账号相同默认登入访问xscj数据库。

3)创建角色student,teacher,leader。

4)为角色student授权student表、course表和SC表的select 权力,拒绝修改和删除这三个表的权力
5)为角色teacher授权student表、course表和SC表的select 权力,以及对SC表的修改,插入更新的权力, 拒绝修改student表和course表的权力
6)为角色leader授权student表、course表和SC表的select 权力,以及对student表、course 表修改,插入更新的权力,拒绝修改和删除表SC的权力
7)将s1,s2加入student角色
8)将t1,t2加入teacher角色
9)将l1,l2加入leader角色
10)分别以s1,t1,l1登入服务器验证对student表、course表和SC表相应权限的验证。

存储过程和触发器(数据库实验5)

存储过程和触发器(数据库实验5)

数据库基础与实践实验报告实验五存储过程和触发器班级:惠普测试142学号:**********姓名:***日期:2016-11-141 实验目的:1)掌握SQL进行存储过程创建和调用的方法;2)掌握SQL进行触发器定义的方法,理解触发器的工作原理;3)掌握触发器禁用和重新启用的方法。

2 实验平台:操作系统:Windows xp。

实验环境:SQL Server 2000以上版本。

3 实验内容与步骤利用实验一创建的sch_id数据库完成下列实验内容。

1.创建存储过程JSXX_PROC,调用该存储过程时可显示各任课教师姓名及其所教课程名称。

存储过程定义代码:CREATE PROCEDURE JSXX_PROCASSELECT tn 教师姓名,cn 所教课程FROM T,TC,C WHERE T.tno=TC.tno AND o=o存储过程执行语句与执行结果截图:EXECUTE JSXX_PROC2.创建存储过程XM_PROC,该存储过程可根据输入参数(学生姓名)查询并显示该学生的学号、所学课程名称和成绩;如果没有该姓名学生,则提示“无该姓名的同学”。

存储过程定义代码:CREATE PROCEDURE XM_PROC @sname VARCHAR(100)ASBEGINIF EXISTS(SELECT NULL FROM S WHERE sn=@sname)SELECT S.sno 学号,cn 课程,score 成绩FROM S,SC,C WHERE o=o AND SC.sno=S.sno ANDS.sn=@snameELSEPRINT'无该姓名的同学。

'END运行截图:3.创建存储过程XBNL_PROC,该存储过程可根据输入参数(专业名词,默认值为计算机专业),统计并显示该专业各年龄段男、女生人数。

如果没有该专业,则显示“无此专业”。

存储过程定义代码:CREATE PROCEDURE XBNL_PROC@departName VARCHAR(30)='计算机',@begin INT,@end INTASDECLARE @numOfBoys INTDECLARE @numOfGirls INTDECLARE @d# VARCHAR(3)DECLARE @result VARCHAR(50)BEGINSELECT @d# = dno FROM D WHERE dn=@departNameIF @d# IS NOT NULLBEGINSELECT @numOfBoys =COUNT(sno)FROM S WHERE age BETWEEN @begin AND @end AND dno=@d# AND sex='男'SELECT@numOfGirls =COUNT(sno)FROM S WHERE age BETWEEN@begin AND@end AND dno=@d# AND sex='女'SET @result = @departName+'专业年龄在'+CAST(@begin AS VARCHAR(3))+'-'+CAST(@end AS VARCHAR(3))+'之间的男生有'+CAST(@numOfBoys AS VARCHAR(3))+'人,'+'女生有'+CAST(@numOfGirls AS VARCHAR(3))+'人'ENDELSESET @result='无此专业。

数据库实验5 多表查询及视图

数据库实验5 多表查询及视图

实验五:多表查询及视图一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握数据表的连接查询、嵌套查询、集合查询的使用方法。

3.掌握创建及管理视图的方法;二、实验学时2学时三、实验要求1.了解SELECT语句的基本语法格式和执行方法;2.掌握连接查询、嵌套查询和集合查询的语法规则;3.掌握使用界面方式和命令方式创建及管理视图;4.完成实验报告;四、实验内容1.以实验3数据库为基础,请使用T-SQL 语句实现进行以下操作:1)查询选修了‘数学’或者‘大学英语’的学生学号、姓名、所在院系、选修课程号及成绩;2)查询与‘张力’(假设姓名唯一)年龄不同的所有学生的信息;3)按照“学号,姓名,所在院系,已修学分”的顺序列出学生学分的获得情况。

其中已修学分为考试已经及格的课程学分之和;4)查找选修了至少一门和张力选修课程一样的学生的学号、姓名及课程号;5)查询只被一名学生选修的课程的课程号、课程名;6)使用嵌套查询出选修了“数据结构”课程的学生学号和姓名;7)使用嵌套查询查询其它系中年龄小于CS系的某个学生的学生姓名、年龄和院系;8)使用ANY、ALL 查询,列出其他院系中比WM系所有学生年龄小的学生的姓名;9)使用集合查询查询选修1号课程同时选修2号课程的同学的学号与姓名;2.以实验数据库为基础数据,利用对象资源管理器创建以下视图:1)创建所有学生学号、姓名及年龄的信息视图v_stu_info2)创建CS系学生基本信息视图v_stu_cs3)创建选修课成绩在80分以上的学生的信息视图v_stu_80,包括学生基本情况及成绩。

3. 以实验数据库为基础数据,请使用T-SQL语句完成以下内容,并将SQL语句写在实验报告册中:1) 创建v_CS视图,包括CS系各学生的学号、姓名及年龄,要求进行修改和插入操作时仍需保证该视图只有CS系的学生;2) 创建v_CS_age20视图,包括CS系学生年龄在20岁以上的基本信息;并保证对视图文本的修改都要符合年龄大于20这个条件。

数据库实验报告五

数据库实验报告五

数据库实验报告五一、实验目的本次数据库实验的目的在于深入了解和掌握数据库的相关操作和应用,通过实际操作提高对数据库原理的理解和运用能力,培养解决实际问题的思维和方法。

二、实验环境本次实验使用的数据库管理系统为_____,操作系统为_____,实验所使用的计算机配置为_____。

三、实验内容1、数据库的创建使用相应的命令和工具创建了一个名为_____的数据库,并设置了合适的字符集和校对规则,以满足数据存储和处理的需求。

2、表的设计与创建在创建的数据库中,设计并创建了多个表,包括_____表、_____表和_____表等。

在表的设计过程中,仔细考虑了字段的数据类型、长度、是否允许为空等属性,以确保数据的完整性和准确性。

例如,在_____表中,设置了_____字段为整数类型,用于存储_____信息;_____字段为字符串类型,长度为_____,用于存储_____信息。

同时,为了保证数据的一致性,设置了主键和外键约束。

3、数据的插入通过编写 SQL 语句,向创建的表中插入了大量的测试数据。

在数据插入过程中,注意了数据的合法性和有效性,避免了插入错误或不完整的数据。

4、数据的查询使用各种查询语句对插入的数据进行查询操作,包括简单查询、条件查询、连接查询、分组查询和排序查询等。

通过这些查询操作,熟练掌握了 SQL 语言中查询语句的语法和用法,能够根据不同的需求准确地获取所需的数据。

例如,使用简单查询语句获取了_____表中所有的记录;使用条件查询语句获取了满足特定条件(如_____)的记录;使用连接查询语句将多个表中的相关数据进行关联查询,获取了更全面的信息。

5、数据的更新与删除对表中的数据进行了更新和删除操作,以模拟实际应用中的数据修改和清理需求。

在更新和删除数据时,特别注意了操作的条件和范围,避免了误操作导致数据的丢失或错误。

四、实验中遇到的问题及解决方法1、数据类型不匹配问题在插入数据时,由于对某些字段的数据类型理解不准确,导致出现数据类型不匹配的错误。

数据库实验5答案

数据库实验5答案

实验五:数据库综合查询一、实验目的1.掌握SELECT语句的基本语法和查询条件表示方法;2.掌握查询条件种类和表示方法;3.掌握连接查询的表示及使用;4.掌握嵌套查询的表示及使用;5.了解集合查询的表示及使用。

二、实验环境已安装SQL Server企业版的计算机(120台);具有局域网环境,有固定IP;三、实验学时2学时四、实验要求1.了解SELECT语句的基本语法格式和执行方法;2.了解连接查询的表示及使用;3.了解嵌套查询的表示及使用;4.了解集合查询的表示及使用;5.完成实验报告;五、实验内容及步骤1.利用Transact-SQL嵌套语句实现下列数据查询操作。

1) 查询选修了计算机体系结构的学生的基本信息。

select*from studentwhere Sno in(select Sno from coursewhere Cno in(select Cno from sc where Cname='计算机体系结构'))2) 查询年龄比李勇小的学生的学号和成绩。

select a.sno,grade from student a,coursewhere a.sno=course.sno and sage<(select sage from student where sname='李勇')3) 查询其他系中比系编号为‘D1’的学生中年龄最小者要大的学生的信息。

select*from student where dnum<>'D1'AND SAGE>(select min(sage)from student where dnum='D1')4) 查询其他系中比系编号为‘D3’的学生年龄都大的学生的姓名。

select*from student where dnum<>'D3'AND SAGE>all(selectsage from student where dnum='D3')5) 查询‘C1’课程的成绩高于70的学生姓名。

实验5数据库的安全性控制(含答案)

实验5数据库的安全性控制(含答案)

实验五数据库的安全性控制一、实验目的:1. 通过实验加深对数据安全性的理解,并掌握SQL Server中有关用户登录的认证以及管理办法;2. 通过实验加深对数据库存储控制机制的理解,通过自主存取控制进行权限管理,熟悉SQL Server中角色管理;3.通过实验加深对数据安全性的理解,熟悉视图机制在自主存取控制上的应用。

二、实验内容1.设置SQL Server的混合安全认证模式。

在SQL Server中的对象资源管理器中设置安全认证模式。

2.在SQL Server中,利用“对象资源管理器”创建一个名为“U1”的登录用户和数据库用户,密码为111,并允许其登录S-T数据库。

3.在SQL Server中,利用代码创建一个名为“U2”的登录用户,密码为111;其相应的数据库用户名为lucky,并允许其登录S-T数据库。

4.用“u1”用户名登录后,执行对students表的查询操作,说明执行结果,并分析原因(建议:在启动一个SQL Server 2008窗口)。

分析:没有对u1进行其他操作的授权,只能登录而不能进行插入,修改等操作5.将students表的操作权限select和insert赋予数据库用户u1,并允许其向其它用户授权。

6.以“u1”用户名登录,执行对students和teacher表的查询操作,将该运行结果进行分析。

分析:对比第4题,对U1进行授权后可以进行相应的操作7.执行下列代码后,分析用户u2能否对s_t数据库的student表进行select 和update操作,为什么?并用相应的语句验证。

分析:首先grant给public组赋予了查询,插入,更新权限,然后给lucky用户赋予了对S表的所有权限,然后又revoke收回了lucky的权限,但并没有收回public组的权限,而deny却收回了lucky的更新权限,故查询可实现,而更新不可实现8.以sa登录数据库,在s_t数据库的stc表上创建选修了课程B001的视图st_view。

数据库实验5

数据库实验5

大连海事大学数据库原理课程实验大纲实验名称:实验五视图实验学时: 2适用专业:实验环境: SQL.serve2008执笔者:编写日期:1实验目的(1)掌握SQL视图语句的基本使用方法,如CREATE VIEW、DROP VIEW。

(2)掌握视图更新、WITH CHECK OPTION等高级功能的使用。

2实验内容2.1 掌握SQL视图语句的基本使用方法(1)创建视图(省略视图列名)。

(2)创建视图(不能省略列名的情况)。

(3)删除视图(RESTRICT / CASCADE)。

2.2 掌握视图更新和WITH CHECK OPTION的高级使用方法(1)创建视图(WITH CHECK OPTION),并利用INSERT、DELETE和UPDATE语句加以验证。

(2)创建一个行列子集可更新视图,并利用INSERT、DELETE和UPDATE语句加以验证。

(3)创建一个不可能更新的视图,并利用更新语句验证该视图不可更新。

3实验要求(1)深入复习教材第三章SQL有关视图语句。

(2)根据书上的例子,针对TPCH数据库模式设计各种视图语句,每种类型视图语句至少要设计一个,描述清楚视图要求,运行你所设计的视图语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。

也可以按照附1所列示例做实验。

(3)实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。

(4)思考题:KingbaseES把视图的定义存储在那个系统表中?如何查看某个视图的定义?4实验步骤4.1 掌握SQL视图语句的基本使用方法(1)创建视图(省略视图列名)。

创建一个“海大汽配”供应商供应的零件视图V_DLMU_PartSupp1,要求列出供应零件的编号、零件名称、可用数量、零售价格、供应价格和备注等信息。

CREATE VIEWV_DLMU_PartSupp1(PARTKEY,NAME,A VAILQTY,RETAILPRICE,SUPPLYCOST,COMMENT)ASSELECT P.PARTKEY,,PS.A VAILQTY,P.RETAILPRICE,PS.SUPPLYCOST,MENTFROM PART P,PARTSUPP PSWHERE P.PARTKEY=PS.PARTKEY AND PS.SUPPKEY IN(SELECT SUPPKEYFROM SUPPLIER SWHERE ='海事大学')(2)创建视图(不能省略列名的情况)。

数据库 实验五

数据库 实验五

数据库实验五在学习数据库的过程中,实验是巩固理论知识、提高实践能力的重要环节。

本次实验五主要围绕数据库的某些关键操作和应用展开,通过实际动手操作,让我们对数据库的理解更加深入和全面。

本次实验的环境是常见的数据库管理系统,如 MySQL 或 SQL Server 等。

实验的目的是让我们熟练掌握数据库的查询、更新、插入和删除等基本操作,同时能够运用这些操作解决一些实际的问题。

实验的第一个任务是进行数据的查询操作。

查询是从数据库中获取所需信息的重要手段。

我们需要根据给定的条件,从数据表中筛选出符合要求的数据。

这就涉及到了使用 WHERE 子句来设定条件,以及各种运算符如等于(=)、大于(>)、小于(<)、不等于(<>)等的运用。

同时,还需要掌握连接(JOIN)操作,将多个相关的数据表连接起来,以获取更全面和准确的信息。

例如,在一个学生成绩管理系统中,要查询某个班级中数学成绩大于 80 分的学生名单,就需要先从学生表中获取班级信息,再从成绩表中筛选出数学成绩符合条件的记录,最后通过学生学号将两个表连接起来,得到最终的结果。

接下来是数据的更新操作。

这包括对已有数据的修改和删除。

在进行更新操作时,必须格外小心,因为一旦操作失误,可能会导致数据的丢失或错误。

在修改数据时,同样要使用 WHERE 子句来指定要修改的记录。

例如,要将某个学生的数学成绩从 80 分修改为 90 分,就需要明确指定该学生的学号或其他唯一标识。

而删除数据则需要更加谨慎,通常建议先进行查询,确认要删除的记录准确无误后,再执行删除操作。

数据的插入操作也是实验的重要部分。

插入新的数据可以增加数据库的信息量。

在插入数据时,需要注意数据的类型和格式要与数据表的定义相匹配。

比如,一个学生信息表中,学号是整数类型,姓名是字符串类型,出生日期是日期类型,如果插入的数据类型不正确,就会导致插入失败。

在实验过程中,我也遇到了一些问题和挑战。

比如,在进行复杂的查询操作时,由于条件设置不当,导致查询结果不准确。

实验五 数据库完整性与安全性实验

实验五   数据库完整性与安全性实验

实验五数据库完整性与安全性实验1、实验目的1.通过对完整性规则的定义实现,熟悉了解kingbase中完整性保证的规则和实现方法,加深对数据完整性的理解。

2.通过对安全性相关内容的定义,熟悉了解kingbase中安全性的内容和实现方法,加深对数据库安全性的理解2、实验环境操作系统:Microsoft Windows 7旗舰版(32位)。

数据库版本:MySQL 6.23、实验内容3.1完整性实验:(1)分别定义学生数据库中各基表的主键、外键,实现实体完整性约束和参照完整性约束;在create table 时已经定义了各个基表的主键。

因此,首先对每个基表删除主键,再添加主键。

实现实体完整性约束。

如下图。

删除主键:添加主键:sc表中的cno和sno分别是course表和student表的外关键字。

下图为给sc表添加student和course的外键,实现参照完整性约束。

alter table sc add constraint fk_student foreign key(sno) references student(sno);alter table sc add constraint fk_course foreign key(cno) references course(cno);主键和外键均添加成功,输入show create table 命令来查看各基表信息。

(2)分别向学生表、课程表插入具有相同学号和相同课程编号的学生数据和课程数据,验证其实体完整性约束;向课程表中插入课程号为C01的课程。

向学生表中插入学号为30201的学生。

由上面两个实验来看,分别对student和course表插入具有相同学号和相同课程号的学生信息和课程信息,都显示sql语句错误信息为:Duplicate entry *** for key ‘PRIMARY’。

验证了实体完整性约束。

(3)向学生选课表中插入一条数据,课程编号是课程表中没有的,验证参照完整性约束;插入成绩信息是学号为31428(student中存在),课程号为C07(course中不存在)的学生成绩信息。

数据库实验报告:实验五

数据库实验报告:实验五

数据库实验报告:实验五一、实验目的本次数据库实验五的主要目的是深入了解和掌握数据库的高级操作,包括存储过程的创建与使用、视图的定义和应用、以及事务处理的原理和实践。

通过这些实验内容,提高我们对数据库系统的综合运用能力,为解决实际的数据库管理问题打下坚实的基础。

二、实验环境本次实验使用的数据库管理系统是 MySQL 80,开发工具为 Navicat Premium 12。

操作系统为 Windows 10 专业版。

三、实验内容及步骤(一)存储过程的创建与使用1、创建一个名为`get_student_info` 的存储过程,用于根据学生学号查询学生的基本信息(包括学号、姓名、年龄、性别和专业)。

```sqlDELIMITER //CREATE PROCEDURE get_student_info(IN student_id INT)BEGINSELECT FROM students WHERE student_id = student_id;END //DELIMITER ;```2、调用上述存储过程,查询学号为 1001 的学生信息。

```sqlCALL get_student_info(1001);```(二)视图的定义和应用1、创建一个名为`student_grade_view` 的视图,用于显示学生的学号、姓名和平均成绩。

```sqlCREATE VIEW student_grade_view ASSELECT sstudent_id, sname, AVG(ggrade) AS average_gradeFROM students sJOIN grades g ON sstudent_id = gstudent_idGROUP BY sstudent_id, sname;```2、查询上述视图,获取所有学生的平均成绩信息。

```sqlSELECT FROM student_grade_view;```(三)事务处理1、开启一个事务,向学生表中插入一条新的学生记录(学号:1005,姓名:_____,年龄:20,性别:男,专业:计算机科学)。

数据库实验报告5多表查询

数据库实验报告5多表查询

数据库实验报告5多表查询篇一:数据库实验5实验报告《数据库原理与设计》实验报告报告创建时间:篇二:数据库实验5实验报告淮海工学院计算机工程学院实验报告书课程名:《数据库原理及应用》题目:数据库的完整性班级:软件132 学号:姓名:孙莹莹一.目的与要求1. 掌握索引创建和删除的方法;2. 掌握创建视图和使用视图的方法;3. 掌握完整性约束的定义方法,包括primary key、foreign key等。

二.实验内容1.2.3.4.5.6.7.8.9.10.11.12.13.基于前面建立的factory数据库,使用T-SQL语句在worker表的“部门号”列上创建一个非聚集索引,若该索引已经存在,则删除后重建。

在salary 表的“职工号”和“日期”列创建聚集索引,并且强制唯一性。

建立视图view1,查询所有职工的职工号、姓名、部门名和2004年2月工资,并按部门名顺序排列。

建立视图view2,查询所有职工的职工号、姓名和平均工资;建立视图view3,查询各部门名和该部门的所有职工平均工资;显示视图view3的定义;实施worker表的“性别”列默认值为“男”的约束;实施salary表的“工资”列值限定在0~9999的约束;实施depart表的“部门号”列值唯一的非聚集索引的约束;为worker表建立外键“部门号”,参考表depart的“部门号”列。

建立一个规则sex:@性别=’男’OR @性别=’女’,将其绑定到“性别”上;删除上面第7、8、9和10建立的约束;解除第11题所建立的绑定并删除规则sex。

三.实验步骤1USE factoryGO--判断是否存在depno索引;若存在,则删除之IF EXISTSDROP INDEXGO--创建depno索引CREATE INDEX depno ON workerGOEXEC sp_helpindex workerGO2USE factoryGO--判断是否存在no_date索引;若存在,则删除之IF EXISTSDROP INDEX _dateGO--创建no_date索引CREATE UNIQUE CLUSTERED INDEX no_date ON salaryGOEXEC sp_helpindex salaryGO3USE factoryGO--如果视图viewl存在,则删除IF EXISTSDROP VIEW view1GO--创建视图viewlCREATE VIEW view1AS SELECT TOP 15 worker.职工号,worker.姓名,depart.部门名,salary.工资AS ‘2004年月工资’FROM worker,depart,salaryWHERE worker.部门号=depart.部门号AND worker.职工号=salary.职工号AND YEAR=2004 AND MONTH=2ORDER BY worker.部门号GOSELECT * FROM view1GO4USE factoryGO--如果视图view2存在,则删除IF EXISTSDROP VIEW view2GO--创建视图view2CREATE VIEW view2AS SELECT worker.职工号,worker.姓名,A VG AS ‘平均工资’FROM worker,salaryWHERE worker.职工号=salary.职工号GROUP BY worker.职工号,worker.姓名GOSELECT * FROM view2GO5USE factoryGO--如果视图view3存在,则删除IF EXISTSDROP VIEW view3GO--创建视图view3CREATE VIEW view3AS SELECT depart.部门名,A VG AS ‘平均工资’FROM worker,depart,salaryWHERE worker.部门号=depart.部门号AND worker.职工号=salary.职工号GROUP BY depart.部门名GOSELECT * FROM view3GO6USE factoryGOEXEC sp_helptext ‘view3’GO7USE factoryGOALTER TABLE workerADD CONSTRAINT default_sex DEFAULT ‘男’ FOR 性别GO8USE factoryGOALTER TABLE salaryADD CONSTRAINT check_salary CHECKGO9USE factoryGOALTER TABLE departADD CONSTRAINT unique_depart1 UNIQUE NONCLUSTEREDGOEXEC sp_helpindex depart --显示depart表上的索引GO10USE factoryGOALTER TABLE workerADD CONSTRAINT FK_worker_noFOREIGN KEYREFERENCES departGO11USE factoryGOCREATE RULE sex AS @性别=‘男’ OR @性别=‘女’GOEXEC sp_bindrule ‘sex’,’worker.性别’GO12USE factoryGOALTER TABLE workerDROP CONSTRAINT default_sexGO13USE factoryGOALTER TABLE salaryDROP CONSTRAINT check_salaryGO14USE factoryGOALTER TABLE departDROP CONSTRAINT unique_departGO15USE factoryGOALTER TABLE workerDROP CONSTRAINT FK_worker_noGO16USE factoryGOEXEC sp_unbindrule ‘worker.性别’GODROP RULE sexGO四.测试数据与实验结果第1题图篇三:数据库实验报告5---------------------------------精选公文范文-------------------------- 湖南科技学院电信学院实验报告----------------精选公文范文---------------- 11。

数据库实验5

数据库实验5
图的用法。 6.掌握系统存储过程 sp_rename 的用法。 7.掌握使用 Transact-SQL 语句 ALTER VIEW 修改视图的方法。
二、实验准备 1. 了解聚集索引和非聚集索引的概念。 2. 了解使用 Transact-SQL 语句 CREATE INDEX 创建索引的语法。 3. 了解使用 SQL Server 管理平台创建索引的步骤。 4. 了解 Transact-SQL 语句 DROP INDEX 删除索引的用法。 5. 了解创建视图的 Transact-SQL 语句 CREATE VIEW 的语法格式及用法。 6. 了解修改视图的 Transact-SQL 语句 ALTER VIEW 的语法格式。 7. 了解视图更名的系统存储过程 sp_rename 的用法。 8. 了解删除视图的 Transact-SQL 语句 DROP VIEW 的用法。
数据库技术与应用实验
实验 5 索引和视图
数据库技术与应用 实验报告
实验名称: 系(科): 班 级: 学 号: 姓 名: 完成时间:
索引和试图
信息系
南京师范大学中北学院
1
数据库技术与应用实验
实验 5 索引和视图
实验 5 索引和视图
一、实验目的 1.学会使用 SQL Server 管理平台和 Transact-SQL 语句 CREATE INDEX 创建
南京师范大学中北学院
3
数据库技术与应用实验
实验 5 索引和视图
2.使用 SQL Server 管理平台按《课程表》的课程编号列创建唯一性索引。
南京师范大学中北学院
4
数据库技术与应用实验
实验 5 索引和视图
3.分别使用 SQL Server 管理平台和 Transact-SQL 语句为 studentsdb 数据 库的《成绩表》的“分数”字段创建一个非聚集索引,命名为《成绩_index》。

实验5-数据库的简单查询操作答案

实验5-数据库的简单查询操作答案

实验5 数据库的高级查询操作(一)一、实验目的1.掌握使用查询分析器的使用方法。

2.掌握使用SELECT语句进行数据库单表的高级查询。

3.掌握使用SELECT语句的GROUP BY子句的使用方法。

4.掌握使用SELECT 语句的嵌套查询方法。

5.掌握使用SELECT语句的UNION 合并查询方法。

一、实验内容从查询分析器中导入实验文件夹中的“实验5 数据库的简单查询操作初始化数据.sql ”文件并运行,然后完成下面题目:(提示:学生信息表(Students):属性:学号(Sno),姓名(Sname),性别(Ssex),系别(Sdept),年龄(Sage)。

其中学号设为主键,学号和姓名不能为空,性别取值只能是F或M,系别缺省值为“计算机”。

选课信息表(Enrollment)。

属性:学号(Sno),课程名(Cno),成绩(Grade)。

其中课程号设为主键,课程号和课程名不能为空.。

课程信息表(Course)。

属性:课程号(Cno),课程名称(Cname),学分(Credits)。

)(1)从学生信息表中查询所有学生的所有信息。

SQL代码如下:SELECT *FROM Students(2)从学生信息表中查询所有学生的姓名和学号信息并分别赋予一个中文列名。

SQL代码如下:SELECT Sname AS '姓名', Sno AS '学号'FROM Students(3)从学生信息表中查询姓名是‘Allen’的学生的所有信息。

SQL代码如下:SELECT *FROM StudentsWHERE Sname = 'Allen'(4)从学生信息表中查询学号在1101到1199之间的所有学生的信息SQL代码如下:SELECT *FROM StudentsWHERE Sno BETWEEN 1101 AND 1199(5)从学生信息表中查询年龄小于在18和大于20的所有学生的学号和姓名。

数据库实验5

数据库实验5

数据库实验5在当今数字化的时代,数据库成为了信息存储和管理的核心工具。

本次的数据库实验 5 让我更深入地理解了数据库的操作和应用。

实验开始前,我们需要明确实验的目的和要求。

这次实验主要是围绕数据库的查询、更新和数据完整性的维护展开。

对于查询操作,我们需要熟练运用各种条件语句,以准确获取所需的数据;而更新操作则要求我们谨慎处理,确保数据的准确性和一致性。

首先是数据库的创建。

我们根据给定的需求,确定了数据表的结构,包括字段名、数据类型和约束条件等。

这一步看似简单,实则需要对业务逻辑有清晰的理解,否则后续的操作可能会出现各种问题。

比如,如果字段的数据类型选择不当,可能导致数据存储错误或者查询效率低下。

接下来是数据的插入。

在插入数据时,要严格按照数据表的结构和约束条件进行,避免出现违反完整性规则的情况。

这就要求我们对数据的准确性和合法性进行仔细的检查。

有时候,一个小小的输入错误,都可能导致整个数据库的异常。

查询操作是数据库中最常用也是最重要的功能之一。

通过使用 SQL 语句中的 SELECT 命令,结合各种条件表达式,我们可以从海量的数据中快速筛选出所需的信息。

比如,我们可以根据某个字段的值进行精确查询,也可以使用模糊查询来获取相似的数据。

在实验中,我学会了如何运用连接(JOIN)操作将多个表中的数据关联起来,从而获取更全面的信息。

这让我深刻体会到了数据库设计中表结构规划的重要性。

合理的表结构设计可以大大简化查询操作,提高查询效率。

更新操作则需要更加小心谨慎。

一旦更新操作出现错误,可能会导致数据的丢失或者错误的修改。

在进行更新操作之前,一定要确保对更新的影响有充分的评估,并且做好数据备份,以防万一。

在实验过程中,我也遇到了一些问题和挑战。

比如,在执行复杂的查询语句时,由于条件设置不当,导致查询结果不准确或者查询时间过长。

通过仔细检查 SQL 语句,逐步调试,最终找到了问题所在,并进行了修正。

还有一次,在进行数据更新时,不小心遗漏了一个重要的条件,导致了部分不应该被更新的数据也被修改了。

数据库实验5实验报告

数据库实验5实验报告

《数据库原理与设计》实验报告12. 查询所有借了编号为 B02的图书的读者编号(Rno )和读者姓名(Rname )。

13. 查询比编号为B01的图书的价格低的图书的编号 (Bno )、书名(Btitle )和价格 (Bprice )。

14. 查询至少借阅了读者 R01借阅的全部书籍的读者编号 (Rno )和读者姓名(Rname )。

15. 查询数据库类图书和价格低于 50元的图书的信息。

三、实验过程或算法(源程序)针对数据库Library 实现下列查询语句:1.查询全体读者的姓名(Rn ame )、出生年份。

SQLQuery6.fql * (_FANCOMI\A»(51))* ______________ 日 use LibraryL select distinct Rnaire, Rage f TOIL R M 2der2□结果-J 消息 9e a B 9R 1 11921 2D202. 查询所有年龄在18~20岁(包括18岁和20岁)之间的读者姓名(Rname)及年龄(Rage)。

------------------ ■—1SQLQuery6.sql ■ (1-(FANC©MI\Ass (51)) ______________________3 use library3 select distincT;Rndir.e,. Rage frcir Reader2L where Rage >= 18 and Rage <= 203. 查询学历为研究生、本科的读者的编号(Rno)、姓名(Rname)和性别(Rsex)。

£QLQuery6.sql - (1-<FAIMCOMI\A» (51))□ use Libraryselect distinct Rnc^ Rname^ Rsex from ReaderZI where Reducacian - 「研究主'or Reducauion ■'北#斗"55女4. 查询所有姓林的且全名为2个汉字的读者的姓名(Rname)、性别(Rsex)和年龄(Rage)。

数据库实验报告(7个实验完整附截图)

数据库实验报告(7个实验完整附截图)

数据库实验报告(7个实验完整附截图)福建农林大学计算机与信息学院实验报告课程名称:数据库原理及应用姓名:系:计算机科学与技术专业:计算机科学与技术年级:2012 级学号:指导教师:陈长江2014 年5月18 日实验项目列表序号实验项目名称成绩指导教师1 实验一数据库的定义实验(验证性)2 实验二数据库的建立和维护实验(验证性)3 实验三数据库的查询实验(验证性)4 实验四数据库的视图操作实验(验证性)5 实验五触发器、存储过程操作实验(综合性)实验一:数据库的定义实验一、实验目的:1、理解MySQL Server 6.0 服务器的安装过程和方法;2、要求学生熟练掌握和使用SQL、T-SQL、SQL Server Enterpriser Manager Server 创建数据库、表、索引和修改表结构,并学会使用SQL Server Query Analyzer,接收T-SQL 语句和进行结果分析。

二、实验环境:硬件:PC机软件:Windows操作系统、MySQL Server 6.0 和Navicat for MySQL 9.0三、实验内容和原理:1、安装MySQL以及相应的GUI工具2、用SQL命令,建立学生-课程数据库基本表:学生Student(学号Sno,姓名Sname,年龄Sage,性别Ssex,所在系Sdept);课程Course(课程号Cno,课程名Cname,先行课Cpno,学分Ccredit);选课SC(学号Sno,课程号Cno,成绩Grade);要求:1) 用SQL命令建库、建表和建立表间联系。

2) 选择合适的数据类型。

3) 定义必要的索引、列级约束和表级约束.四、实验步骤:1、运行Navicat for MySQL,然后进行数据库连接,进入到GUI 界面;2、利用图形界面建立基础表:student 表的信息:字段名类型长度约束条件Sno varchar9非空、主键Sname varchar20Ssex varchar2Sage smallint 6Sdept varchar20course表的信息:字段名类型长度约束条件Cno varchar4非空、主键Cname varchar40Cpno varchar4与 course 表中 Cno 关联Ccredit smallint 6sc表的信息:字段名类型长度约束条件Sno varchar9非空、主键、与student表中Sno外键关联,级联删除Cno varchar 4Grade smallint6非空、主键、与course表中Cno外键关联(1)连接数据库,在 localhost 中点击鼠标右键(如图1所示),点击“新建数据库”,在弹出的窗口中输入数据库名称(如图2所示),然后单击“确定”,就完成了数据库的建立。

实验5 数据库保护.doc

实验5 数据库保护.doc

实验5 数据库保护数据安全性实验一.实验目的本实验的目的是通过实验使学生加深对数据安全性的理解,并掌握SQL Server中有关用户,角色及操作权限的管理方法。

二.相关知识SQL Server提供以下四种防线:1.Windows NT操作系统的安全防线Windows NT的网络管理员负责建立用户组,设置帐号并注册,同时决定不同的用户对不同的系统资源的访问级别。

用户只有拥有了一个有效的Windows NT登录帐号,才能对网络资源进行访问。

2.SQL Server的运行安全防线SQL Server 通过另外一种帐号设置来创建附加安全层。

SQL Server具有标准登录和集成登录两种用户登录方式,用户只有登录成功,才能与SQL Server建立一次连接。

3.SQL Server数据库的安全防线SQL Server的特定数据库都有自己的用户和角色(用户组),该数据库只能由它的用户或角色访问,其他用户无权访问其数据,数据库系统可以通过创建和管理特定的数据库的用户和角色来保证数据库不被非法用户访问。

4.SQL Server数据库对象的安全防线SQL Server可以对权限进行管理,SQL的DCL功能保证合法用户即使进了数据库也不能有超越权限的数据操作,即合法用户必须在自己的权限范围内进行数据操作。

三.实验内容本实验的实验内容为:1.在SQL Server企业管理器中,设置SQL Server的安全认证模式。

2.通过SQL Server企业管理器,实现对SQL Server的用户和角色管理。

3.分别通过SQL Server企业管理器和SQL的数据控制功能,设置和管理数据操作权限。

四.实验步骤1.在SQL Server企业管理器中为所属的SQL 服务器设置为SQL Server和Windows NT混合安全认证模式。

其步骤如下:1)在企业管理器窗口中展开服务器组,用鼠标右击需要设置的SQL服务器,在弹出的菜单中选择“属性”项,则出现SQL Server属性对话框,如图1所示。

数据库实验五实验报告

数据库实验五实验报告

数据库实验五实验报告一、实验目的本实验旨在通过学习数据库的索引和优化,掌握数据库索引的使用和优化方法,进一步提升数据库的查询性能。

二、实验要求1.理解数据库索引的概念及作用。

2.熟悉索引的创建、删除和修改操作。

3.了解索引的类型及适用场景,并能选取合适的索引类型。

4.能通过观察执行计划和使用适当的策略对查询进行优化。

三、实验步骤1.索引的创建和删除首先,在已创建的数据库中选择适合创建索引的表。

通过如下语句创建一个测试表:CREATE TABLE test_table(id INT PRIMARY KEY,name VARCHAR(50),age INT);然后,可以在表的字段上创建索引,通过如下语句创建一个索引:CREATE INDEX idx_name ON test_table(name);索引创建完成后,可以通过如下语句删除索引:DROP INDEX idx_name ON test_table;2.索引的修改可以使用ALTER TABLE语句对已创建的索引进行修改。

例如,修改索引的名称:ALTER INDEX idx_name RENAME TO new_idx_name;或者修改索引的定义:ALTER INDEX idx_name RENAME COLUMN new_column_name;3.选择合适的索引类型在创建索引时,需要选择合适的索引类型。

常见的索引类型包括B树索引、哈希索引和全文索引。

- B树索引:适用于等值查询、范围查询和排序场景。

- 哈希索引:适用于等值查询,不支持范围查询和排序。

- 全文索引:适用于全文搜索场景。

4.查询优化在进行数据库查询时,可以通过观察执行计划来判断查询是否有优化空间。

执行计划是数据库在执行查询时生成的查询执行步骤和顺序图,可以根据执行计划优化查询。

另外,还可以通过以下策略对查询进行优化:- 使用合适的索引类型- 避免使用LIKE操作符- 避免使用SELECT *查询所有字段- 避免多表连接查询- 使用JOIN代替子查询- 避免使用不必要的DISTINCT操作符- 分页查询时,使用LIMIT关键字限制结果数量四、实验结果与分析通过实验,我们成功创建了一个测试表,并在该表的字段上创建了索引。

数据库实验5 存储过程和触发器

数据库实验5 存储过程和触发器

实验五存储过程和触发器一、实验目的(1) 通过实践理解存储过程和触发器的概念、作用及优点;(2) 掌握存储过程的定义与调用,实现存储过程中带有不同参数的应用;(3) 掌握创建触发器。

二、实验原理1.存储过程一个被命名的存储在服务器上的T-SQL语句的集合,是封装重复性工作的一种方法。

(1)创建存储过程CREATE PROC[DURE]PROCDURE_NAME [{@PARAMENT DATA_TYPE}[VARYING][=DEFAULT][OUTPUT]] [, (1)AS SQL_STATEMENTPROCEDURE_NAME:新存储过程的名称,必须符合标识符规则且唯一。

@PARAMETER:过程中的参数。

可以声明一个或多个参数。

用户必须在执行过程时提供每个所声明参数的值(除非定义了该参数的默认值)。

使用 @ 符号作为第一个字符来指定参数名称。

参数名称须符合标识符规则。

每个过程的参数仅用于该过程本身;相同的参数名称可用在其它过程中。

默认情况下参数只能代替常量,不能代替表名、列名或其它数据库对象名称。

DATA_TYPE:参数的数据类型。

DEFAULT:参数的默认值。

如果定义了默认值,不必指定该参数的值即可执行过程。

默认值必须是常量或 NULL。

OUTPUT:表明参数是返回参数。

该选项的值可以返回给 EXEC[UTE]。

使用 OUTPUT 参数可将信息返回给调用过程。

(2)执行存储过程SQL SERVER系统中,可以使用EXECUTE语句执行存储过程。

EXECUTE语句也可以简写为EXEC。

如果将要执行的存储过程需要参数,那么应该在存储过程名称后面带上参数值。

[EXEC[UTE]]{[@RETURN_STATUS=]{PROCEDURE_NAME[;NUMBER]|@PROCEDURE_NAME_VAR}[@PARAMETER={VALUE|@VARIABLE[OUTPUT]|[DEFAULT]}[,…N](3) 删除存储过程使用DROP PROCEDURE语句可永久地删除存储过程。

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

实验5 SQL的数据操纵功能
实验目的
学会使用MS SQL SERVER 2000的查询分析器完成SQL的数据操纵功能,主要包括数据插入、删除与修改。

知识点拨:
1.数据插入语法格式:
2.数据修改语法格式:
3.数据删除语法格式:
4.SELECT … INTO…语句的使用:
实验内容
1.数据插入
2.数据修改
3.数据删除
4.SELECT … INTO…语句:
实验步骤
1.选择数据库JX;
注意:以下操作请验证结果!
2.数据插入:
1)向学生表加入一条记录,其学号、姓名、性别和系别分别为:(’06011’,’王文
娟’,’女’,’计算机’);
insert
into Student(Sno,Sname,Sex,Sdept)
values ('06011','王文娟','女','计算机')
2)向学生表加入一条记录,其姓名、性别和系别分别为:(’王娟’,’女’,’计算
机’),观察运行结果;
3)创建一个与学生信息表结构完全相同的基本表CP_Student,用以存储计算机和外
国语系学生信息;
create table CP_Student
( Sno char(10) not null,
SName varchar(10),
Sex char(2),
Sbirth smalldatetime,
Sdept varchar(20),
total smallint
)
4)将Student中计算机系和外国语系的学生信息插入到CP_Student;
insert
into CP_Student
select *
from Student
where Sdept='CS'or Sdept='外国语系'
3.数据修改:
1)把教师“王芳”改为“王芳龄”;
update Teacher
set Tname='王芳龄'
where Tname='王芳'
2)将职称是副教授的教师工资提高2%;
update Teacher
set Tpay=Tpay*(1+0.02)
where Tprof='副教授'
3)将计算机系和外国语系学生的考试成绩分别下调4%和增加2分;
update Student
set Total=total*(1-0.04)
where Sdept='CS'
update Student
set Total=Total+2
where Sdept='外国语系'
4)把李强同学的所有分数都加1分;(可使用UPDATE。

FROM 。

WHERE。


update SC
set Grade=Grade+1
where Sno=(
select Sno
from Student
where SName='李强'
)
5)选做题:对课程表中的学分进行修改,修改方式为:学分低于3分的加0.4分,高
于3分的减去0.5分,3分的加0.2分;
update Course
set Credit=Credit+0.4
where Credit<3
update Course
set Credit=Credit-0.5
where Credit>3
update Course
set Credit=Credit+0.2
where Credit=3
4.数据删除:
1)删除06011号同学的基本信息;
delete
from Student
where Sno='06011'
2)删除CP_Student中87年(包括87年)以前出生同学的信息;
3)删除CP_Student中的所有记录;
delete
from CP_Student
5.使用SELECT … INTO…语句:
注:语法格式:SELECT <目标列表达式> INTO <新表名> FROM 。

语句用途:
▪可以用Select …Into来创建一个新表,并将结果行从查询插入新表中。

使用该语句,必须在目的数据库内具有 CREATE TABLE 权限。

▪通过在 WHERE 子句中包含 FALSE 条件,可以使用 SELECT...INTO 创建没有数据的相同表定义,即定义新的表结构。

▪通过创建新表,并把查询结果添加到新表(当然,通常是临时表,其表名与普通表名的区别是前面有个符号“#”),可以分解对一个表的复杂查询要求,简化SQL语句,提高SQL语句的可读性。

1)请创建一个与教师表相同结构的空表CP_Teacher;(使用SELECT。

INTO。


select *
into CP_Teacher
from Teacher
where Tname is null
2)将所有副教授信息插入CP_Teacher;
insert
into CP_Teacher
select*
from Teacher
where Tprof='副教授'
3)把所有不是副教授的教师信息都插入到CP_Teacher;(请使用INSERT。

INTO。


insert
into CP_Teacher
select*
from Teacher
where Tprof<>'副教授'
4)比较SELECT。

INTO。

和INSERT。

INTO。


SELECT。

INTO。

的操作对象是表;在创建表时就必须加入数据。

INSERT。

INTO。

的操作对象是表中的数据,或者子查询结果;数据的插入
不依靠表的创建。

(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。

可复制、编制,期待你的好评与关注)。

相关文档
最新文档