数据库实验报告4(精选五篇)

时间:2019-05-12 06:49:13下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《数据库实验报告4》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《数据库实验报告4》。

第一篇:数据库实验报告4

数据库-实验报告4 学号: 11122604

姓名:陆亮

第4周(第四章:数据更新、视图、嵌入式SQL部分自学)

一、实验课:

1.建立计算机学院总评不及格成绩学生的视图,包括学生学号、姓名、性别、手机、所选课程和成绩。

2.在E表中插入记录,把每个学生没学过的课程都插入到E表中,使得每个学生都选修每门课。

3.求年龄大于所有女同学年龄的男学生姓名和年龄。4.在E表中修改08305001课程的平时成绩,若成绩小于等于75分时提高5%,若成绩大于75分时提高4%。

5.删除没有开课的学院。//删除记录而不是表。删除表要用其他。6.查询优、良、中、及格、不及格学生人数 二,代码:

create view student_fail(xh,xm,xb,sjhm,kh,zpcj)as(select distinct S.xh,S.xm,S.xb,S.sjhm,E.kh,E.zpcj from S,E where S.xh=E.xh and E.zpcj<'60');insert into E select distinct S.xh,O.xq,O.kh,O.gh ,null,null,null from S,O where not exists(select * from E where E.xh = S.xh and E.kh = O.kh);select S.xm,S.csrq from S where S.csrq<(select min(csrq)from S group by S.xb having xb = '女')update E set pscj = pscj*1.04 where pscj>75;update E set pscj = pscj*1.05 where pscj<75;delete from D where yxh not in(select yxh from T ,O where T.gh = O.gh)

第二篇:数据库实验报告4(共)

实验四 数据完整性实验 & 实验八 视图的建立和维护

实验目的和要求:

掌握SQL SERVER 2000中实体、参照及用户自定义完整性约束定义 实验内容:

1.创建、删除约束

(1)在执行创建产品信息表的操作时,指定产品编号为主键值,并且创建一个聚簇索引。

create table products(id char(10)not null,name char(20)not null, price money default 0.01, quantity smallint null,constraint pk_id primary key clustered(id))

(2)创建一个学生信息表,其中输入性别字段值时,只能接受“F”或者“M”,并且为phonenum字段创建检查约束,限制只能输入类似01080798654之类的数据,而不能随意输入其他数据。

create table student(Id char(8), name char(8), sex char(2), phonenum int,constraint chk_sex check(sex in(’F’,’M’)),Constraint chk_phonenum check(phonenum like ‘(010)*0-9][0-9][0-9][0-9] [0-9][0-9][0-9][0-9+’))

(3)删除学生信息表中的约束chk_phonenum。

use master ALTER TABLE student DROP CONSTRAINT chk_phonenum;

2.建立一个商店的数据库store

记录顾客及其购物情况,由下面三个表组成: 商品(商品号,商品名,单价,商品类别,供应商); 顾客(顾客号,姓名,住址); 购买(顾客号,商品号,购买数量);

试用SQL语言完成下列功能: 建表,在定义中要求声明:(1)每个表的主外码;(2)顾客的姓名和商品名不能为空值;(3)单价必须大于0;(4)购买数量必须在0到20之间;

create database store on primary(name=store1, filename='D:store1.mdf', size=10mb, filegrowth=10%)log on(name='store1_log', filename='D:store1_log.ldf', size=1mb, maxsize=5mb, filegrowth=1mb)

USE store create table 商品

(商品号char(10)primary key, 商品名char(10)NOT NULL, 单价money check(单价>0), 商品类别char(10), 供应商 char(10)

USE store

create table 顾客

(顾客号char(10)primary key, 姓名char(10)NOT NULL,住址 char(10));

create table 购买

(顾客号char(10), 商品号char(10),购买int check(购买>0 and 购买<20), primary key(顾客号,商品号), constraint 顾客号_fk foreign key(顾客号)references 顾客(顾客号), constraint 商品号_fk foreign key(商品号)references 商品(商品号)

实验八 视图的建立和维护

实验目的和要求:

创建表的视图,修改和删除表的视图,并利用视图完成表的查询。

实验内容: 在实验七的教学数据库中,对三个基表S、C、SC进行如下操作: 1)建立男学生的视图schoolboy,属性包括学号、姓名和年龄。2)在视图schoolboy中查询年龄为19的学生学号与姓名。3)将学号为S2的年龄改为21。

