视图、索引与数据库关系-数据库实验九

合集下载

中南大学数据库题库05索引与视图

中南大学数据库题库05索引与视图

不允许记录中出现重复值和NULL值的索引是( )。

A 主键索引、普通索引B 主键索引、候选索引和普通索引C 主键索引和候选索引D 主键索引、候选索引和唯一索引参考答案C有表student(学号, 姓名, 性别, 身份证号, 出生日期, 所在系号),在此表上使用()语句能创建建视图vst。

A CREATE VIEW vst AS SELECT * FROM studentB CREATE VIEW vst ON SELECT * FROM studentC CREATE VIEW AS SELECT * FROM studentD CREATE TABLE vst AS SELECT * FROM student参考答案ASQL SERVER中,可为数据表创建()的三种类型的索引。

A 聚集索引、稀疏索引、辅索引B 聚集索引、唯一性索引、主键索引C 聚集索引、类索引、主键索引D 非聚集索引、候选索引、辅索引参考答案B在数据库物理设计阶段,需要考虑为关系表建立合适的索引。

关于建立索引的描述,有下列说法:Ⅰ.对于经常在其上需要执行查询操作并且数据量大的表,可以考虑建立索引Ⅱ.对于经常在其上需要执行插入、删除和更新操作的表,可以考虑建立索引Ⅲ.对于经常出现在WHERE子句中的属性,可以考虑建立索引Ⅳ.对于经常出现在ORDER BY子句、GROUP BY子句中的属性,应尽量避免建立索引上述说法正确的是A Ⅰ、Ⅱ和ⅢB Ⅰ、Ⅱ和ⅣC Ⅰ和ⅢD Ⅱ和Ⅳ参考答案C下列哪些属性不适合建立索引?A 经常出现在GROUP BY字句中的属性B 经常参与连接操作的属性C 经常出现在WHERE字句中的属性D 经常需要进行更新操作的属性参考答案D有会员卡表TableCards(CardsID,StartDate,Score),CardID表示卡标识,Scord为卡积分,有视图:CREATE VIEW vCardASSELECT * FROM TableCardsWHERE Score BETWEEN 200 AND 500假设(´C0001´,´2008/5/6´,220)是TableCards表中的一个元组,下述说法正确的是( )。

数据库实验

数据库实验

数据库原理实验指导实验前准备:请设计一个企业销售管理据库,其中需要保存的信息如下:员工信息,包括:员工编号、员工姓名、性别、所属部门、职称、到职日、生日、薪水、填表日期;客户信息,包括:客户号,客户名称,客户住址,客户电话、邮政编码;产品信息,包括:产品编号,产品名称;员工和客户可以签订订单,每签订一个订单,就要保存订单信息,包括:订单编号、客户号、业务员编号、订单金额、订货日期、出货日期、发票号码。

此外,每个订单可能涉及到多种产品,每种产品可能被多个订单订购。

因此需要每个订单中每类产品的销售明细,包括每种产品的销售数量、单价、订单日期;要求:(1)给出系统的ER图(可以用word或其它画图工具,如Visio画),要求画出所有的实体,联系,属性以及联系的类型;(2)将ER图转换为关系模型;实验一实验名称:数据定义(2课时)一、实验目的1、理解数据库模式的概念,通过使用SQL SERVER企业管理器或者My Sql建立数据库和基本表。

模式为人事表、客户表、销售表、销售明细表、产品表。

熟悉SQL SERVER 企业管理器的使用,并将得到的表生成脚本,然后保存。

2、理解上述基本表之间的关系,建立关系表。

3、掌握修改表结构的基本方法4、掌握索引和视图的创建方法二、实验环境MS SQL SERVER或者My Sql。

三、实验内容与步骤1、建立一个数据库和五张表的表结构。

