数据库实验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 多表查询及视图

实验五:多表查询及视图一、实验目的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这个条件。

数据库实验报告 (5)

数据库实验报告 (5)

实验一创建数据库及关系表一、实验目的1. 掌握SQL Server数据库管理系统的使用,能够中该环境中进行日常数据库操作;2. 掌握在SQL Server中使用图形化工具创建数据库的方法;3.掌握建立关系表的语句,掌握定义主码约束及外码约束的语句;4.掌握修改表结构的语句。

二、实验要求1.了解SQL Server数据库的组成,会使用图形化工具创建数据库。

2.编写建立表及主、外码约束的T-SQL语句,并执行这些语句,在数据库中建立符合要求的关系表。

3.编写修改表结构的语句。

三、实验内容和步骤1.创建符合如下条件的数据库:数据库的名字为:Students数据文件的逻辑文件名为:Students_dat,存放在D:\Test录下(若D:盘中无此子目录,可先建立此目录,然后再创建数据库。

);文件的初始大小为:5MB;增长方式为自动增长,每次增加1MB。

日志文件的逻辑文件名字为:Students_log,也存放在D:\Test目录下;日志文件的初始大小为:2MB;日志文件的增长方式为自动增长,每次增加10%。

2.在已建立的Students数据库中,写出创建满足下述条件的四张表的SQL 语句,并查看执行结果。

Teacher表结构Sno char(7)primary key,Sname nchar(10)not null,Ssex nchar(2),Sage tinyint,Sdept nvarchar(20),Spec char(10))create table course(Cno char(10),Cname nvarchar(20)not null,Credit int,Semester tinyint,Primary key(Cno))create table sc(Sno char(7)not null,Cno char(10)not null,Grade tinyint,primary key(Sno,Cno),foreign key(Sno )references Student(Sno), foreign key(Cno )references Course(Cno), )create table teacher(Tno char(8)not null,Tname char(10)not null,Dept nvarchar(20),Salary numeric(6,2),Birthery smalldatetime)执行结果:2.写出实现如下操作的SQL语句,并查看执行结果:(1)在SC表中添加一个新的修课类别列:列名为:XKLB,类型为char(4)。

数据库实验报告五

数据库实验报告五

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

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

三、实验内容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

大连海事大学数据库原理课程实验大纲实验名称:实验五视图实验学时: 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)创建视图(不能省略列名的情况)。

数据库实验报告5

数据库实验报告5

数据库技术与应用实验报告五姓名:专业:学号:熟练掌握并简述视图的创建和使用方法等。

创建视图的方法有:(1)打开要创建视图的数据库,之后选择“文件”“新建”命令。

或单击“常用”工具栏上的“新建”按钮,打开“新建”对话框,选择“视图”并单击“新建文件”打开视图设计器建立视图;(2)在项目管理器的“数据”选项卡中将要建立视图的数据库分支展开,并选择“本地视图”或“远程视图”,然后单击“新建”按钮打开视图设计器打开视图设计器建立视图;(3)在命令窗口输入CREA T VIEW 命令打开视图设计器建立视图。

一、实验内容及实验步骤实验一:创建视图实验创建学生选课成绩单视图。

第1步:任务分析要求通过该视图可以了解每个学僧的选课情况及所选课程的成绩情况,并通过该视图可以对学生成绩进行修改,修改将反映到创建该视图的基本表中。

第2步:操作步骤(1)打开“教学管理”数据库。

(2)单击常用工具栏上的“新建”按钮,在弹出的“新建”对话框中选择“视图”,并单击“新建文件”打开视图设计器,同时打开“添加表或视图”对话框。

(3)在“添加表或视图”对话框中选定用于创建视图的学生表、成绩表、课程表,将其添加到视图设计器中(过程同创建查询时相同),之后选择“关闭”按钮,进入“视图设计器”窗口(如事先未建立表与表之间的关联,系统提示建立,方法同创建查询时相同)。

(4)在“字段”选项卡的“可用字段”列表框中,选择要在视图中出现的字段:“学生表.学号”、“学生表.姓名”、“学生表.性别”、“学生表.班号”、“学生表.专业名”、“成绩表.课程号”、“成绩表.成绩”、“课程表.课程名”,并将其添加到“选定字段”列表框。

(5)在“排序依据”选项卡中的选定字段列表框,选择“学生表.学号”、“成绩表.成绩”两个字段作为排序依据,将其添加到“排序条件”列表框。

在排序时先按学号由低到高进行排序,学号相同时,再按照成绩由低到高进行排序。