4)向男学生视图schoolboy中插入一个新的男生记录,其中学号为S6,姓名为MING,年龄为20。

5)删除视图schoolboy中学号为S3的记录。

6)建立女学生的视图,属性包括学号、姓名、选修课程名和成绩。7)在女学生视图中查询平均成绩大于80分的学生学号与姓名。

8)删除女学生视图。

具体操作如下:

1)建立男学生的视图schoolboy,属性包括学号、姓名和年龄。

create view schoolboy as select S#,SNAME,AGE FROM S WHERE SEX = 'M';2)在视图schoolboy中查询年龄为19的学生学号与姓名。

SELECT S#,SNAME FROM schoolboy WHERE AGE=19;

3)将学号为S2的年龄改为21。

UPDATE schoolboy SET AGE=21 WHERE S#='S2';4)向男学生视图schoolboy中插入一个新的男生记录,其中学号为S6,姓名为MING,年龄为20。

INSERT INTO schoolboy VALUES('S6','MING',20);

5)删除视图schoolboy中学号为S3的记录。

DELETE FROM schoolboy WHERE S#='S3';

6)建立女学生的视图,属性包括学号、姓名、选修课程名和成绩。

create view schoolgirl as select S.S#,SNAME,C.C#,GRADE FROM S,C,SC WHERE S.S#=SC.S# AND SC.C#=C.C# AND S.SEX = 'F';

7)在女学生视图中查询平均成绩大于80分的学生学号与姓名。

SELECT S# ,SNAME FROM schoolgirl WHERE GRADE IS NOT NULL GROUP BY S#,SNAME HAVING AVG(GRADE)>80;

8)删除女学生视图。

DROP VIEW schoolgirl;

第三篇:数据库实验报告

数据库实验报告

一、题目要求

某银行准备开发一个银行业务管理系统,通过调查,得到以下的主要需求:

银行有多个支行。各个支行位于某个城市,每个支行有唯一的名字。银行要监控每个支行的资产。银行的客户通过其身份证号来标识。银行存储每个客户的姓名及其居住的街道和城市。客户可以有帐户,并且可以贷款。客户可能和某个银行员工发生联系,该员工是此客户的贷款负责人或银行帐户负责人。银行员工也通过身份证号来标识。员工分为部门经理和普通员工,每个部门经理都负责领导其所在部门的员工,并且每个员工只允许在一个部门内工作。每个支行的管理机构存储每个员工的姓名、电话号码、家庭地址及其经理的身份证号。银行还需知道每个员工开始工作的日期,由此日期可以推知员工的雇佣期。银行提供两类帐户——储蓄帐户和支票帐户。帐户可以由2个或2个以上客户所共有,一个客户也可有两个或两个以上的帐户。每个帐户被赋以唯一的帐户号。银行记录每个帐户的余额、开户的支行以及每个帐户所有者访问该帐户的最近日期。另外,每个储蓄帐户有其利率,且每个支票帐户有其透支额。每笔贷款由某个分支机构发放,能被一个或多个客户所共有。每笔贷款用唯一的贷款号标识。银行需要知道每笔贷款所贷金额以及逐次支付的情况(银行将贷款分几次付给客户)。虽然贷款号不能唯一标识银行所有为贷款所付的款项,但可以唯一标识为某贷款所付的款项。对每次的付款需要记录日期和金额。

二、需求分析

这一部分主要是根据实验需求对银行系统需求中的实体、实体属性以及实体之间的关联进行确认,以便画出正确的概念模型。

2.1 实体确认

根据需求分析确认实体:银行员工、银行支行、客户、账户(其中:储蓄账户、支票账户是继承实体账户而来)、贷款、支付(弱实体)。