(1)/*员工人事表employee */Create datebase sale;create table employee(emp_no char(5) Not null primary key,emp_name char(10) Not null,sex char(1) Not null,dept char(4) null,title char(6) null,date_hired datetime null,birthday datetime null,salary int null,addr char(50) null,Mod_date datetime Default 0,constraint c1 check(性别 in('男','女')) );(2)/*客户表customer */create TABLE customer(cust_id char(5) Not null primary key,cust_name char(20) Not null,addr CHAR(40) Not null,tel_no char(10) Not null,zip char(6) null);(3)/*销售主表sales */create TABLE sales(order_no char(5) Not null primary key,cust_id char(5) Not null,sale_id CHAR(5) Not null,tot_amt numeric(9,2) null,order_date datetime null,ship_date datetime null,invoice_no char(10) null);(4)/*销货明细表 sales_item*/create TABLE sales_item(order_no char(5) Not null ,prod_id char(5) Not null,primary key(order_no,prod_id),qty INT Not null,unit_price numeric(9,2) Not null,order_date datetime null,CONSTRAINT FK_1 FOREIGN key(order_no) REFERENCES sales(order_no),CONSTRAINT FK_2 FOREIGN key(prod_id) REFERENCES product(prod_id));(5)/*产品名称表product */create TABLE product(prod_id char(5) Not null primary key,prod_name char(20) Not null);2、建立5张表的关系图3、修改表结构,通过SQL语句修改表约束。

SQL server 2008数据库实验

SQL server 2008数据库实验
创建触发器update。
实验九.视图和索引及数据库关系图
视图操作
创建视图view_s_grade
修改视图只显示分数大于80的人
创建索引
实验十. sql server事务管理
定义一个事务,更改s表的数据
事务处理,一条有误两条都不写入数据库
事务处理
定义一个事务,向表插入一段数据再删除,结果没有删除该数据
向s表插入数据Βιβλιοθήκη 在sc表中删除s13 c10的记录。
实验四.数据库约束实验
利用数据库关系图管理主键。
利用表设计管理主键。
利用T-SQL定义主键。
唯一性约束的设置与删除。
实验五. select数据查询
查询数学系的学生的学号和姓名。
查询每个学生的情况和所选的课程号
查询学了体育的学生的学号和姓名
学了体育的比此课程平均成绩大的学号和成绩
实验十一. Sql server安全管理
创建新的账户和用户
创建登陆账户
创建数据库用户
把查询表s的权限授给login_account_user
删除数据用户
删除登陆账户
实验十二.数据库的备份和恢复
分离数据库
分离数据库
数据库的附加
数据库备份
还原数据库
实验十三.数据的导入导出
数据的导出
数据的导入
实验一.SQL server 2008基本服务和信息
创建test表和索引
查询test表的信息
查询column的id
查看表分区信息
实验二.数据库的创建和管理
数据库的创建
数据库的创建
修改数据库属性
删除数据库
实验三.数据表的创建和管理
建立Dept-info表

数据库实验报告

数据库实验报告

实验(一): 熟练掌握SQL语言实验目的:熟悉上机环境,创建数据库,在数据库上建立关系模式,插入数据,进行相应的查询操作。

实验内容:具体包括如下三部分。

一、熟悉上机环境。

客户/服务器结构,数据库服务器在一台NT服务器上,同学们通过客户机(操作系统为Windows 2000)上安装的SQL Server客户端程序, 使用SQL Server数据库服务器。

具体包括:1.了解SQL Server 环境。

鼠标点击开始,进入“Microsoft SQL Server→企业管理器”,点击SQL Server组下的数据库服务器(服务器名称为NEUC-201S(Windows NT)), 可以看到服务器上的圆形标志变为绿色,说明客户端程序已与服务器连接成功。

点击服务器(NEUC-201S(Windows NT))下的数据库,可以看到服务器上已建立的数据库,你可访问你有权访问的数据库,并进行相应的操作功能。

因为,数据库服务器上建有许多数据库, 每个数据库都有一些合法的用户。

2.鼠标点击开始,进入“Microsoft SQL Server→查询分析器”,输入用户名和口令,进入SQL查询分析器。

如:你登录的客户机为27号,那么请以用户名user27,口令为user27登录,登录后缺省连到数据库user27上,user27/user27是数据库user27的创建者,因此用户user27/ user27具有在数据库user27上创建表等一切权力。