(6)在“更新条件”条件选项卡中间位置的字段名列表框中,选择可在视图中进行修改的字段,铅笔图案所在列画上√所对应的字段可以被修改,没有√的不能够修改,之后选择“发送SQL更新”,如下图。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(5)PAD_INDEX:用于指定索引中间级中每个页(节点)上保持开 放的空间。必须和填充因子同时使用。
(6)FILLFACTOR =填充因子:用于指定在创建索引时,每个索引页 的数据占索引页大小的百分比,fillfactor的值为1到100。
北京理工大学管理与经济学院
人力资源管理
CREA参(T数7E)说IIN明GND:OREEX_D命UP令_KEY:用于控制当往包含于一个唯一聚集索引中
DROP INDEX 选课表.IX_选课表_成绩 --如果存在IX_选课表_成绩索引删除 CREATE NONCLUSTERED INDEX IX_选课表_成绩 ON 选课 表(成绩 DESC)
11
北京理工大学管理与经济学院
人力资源管理
5.2 删除索引
1.删除索引的方法 SQL Server删除索引的主要方法有:利用对象资源管理器删除索
WITH(
PAD_INDEX=ON,
--保持索引开放的空间
FILLFACTOR=90,
--填充因子90
IGNORE_DUP_KEY=ON, --忽略重复键值
DROP_EXISTING=ON) --如果存在IX_学号_开课号索引
--则删除,如果不存在,则提示错误
--中断索引创建
10
北京理工大学管理与经济学院
人力资源管理
例5 为数据库“教学管理”中数据表关于选课表.成绩降 序建立非聚集索引IX_选课表_成绩。
方法一:使用对象资源管理器 创建过程请参照上例,见前图创建索引窗口。 方法二:使用SQL命令
USE 教学管理 GO
IF EXISTS (SELECT name FROM sysindexes WHERE name='IX_选课表_成绩')
人力资源管理
北京理工大学管理与经济学院
人力资源管理
5.1 创建索引
(1)利用Transact-SQL语句中的CREATE INDEX命令创建索引。 语法格式: CREATE [UNIQUE] [CLUSTERED| NONCLUSTERED ] INDEX 索引名 ON 数据表名|视图名( 字段名 [ ASC | DESC ] [ ,...n ] ) [WITH [PAD_INDEX] [[,]FILLFACTOR=填充因子] [[,]IGNORE_DUP_KEY] [[,]DROP_EXISTING] [[,]STATISTICS_NORECOMPUTE] [[,]SORT_IN_TEMPDB]] [ ON 文件组名]
新建索引对话框。 ③单击“添加”按钮,系常规”中选择要索引的列“姓名”。 ④单击【关闭】按纽,索引创建完毕。创建过程如下图所示。
5
北京理工大学管理与经济学院
人力资源管理
6
北京理工大学管理与经济学院
人力资源管理
2、利用SQL中的CREATE INDEX命令创建索引
有的聚集索引 'PK_学生表'。
7
北京理工大学管理与经济学院
人力资源管理
例2 为数据库“教学管理”中数据表关于课程表.课名降 序建立惟一索引IX_课程表_课名。
方法一:使用对象资源管理器 创建过程请参照上例,见上图创建索引窗口。 方法二:使用SQL命令 USE 教学管理 GO
CREATE UNIQUE INDEX IX_课程表_课名 ON 课程 表(课名 DESC)
9
北京理工大学管理与经济学院
人力资源管理
例4 为数据库“教学管理”中数据表关于选课表.学号降序,选课表.开课 号升序建立组合惟一索引IX_学号_开课号,填充因子为90,在插入数据时 ,可以忽略重复的值。如果已经存在IX_学号_开课号索引,则先删除后重 建。 USE 教学管理 GO
CREATE UNIQUE INDEX IX_学号_开课号 ON 选课表(学号 DESC, 开课号 ASC)
8
北京理工大学管理与经济学院
人力资源管理
例3 为数据库“教学管理”中数据表关于教师表.姓名升序 建立非聚集和非惟一索引IX_教师表_姓名。
方法一:使用对象资源管理器 创建过程请参照上例,见前图创建索引窗口。 方法二:使用SQL命令 USE 教学管理 GO
CREATE INDEX IX_教师表_姓名 ON 教师表 (姓名 ASC)
4
北京理工大学管理与经济学院
人力资源管理
1、利用对象资源管理器直接创建索引
例1 为数据库“教学管理”中的学生数据表关于学生表.学号建立聚集索 引,关于学生表.姓名建立非聚集索引。
操作步骤如下: ① 在对象资源管理器中,展开“教学管理”数据库,选择数据表学生表
节点单击右键,在快捷菜单中选择“修改”。 ② 在设计器窗口中单击右键,在快捷菜单中选择“索引/键”,则出现
的列中插入重复数据时SQL Server所作的反应。当使用该选项, 表示当插入或更新记录时,忽略重复键值。 (8)DROP_EXISTING:用于指定应删除并重新创建已命名的先前 存在的聚集索引或者非聚集索引。 (9)STATISTICS_NORECOMPUTE:用于指定过期的索引统计不会自 动重新计算。 (10)SORT_IN_TEMPDB:用于指定创建索引时的中间排序结果将 存储在 tempdb 数据库中。
USE 教学管理 GO CREATE UNIQUE CLUSTERED INDEX IX_学号 ON 学生表(学号)
WITH (pad_index=ON,fillfactor=100)
上述命令关于学生表.学号建立了升序惟一性聚集索引,索引名为IX_学 号,填充因子为100。
如果学生表表已经有聚集索引,则会出现下列错误信息: 服务器:消息1902,级别16,状态3,行 1 不能在表'学生表'上创建多个聚集索引。请在创建新聚集索引前除去现
北京理工大学管理与经济学院
人力资源管理
CR E参 (AT数1)E说UI明NNID:QUEE:X命用于令指定为表或视图创建唯一索引,即不允许存在索
引值相同的两行。 (2)CLUSTERED:用于指定创建的索引为聚集索引。 (3)NONCLUSTERED:用于指定创建的索引为非聚集索引。
(4)ASC|DESC:用于指定具体某个索引列的升序或降序排序方向。
相关文档
最新文档