2.2 实体属性确认

银行员工:身份证号(pi)、姓名、电话号码、家庭地址、开始工作日期 银行支行:支行名、资产、城市

客户:身份证号、姓名、街道、所在城市 账户:账户号、余额、最近访问日期 支票账户:透支额 储蓄账户:利率 2.3 实体关系确认

账户和支行:N:1定义关系为Relationship_accout_bank 客户和贷款:M:N定义关系为Relationship_client_loan 客户和员工:M:1 定义关系为 Relation_client_staff 贷款和支行:1:N 定义关系为 Relationship_loan_bank 客户和账户:M:N 定义关系为 client__accout 贷款发放信息和贷款:N:1 定义关系为 Relationship_loan_pay 支行和员工:1:N 定义关系为Relationship_staff_bank

员工和员工:1:N 定义关系为 Relationship_lead

三、概念模型(CDM)

根据sybase power designer画出概念模型(CDM),如下图所示:

四、物理模型(PDM)

根据概念模型转化成物理模型(PDM),如下图所示:

第四篇:数据库实验报告

实验4SQL高级应用

【实验目的】

1、掌握在SQL SERVER 2005下进行数据还原的方法。

2、掌握SQL语句的查询统计功能和数据更改功能。

【实验内容】

1.还原factory数据库。

2.在factory数据库上,完成如下各题。

(1)删除factory数据库上各个表之间建立的关系。(2)*显示各职工的工资记录和相应的工资小计。

(3)*按性别和部门名的所有组合方式列出相应的平均工资。

(4)在worker表中使用以下语句插入一个职工记录。职工号:20;姓名:陈立;性别:女;出生日期:55/03/08;党员否: 1;参加工作:75/10/10;部门号:4。

在depart表中使用以下语句插入一个部门记录。部门号:5;部门名:设备处。对worker和depart表进行全外连接显示职工的职工号、姓名和部门名,然后删除这两个插入的记录。

(5)显示最高工资的职工的职工号、姓名、部门名、工资发放日期和工资。(6)显示最高工资的职工所在的部门名。

(7)显示所有平均工资低于全部职工平均工资的职工的职工号和姓名。(8)*采用游标方式实现(6)小题的功能。(9)*采用游标方式实现(7)小题的功能。

(10)*先显示worker表中的职工人数,开始一个事务,插入一个职工记录,再显示worker表中的职工人数,回滚该事务,最后显示worker表中的职工人数。

【实验报告要求】

1.第(1)写出操作步骤。

2.其他各题写出实现要求的命令/程序,并列出执行结果。

【操作步骤】

1.还原factory数据库。

2.在factory基础上,有

(1)删除factory数据库上各个表之间建立的关系。

(2)*显示各职工的工资记录和相应的工资小计。

Select 职工号,姓名,工资from salary Order by 职工号

Compute sum(工资)by 职工号

(3)*按性别和部门名的所有组合方式列出相应的平均工资。

select worker.职工号,worker.性别,depart.部门名,avg(工资)as'平均工资' from worker inner join depart on worker.部门号=depart.部门号 inner join salary on worker.职工号=salary.职工号

group by worker.职工号,worker.性别,depart.部门名

order by worker.职工号

(4)在worker表中使用以下语句插入一个职工记录。职工号:20;姓名:陈立;性别:女;出生日期:55/03/08;党员否: 1;参加工作:75/10/10;部门号:4。

insert into worker values('20','陈立','女','1955-03-08','1','1975-10-10',4)

在depart表中使用以下语句插入一个部门记录。部门号:5;部门名:设备处。

Insert into depart Values('5','设备处')对worker和depart表进行全外连接显示职工的职工号、姓名和部门名,然后删除这两个插入的记录。

use factory Select b.部门号,c.姓名

from salary a,departb,worker c delete from worker where 职工号=20 delete from depart where 部门号=5(5)显示最高工资的职工的职工号、姓名、部门名、工资发放日期和工资。