3.在SQL查询分析器环境下,你就可进行SQL命令语句操作了。

二、在数据库useri上创建学生选课有关关系模式,并插入相应的数据,实现有关查询。

1.描述学生、课程情况的E-R图如下,请将其转化为用关系数据模型描述的关系模式CREA TE TABLE Student(Sno CHAR(9) PRIMARY KEY,Sname CHAR(20) UNIQUE,Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20));CREA TE TABLE Course(Cno CHAR(4) PRIMARY KEY,Cname CHAR(40),Cpno CHAR(4),Ccredit SMALLINT,FOREIGN KEY (Cpno) REFERENCES Course(Cno) );CREA TE TABLE SC(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno) REFERENCES Student(Sno), FOREIGN KEY(Cno) REFERENCES Course(Cno) );4在已建立的关系模式之上(已插入一些数据)建立主键约束,参照约束和用户定义的约束(要求学生年龄不小于14岁,不大于35岁),如果约束不能建立,请分析原因,修改后建立上述约束。

数据库原理及应用(MySQL版)-教学大纲

数据库原理及应用(MySQL版)-教学大纲

《数据库原理及应用》课程教学大纲一、课程基本信息(一)课程代码:(二)课程中文名称:数据库原理及应用(三)课程英文名称:Principle and Application of Database(四)课程性质:专业基础课程(五)适用专业:计算机科学与技术、软件工程、大数据与人工智能(六)开课单位:(七)教学时间安排:第 5 学期(八)先修课程:计算机基础、高级语言程序设计(九)后续课程:网络程序开发、大数据技术原理及应用(十)学时、学分安排:《数据库原理及应用》是计算机类各专业的必修课,是一门重要的专业基础课。

原理部分以数据库技术的实际应用为目标,重点讲述数据库的基础知识、基本原理和基本技术;应用部分以数据库应用开发为主,介绍数据库应用系统的设计方法、步骤和范例。

通过本课程学习,使学生在掌握数据库系统基本概念、原理的基础上,能熟练使用SQL语言在某一个具体的数据库管理系统上进行应用操作;掌握数据库原理、方法及步骤,具有数据库设计以及应用数据库管理系统的基本能力。

达成支撑专业学习成果相应的指标点。

课程目标对学生能力要求如下:课程目标1. 逐步掌握科学的学习方法,阅读并理解数据库相关教材、参考书和科技文献,不断地扩展知识面,增强独立思考的能力,更新知识结构。

课程目标2. 掌握关系代数语言的使用;能够熟练使用SQL语句进行数据操纵和数据定义。

课程目标3. 了解关系模型的基本概念;掌握关系数据库规范化理论,能够利用分解算法将关系模式进行合理的分解;掌握数据库设计方法和数据库系统维护的相关概念和应用。

课程目标4. 能够在MySQL平台环境和开发工具下使用SQL语句进行数据操纵和数据定义。

课程目标5. 具备良好的沟通、表达和团队协作能力。

三、教学内容与课程目标的关系1.理论教学第1章数据库系统的基本原理章节学时:(总学时:4学时;理论学时:4学时;实验学时:0学时)具体内容:(1)数据库系统概述(数据库系统概念;数据管理技术的产生和发展;数据库系统特点)。

数据库T-SQL语言操作(T-SQL语句、数据库、表、视图、索引)

数据库T-SQL语言操作(T-SQL语句、数据库、表、视图、索引)

数据库T-SQL语⾔操作(T-SQL语句、数据库、表、视图、索引)T-SQL语⾔按⽤途分四部分1. 数据定义语⾔(CREATE,DROP,ALTER)2. 数据操作语⾔(INSERT,DELETE,UPDATE)3. 数据查询语⾔(SELECT)4. 数据控制语⾔(GRANT,REVOKE,DENY)数据类型1. 系统数据类型2. ⽤户⾃定义数据类型(建⽴⽅式:a.图形化⽅式 b.命令⽅式)1use TEST2EXEC sp_addtype sno,'varchar(10)','nonull'3EXEC sp_droptype sno变量命名规则:字母、下划线、@或#开头,但不能全为下划线、@或#不能为“关键字”,不能嵌⼊空格及其他特殊字符,如需使⽤则需要双引号或⽅括号括起1.局部变量:由⽤户声明,必须以@开头,只在定义该变量的过程中有效,局部变量必须先声明后使⽤注意:第⼀次声明变量时,其值设置为NULL。