Use factory Select b.部门名,c.职工号,c.姓名,b.部门名,a.日期,a.工资 from salary a,departb,worker c Where 工资in(select max(a.工资)from salary a)and a.职工号=c.职工号and b.部门号=c.部门号(6)显示最高工资的职工所在的部门名。

Use factory Select b.部门名from salary a,departb,worker c Where 工资in(select max(a.工资)from salary a)and c.部门号=b.部门号and a.职工号=c.职工号

(7)显示所有平均工资低于全部职工平均工资的职工的职工号和姓名。

Use factory Select a.职工号,a.姓名,avg(b.工资)as平均工资from worker a,salary b where a.职工号=b.职工号 group by a.职工号,a.姓名

having avg(工资)<(select avg(工资)from salary)

第五篇:数据库实验报告

南华大学

计算机科学与技术学院

实验报告

(2013 ~2014 学

第二学期)

课程名称 实验名称

数据库原理与技术

姓名 张涛 学号 20124350230

专业 软件工程

班级 02班

地点

教师 刘征海 实验1 认识DBMS 一.实验题目

认识DBMS 二.实验要求

1.利用管理工具创建数据库、表和表间关系。

实验目的和注意事项 基本操作,进一步理解数 据库、表、表间关系的概念。

注意事项:创建数据库和数据表时应认真,如果出现错误,应相应地修改结构或删除。三.实验代码(内容)

(1)利用SQL Server Management Studio 创建数据库,名称为【学生选课

YYXXXX】。其中YY为专业代号,计算机为JS,软件工程为RJ,网络为WL,数媒为

SM;XXXX为各位同学的学号中的最后四位 实验目的:熟悉SQL Server Management Studio

(2)在【学生选课YYXXXX】中建立数据表,表的定义如下所示。

学生YYXXXX(学号,姓名,性别,出生日期,院系名称,备注);

课程YYXXXX(课程号,课程名,先行课,学分); 选修YYXXXX(学号,课程号,分数)。

要求定义每张表的主码,为属性选择合适的数据类型,决定是否允许为空,为【性别】和【学分】属性定义默认值。

(3)定义表之间的关系。

(4)分别为表录入几行数据记录,同时练习数据的修改和删除操作

2.利用SQL 语句创建数据库、表和表间关系 实验目的和注意事项

实验目的:熟悉创建数据库和数据表的SQL 语句。

注意事项:输入SQL 语句时应注意,语句中均使用西文操作符号。

实验内容

在SQL Server Management Studio 中新建查询,实现以下操作。(1)用SQL 语句创建数据库,名称为“StudentCourseYYXXXX”。其中YYXXXX 为各位同学的学号中的最后四位。

(2)用SQL 语句创建StudentCourseYYXXXX 中的3 张表,同时指定主码、外 码、默认值等。

(3)直接在表数据窗口中录入表数据记录。

实验 2 交互式 SQL(1)

一、数据库单表查询 实验目的和注意事项

实验目的:掌握单表查询SELECT、FROM、WHERE 的用法,特别要掌握比较运 算符、逻辑运算符的使用。注意事项:子句WHERE<条件>表示元组筛选条件;子句HAVING<条件>表示元

组选择条件;子句HAVING<条件>必须和GROUP BY 子句配合使用;注意输入SQL语句时均应使用西文操作符号。实验内容

(1)创建查询窗口,设置查询环境。(2)单表查询 实验步骤

(1)选择要查询的数据库,右击【新建查询】,或者选择系统菜单中的【文

件】|【新建】|【使用当前连接查询】命令,或者单击标准工具栏中的【新建查

询】按钮,即可新建一个查询窗口。如果查询数据库不是StudentCourseYYXXXX,则可在可用数据库下拉列表中进行选择,或用USE 语句调用。

(2)在查询窗口中输入SELECT 查询语句,对StudentCourseYYXXXX 数据库 进行查询操作。

① 查询计算机系全体学生的信息

② 查询姓“李”的学生的学号和姓名。

③ 查询课程表中先行课为空的课程名。

④ 查询考试成绩有不及格的学生的学号。

⑤ 求选修了C1 课程或C2 课程的学生的学号及成绩。

⑥ 查询全体计算机系学生的姓名及其年龄。

⑦ 查询计算机系在1986-1987 年之间出生的学生的姓名。

⑧ 查询姓“李”的前两个学生的学号和姓名。

⑨ 查询选修了两门以上课程的学生学号与课程数。

⑩ 查询选修课程数大于等于2 的学生的学号、平均成绩和选课门数,并按平均成绩降序排列。

二、数据库多表连接查询 实验目的和注意事项

实验目的:理解多表查询的概念;掌握多表查询的SELECT、FROM、WHERE、JOIN子句的用法,特别要求比较内连接、外连接的结果。

注意事项:内连接、左外连接和右外连接的含义及表达方法;注意输入SQL 语 句时均应使用西文操作符号。实验内容

(1)创建查询窗口,设置查询环境。(2)多表复杂查询。实验步骤

新建查询窗口,选择StudentCourseYYXXXX 为当前数据库,输入如下SELECT 查询语句并执行,对数据库进行多表连接查询操作。(1)查询选修了【数据库原理】的计算机系的学生学号和姓名。

(2)查询每一门课的间接先行课(即先行课的先行课)。

(3)查询学生的学号、姓名、选修课程的名称和成绩。

(4)查询选修了课程的学生姓名。

(5)查询所有学生的信息和所选修的课程。

(6)查询已被选修的课程的情况和所有课程的名字。

(7)列出学生所有可能的选修情况。

(8)查找计算机系的学生选修课程数大于2 的学生的姓名、平均成绩和选课 门数,并按平均成绩降序排列。

实验 3 交互式 SQL(2)数据库嵌套查询和组合查询 实验目的和注意事项

实验目的:掌握查询中嵌套查询和组合查询的操作方法,进一步加深对 SELECT 语句的理解。

注意事项:子句的使用;注意语句的层次嵌套关系和括号的配对使用问题;

注意输入SQL 语句时均应使用西文操作符号。实验内容(1)创建查询窗口,设置查询环境。(2)分组查询。(3)统计查询。(4)嵌套查询。实验步骤

新建查询窗口,选择StudentCourseYYXXXX 为当前数据库,输入如下SELECT 查询语句并执行,对数据库进行嵌套查询和组合查询操作。

(1)统计选修了【数据库原理】课程的学生人数。

(2)查询没有选修【数据库原理】课程的学生信息。

(3)查询其他系中比计算机系学生年龄都小的学生。

(4)查询被0602001 学生或0602002 学生所选修的课程的课程号(用UNION 组合查询与IN 条件查询两种方法实现)。

(5)查询0602001 学生和0602002 学生同时选修的课程的课程号(用

INTERSECT 组合查询与EXISTS 嵌套子查询两种方法实现)。

(6)查询被0602001 学生选修,但没有被0602002 学生所选修的课程的课程

号(用EXCEPT 组合查询与NOT EXISTS 嵌套子查询两种方法实现)。

实验 4 交互式 SQL(3)数据的更新 实验目的和注意事项

实验目的:熟悉插入、修改和删除SQL 语句的用法。注意事项:对于INSERT 语句,要求理解默认值约束、空值约束在插入时所 起的作用。实验内容

(1)使用INSERT 语句在数据库的表中插入几行记录。(2)使用UPDATA 语句修改某个数据。(3)使用DELETE 语句删除某行记录。实验步骤

(1)新建查询窗口,选择StudentCourseYYXXXX 为当前数据库。

(2)在已建立StudentCourseYYXXXX 数据库和StudentsYYXXXX、CoursesYYXXXX、SCYYXXXX 3 个表的基础上,向StudentCourseYYXXXX数据库中 的表更新数据。

① 向表StudentsYYXXXX 中插入(0601001,赵林, 男,1985-09-08,计算机)的记录。

② 向SCYYXXXX 表中添加一个学生的选课记录,学号为0601001,所选的课

程号为C2。SC表中有Sno、Cno、Grade 这3 个列。这里只知道学号和课程号,不知道成绩值。