局部变量不能使⽤“变量=变量值”的格式进⾏初始化,必须使⽤SELECT或SET语句来设置其初始值。

如果声明字符型的局部变量,⼀定要在变量类型中指明其最⼤长度,否则系统默认其长度为1。

若要声明多个局部变量,请在定义的第⼀个局部变量后使⽤⼀个逗号,然后指定下⼀个局部变量名称和数据类型。

1USE student2DECLARE@var1char(10),@var2int3SET@var1='number'4select@var2=cgrade5from sc6where sno='201810010'78print@var1+"s"2.全局变量:由系统定义,供SQL server系统内部使⽤的变量,任何程序任何时间都可以调⽤。

通常以“@@”开头。

T-SQL语句1.注释语句(1) --(2) /*……*/2.批处理--GO3.控制流程语句(1) begin...end语句(相当于C语⾔中的{} )(2) if...else语句(可嵌套)(3)case语句(多条件选择语句)(4)print语句(屏幕输出语句)(5)while语句(有条件的循环语句)(6)goto语句(⽆条件跳转语句)(7)break语句(8)continue语句4.常⽤函数(系统函数、⽤户⾃定义函数)⼀些系统函数:(1)字符串函数(2)数学函数(3)⽇期和时间函数(4)聚合函数注意:⽤户⾃定义函数:1.分类:标量值函数:返回单个值内联表值函数:返回可更新的表多语句表值函数:返回不可更新的表2.标量值函数命令⽅式创建1CREATE FUNCTION f2(@a real,@b real) 2RETURNS real3AS4BEGIN5IF@a>=@b6RETURN@a7RETURN@b8END910PRINT'最⼤值为'11PRINT dbo.f2(77,56)1CREATE FUNCTION f3(@n real)2RETURNS real3AS4BEGIN5DECLARE@i real,@sum real6SET@i=07SET@sum=08WHILE@i<@n9BEGIN10SET@i=@i+111SET@sum=@sum+@i12END13RETURN@sum14END1516PRINT dbo.f3(10)3.⾃定义函数的调⽤(1)标量值函数可以使⽤select、print、exec调⽤(2)表值函数只能⽤select调⽤4.删除⽅式drop function 函数名数据库数据库概述1.数据库常⽤对象:表、数据类型、视图、索引、存储过程、触发器系统数据库:master、model、tempdb、msdb2.数据库存储结构(数据库⽂件、数据库⽂件组):数据库⽂件:存放数据库数据和数据库对象的⽂件。

数据库原理及应用实验教案

数据库原理及应用实验教案

数据库原理及应用实验教案一、实验目的1. 理解数据库的基本概念,掌握数据库的基本操作。

2. 熟悉数据库管理系统,了解数据库设计原则。

3. 学会使用SQL语言进行数据的增、删、改、查等操作。

4. 掌握数据库的索引、视图和存储过程等高级功能。

5. 培养实际操作数据库的能力,提高解决实际问题的技能。

二、实验内容1. 数据库的创建与管理创建新数据库打开现有数据库数据库的备份与恢复2. 表的创建与管理表的创建表结构的修改表的删除表的数据插入、删除和修改3. SQL语言基础数据定义语句(CREATE、ALTER、DROP)数据查询语句(SELECT)数据操纵语句(INSERT、UPDATE、DELETE)数据控制语句(GRANT、REVOKE)4. 索引与约束索引的创建、修改和删除主键、外键的设置与维护唯一约束和检查约束的设置5. 视图与存储过程视图的创建、修改和删除存储过程的创建、修改和删除存储过程的调用三、实验环境1. 硬件环境:计算机实验室,每台计算机配备数据库管理系统软件。