③ 向表StudentsYYXXXX 中插入(0601002,张修雨,default)记录,该记录 的数据中default 表示默认值‘男’,其他数据表示空值。

④ 用CREATE 语句建立表StudentBAK1YYXXXX,包含(与Students 的Sno、Sname、Sdept 相同)3 个字段,然后用INSERT SELECT 语句实现向

StudentBAK1YYXXXX 添加StudentsYYXXXX 表中的计算机系学生的学号、姓名、所在系的信息。

⑤ 用 SELECT...INTO 语句实现把StudentsYYXXXX 表中1986 年后(包含

1986 年)出生的学生的学号、姓名存储到一个新表StudentBAK2YYXXXX。

⑥ 将姓名为【赵林】的同学的所在系改为【机电系】,爱好改为【足球】。

⑦ 将选修了课程名为【数据库原理】的学生成绩加5 分。⑧ 将StudentCourseYYXXXX

数据库的StudentBAK1YYXXXX 表中所有姓赵的 同学删除。

⑨ 删除计算机系选修成绩不及格的学生选修记录。⑩ 将除。StudentCourseYYXXXX

数据库的StudentBAK2YYXXXX 表中的所有行删

四.实验总结

实验一要注意创建数据库和数据表时应认真,如果出现错误,应相应地修改结构或删除。输入SQL 语句时应注意,语句中均使用西文操作符号;实验二应注意注意group和having以及where的搭配使用的情况;实验三注意注意输入SQL 语句时均应使用西文操作符号,子句的使用,注意语句的层次嵌套关系和括号的配对使用问题;实验四注意输入SQL 语句时均应使用西文操作符号,对于INSERT 语句,要求理解默认值约束、空值约束在插入时所起的作用。注意插入,修改,新建表,删除语句的写法,并且掌握把原表中的数据转存到新表中的语句写法。

下载数据库实验报告4(精选五篇)word格式文档
下载数据库实验报告4(精选五篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    数据库实验报告

    10包三 李雅 100910306 实验报告 一、 实验题目: 数据库基本操作实验 二、 实验目的: 掌握数据库的建立、表的设计基本方法,通过实际操作熟练掌握数据库的基本操作——数据的输......

    数据库实验报告

    实验7 索引和数据完整性的使用 1、 目的与要求 (1) 掌握索引的使用方法; (2) 掌握数据完整性的实现方法; 2、 实验准备 (1) 了解索引的作用与分类; (2) 掌握索引的创建方法; (3) 理解数据......

    数据库实验报告

    数据库系统原理课程设计 总结报告 学院: 软件学院 专业: 软件工程 年级: 2009 学号: 20092647 姓名: 李野 1、开发环境 Windows7系统 2、DBMS系统架构 采用向量的存储结构存储数......

    数据库实验报告

    课 程 实 验 报 告 课程名称: 数据库系统概论专业班级:计科1207班学号: U201215002 姓名: 李文勇 指导教师:江胜报告日期: 2015年6月8日计算机科学与技术学院 目 录 1 实验一 基......

    《数据库》实验报告(2012最新)

    《数据库系统概论》 实验报告书 专业班级 学 号 姓 名 指导教师 安徽工业大学计算机学院计101 小七制作 夏小宅 戴小平 《数据库系统概论》实验指导书 安徽工业大学计算......

    数据库实验报告

    实验一 PowerDesigner 的 CDM 应用 1:实验目的 使用PowerDesinger进行数据库概念模型设计,掌握CDM中的实体、实体属性、实体与实体之间联系的操作方法。 2:实验内容建立一个“......

    数据库实验报告[精选]

    实验报告 1. 实验内容与实验性质 实验内容:数据库实例设计 实验性质:专业基础综合设计性实验 2. 实验目的与要求 实验目的:深化“数据库设计”一章的课堂教学,借助数据库实例设......

    数据库实验报告格式

    课程:数据库原理及应用 实验题目: 系:班级:学号: 姓名:任课教师:时间: 一、 实验目的二、实验内容三、实验环境四、实验前准备五、实验步骤六、实验结果七、评价分析及心得体会......