2. 软件环境:数据库管理系统软件(如MySQL、Oracle、SQL Server 等),编程语言环境(如Python、Java等),文本编辑器或集成开发环境(如Visual Studio Code、Eclipse等)。

四、实验步骤1. 实验准备:安装并配置数据库管理系统软件,了解实验内容和要求。

2. 实验一:数据库的创建与管理创建一个名为“实验数据库”的新数据库。

打开已存在的数据库,进行备份和恢复操作。

3. 实验二:表的创建与管理创建一个名为“学生”的表,包括学号、姓名、年龄、性别等字段。

插入、删除和修改表中的数据。

4. 实验三:SQL语言基础使用SELECT语句查询学生表中的数据。

使用INSERT、UPDATE和DELETE语句操作学生表数据。

5. 实验四:索引与约束为学生表的学号字段创建索引。

设置主键、外键、唯一约束和检查约束。

实验 视图、索引与数据库关系图

实验 视图、索引与数据库关系图

实验名称:实验五视图、索引与数据库关系图班级学号姓名日期所在院系指导老师成绩一、试验目的使学生掌握SQL Server中的视图创建、查看、修改和删除的方法;索引的创建和删除的方法;数据库关系图的实现方法。

加深对视图和SQL Server数据库关系图的理解。

二、实验内容(1)创建、查看、修改和删除视图。

(2)创建、删除索引文件。

(3)创建数据库关系图。

三、试验步骤1)视图操作(1)创建视图。

使用SQL Server Management Studio直接创建,步骤如下:1.单击数据库前面的+号,然后再单击“学生选课”数据库前面的+号,右击“视图”,在弹出的快捷菜单中选择“新建视图”命令,弹出“添加表”对话框。

如图5.1所示图5.1 “添加表”对话框2.在“添加表”对话框中,添加视图数据来源的表,这里添加三张表,分别是student、course和sc表。

添加表后,单击添加表对话框中的“关闭”按钮,出现创建视图界面。

如图5.2所示图5.2添加字段前的效果图3.如果要在视图中显示某些表的某个字段,只需单击其字段前的复选框即可,同时在中间列中会显示该字段,在代码区中会看到具体实现的代码。

4.如果要查看视图,单击常用工具栏中的“执行”按钮,就可以看到视图的数据显示,如由字段student.sno、sname、cname、grade生成的视图效果。

如图5.3所示图5.3 生成视图效果图5.在创建视图中还可以为字段添加列名、进行排序、添加多个筛选条件。

6.单击常用工具栏中的“保存”按钮,就可以弹出保存视图提示对话框,输入视图名字即可,为view_stu_grade。

(2)修改视图。

视图创建好后,就可以利用它进行查询信息了。

如果发现视图的结构不能很好的满足要求,还可以对它进行修改。

使用SQL Server Management Studio直接修改,步骤如下:1.在SQL Server Management Studio中,选择服务器、数据库、并使数据库展开,再单击“视图”前面的+,就可以看到已存在的视图了。

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

广州xx学院
数据库实验报告
专业班级计算机181 实验日期2020.5.2 姓名李x 学号20181x
实验名称视图、索引与数据库关系指导教师王x
(报告内容包括实验目的、实验设备及器材、实验内容、实验步骤、实验结果、实验小结等)
一、实验目的
要求学生掌握SQL server中的视图创建、查看、修改、和删除的方法;掌握索引的创建和删除的方法以及数据库关系图的实现方法;加深对视图和SQL server数据库关系图作用的理解。

二、实验设备及器材
Windows平台,SQL server 2012
三、实验内容
(1)创建、查看、修改和删除视图。

(2)创建、删除索引文件。

(3)创建数据库关系图。

四、实验步骤
1.在数据库EDUC中创建下列视图。

在EDUC数据库中以学生信息表Student、Course和SC表为基础完成下列视图的创建。

(1)创建计算机系学生基本情况视图V_Computer。

CREATE VIEW V_Computer
AS
SELECT*
FROM Student
WHERE dno='D1'
D1为计算机系的编号
(2)创建Student、Course和SC表中学生的sno,sname,tcid,cname,score创建视图V_SC_G。

create view V_SC_G
as
select Student.sno,sname,SC.tcid,cname,SC.score
from Student,Course,SC,TC
where Student.sno=SC.sno and SC.tcid=TC.tcid and
o=o
with check option;
(3)将各系学生人数、平均年龄创建视图V_NUM_AVG。

create view V_NUM_AVG
as
select count(sno)人数,avg(YEAR(GETDATE())-YEAR(birthday))平均年龄,dname from Student,Dept
where Student.dno=Dept.dno
group by dname;
(4)创建一个反映学生出生年份的视图V_YEAR。

create view V_YEAR
as
select birthday
from Student
(5)将各学生选修课程的门数及平均成绩创建视图V_AVG_S_G。

create view V_AVG_S_G
as
select SC.sno,count(o)课程门数,avg(SC.score)平均成绩
from Student,SC,Course,TC
where student.sno=sc.sno and SC.tcid=TC.tcid
and o=o
group by SC.sno;
(6)将各门课程的选修人数及平均成绩创建视图V_AVG_C_G。

create view V_AVG_C_G
as
select o,count(o)课程选修人数,avg(SC.score)平均成绩
from SC,TC,Course
where SC.tcid=TC.tcid and o=o
group by o;
2.利用视图完成下列查询。

(1)查询平均成绩为90分以上的学生的学号、姓名和成绩。

use EDUC
select V_SC_G.sno,V_SC_G.sname,V_AVG_S_G.平均成绩
from V_SC_G,V_AVG_S_G
where V_SC_G.sno=V_AVG_S_G.sno and平均成绩>90
(2)查询各科成绩均高于平均成绩的学生的学号、姓名、课程、和成绩。

use EDUC
select sno,sname,cname,score
from V_SC_G
GROUP BY sno,sname,cname,score
having score>avg(score)
(3)按系统计各系平均成绩在80分以上的人数,结果按降序排列。

use EDUC
select dno,count(avg(score))Num
from V_SC_G,Student
where Student.sno=V_SC_G.sno
GROUP BY dno
having avg(score)>80
order by Num desc
3.基于EDUC数据库完成下面的操作。

(1)对教师表Teacher中的教师号tno创建聚簇索引,并按降序排列。

use EDUC
create index IND_tno
on Teacher(tno desc)
(2)对学生成绩信息表SC先按上课编号tcid升序排序,再按学生成绩score降序排列创建索引。

use EDUC
create index IND_tcid_score
on SC(tcid asc,score desc)
(3)对课程信息表Course中的课程编号创建唯一索引,并按升序排列。

use EDUC
create unique index IND_cno
on Course(cno asc)
4.在数据库TSGL中创建下列视图。

(1)创建视图Read_Borrow_Book,字段为ReaderID,,BorrowerDate, BookID,,满足条件BorrowedQuantity>3。

create view Read_Borrow_Book
as
select readers.ReaderID,,borrowinf.BorrowedDate,books.BookID
from readers,books,borrowinf
where BorrowedQuantity>3
(2)利用books表创建字段为BookID,Name,Author,Publisher,PublisherDate的视图,条件满足“出版社”=“清华大学出版社”,并且Price>30。

create view IND_Book
as
select BookID,Name,Author,Publisher,PublisherDate
from books
where Publisher='清华大学出版社'and Price>30
(3)创建视图borrow_inf,字段为RedaerID,Name,RederType,BorrowedDate,条件为ReturnDate为空。

create view borrow_inf
as
select readers.ReaderID,Name,RederType,BorrowedDate
from readers,borrowinf
where ReturnDate=''
五、实验小结
通过此次实验,我已经基本掌握SQL server中的视图创建、查看、修改、和删除的方法,以及掌握索引的创建和删除的方法以及数据库关系图的实现方法。

相关文档
最新文档