当前位置:文档之家› 数据库实验三报告

数据库实验三报告

《数据库原理与应用》实验报告

实验名称:数据更新与视图班级:

学号:姓名:

一、实验目的

1.掌握数据更新语句的使用;

2.掌握视图操作的基本方法和应用;

3.理解基于视图的查询和数据更新操作的过程。

二、实验过程

1.在实验一创建的表中使用SQL语句完成以下操作:

(1)学生“宾兆琦”要退学,请删除该学生的所有记录。

语句:

delete from sc where sno in (select sno from student where sname='宾兆琦'); delete from student where sname='宾兆琦';

commit;

执行结果:

(2)将姓名为“朱安琪”同学的专业改为“软件工程”。

语句:

update student

set major='软件工程'

where sname='朱安琪';

commit;

执行结果:

(3)创建转专业记录表change_major,在change_major表中插入“朱安琪”同学的转专业信息。

转专业记录表中包括:编号属性列(ID),学号属性列(sno),姓名属性列(sname),转出专业属性列(cbefore),转入专业属性列(cafter)和转专业时间属性列(ctime),change_major的表结构为

Change_major(ID,sno,sname,cbefore,cafter,ctime)

其中编号属性列ID为主码,主码取值从“1”开始依次按照1递增,学号属性列sno为外码

语句:

create table change_major

(ID varchar2(20) primary key ,

sno varchar2(10),

sname varchar2(20),

cbefore varchar2(30),

cafter varchar2(30),

ctime date,

foreign key(sno) references student(sno),

check(ID>=1)

);

执行结果:

(3)删除选修了“计算机网络”但没有及格的选课记录。

语句:

delete from SC where grade<60 and cno in (select cno from course where cname='计算机网络' );

commit;

执行结果:

(4)将(106559,路前元,男,汉族,共青团员,1995/11/8,null,null)插入学生关系。

语句:

insert into student values('106559','路前元','男','汉族','共青团员',to_date('1995/11/08','yyyy/mm/dd'),null,null);

commit;

执行结果:

(5)在C表中插入以下元组:

“382,数据库原理与应用,3.5,选修,4”,

“383,JAVA语言程序设计,4.5,选修,6”

语句:

insert into course values('382','数据库原理与应用','3.5','选修','4');

insert into course values('383','JAVA语言程序设计','4.5','选修','6'); commit;

执行结果:

(6)创建视图JSJ_VIEW,包括计算机科学与技术专业学生的学号,姓名,其选修的课程名及成绩属性列。

语句:

create view JSJ_VIEW

as

select sc.sno,student.sname,https://www.doczj.com/doc/be19141143.html,ame,grade

from student,sc,course

where student.sno=sc.sno and https://www.doczj.com/doc/be19141143.html,o=https://www.doczj.com/doc/be19141143.html,o and major='计算机科学与技术' 执行结果:

(7)创建查询每个学生的修课学分的视图XF_VIEW,要求列出学生学号及总学分。

语句:

create view XF_VIEW

as

select sno,sum(credit) sum_credit

from course,sc

where https://www.doczj.com/doc/be19141143.html,o=https://www.doczj.com/doc/be19141143.html,o

group by sno;

执行结果:

(8)在创建的视图中查询李洋洋和李向冲所修的学分数。

语句:

select *

from XF_VIEW

where sno in (select sno from student where sname='李洋洋' or sname='李向冲');执行结果:

2.在实验二创建的表中使用SQL语句完成以下操作:

(1)现有一供应商,代码为S9、姓名为英特尔、所在城市西安,供应情况如下:供应零件P5给工程J7数量为600,供应零件P4给工程J4数量为500,请将此供应商的信息和供应信息插入数据库。

语句:

insert into s values('S9','英特尔','西安');

insert into spj values('S9','P5','J7','600');

insert into spj values('S9','P4','J4','500');

执行结果:

(2)请将北京供应商的供应数量加150。

语句:

update spj

set qty=qty+150

where sno in(select s.sno from s,spj where s.sno=spj.sno and city='北京'); commit;

执行结果:

(3)把全部红色零件的颜色改为黑色。

语句:

update p set color='黑' where color='红';

commit;

执行结果:

(4)由S5供给J4的零件P6改为由S1供应。

语句:

update spj set sno='S1' where sno='S5' and jno='J4' and pno='P6'; commit;

执行结果:

(5)请将(S2,J7,P4,510)插入供应情况关系。

语句:

insert into spj values('S2','P4','J7','510');

commit;

执行结果:

(6)零件P3已经停产,请将P3的相关信息从数据库中删除。

语句:

delete from spj where pno='P3';

delete from p where pno='P3';

commit;

执行结果:

(7)创建零件名为螺丝刀的供应情况的视图P_ls,包括供应商名(Sname),零件名(Pname),零件重量(Weight),工程项目代码(Jno),供应数量(QTY). 语句:

create view P_ls(Sname,Pname,Weight,Jno,QTY)

as

select sname,pname,weight,j.jno,qty

from s,p,j,spj

where s.sno=spj.sno and p.pno=spj.pno and j.jno=spj.jno and pname='螺丝刀'

with check option

执行结果:

(8)在视图P_ls中查询供应数量为500的供应商姓名。

语句:select sname from P_LS where qty='500'

执行结果:

(9)请为三建工程项目建立一个供应情况的视图SJ_View,包括供应商编号,零件编号,供应数量。

语句:

create view SJ_View(sno,pno,qty)

as

select sno,pno,qty

from j,spj

where j.jno=spj.jno and jname='三建'

with check option

执行结果:

(10)在系统表user_updatable_columns中查看视图SJ_View是否可以更新,如果不能说明原因。

语句:

select * from user_updatable_columns where table_name='SJ_VIEW'

执行结果:

三、实验总结

在这次实验中,我很用心去做,但是,在实验中也出现了很多的问题,最大的问题就是随着学习的SQL语句逐渐增多,在使用过程中显得不熟练,在写语句时经常会出现各种不同的错误。

实验中我遇到了一些问题,在向老师请教的过程中我收获了很多,收获匪浅。

数据库实验报告(通用3篇)

数据库实验报告(通用3篇) 数据库试验报告篇1 一、实训时间: 20_年5月13日至5月24日 二、实训地点: 三、实训目的与意义: 1,这次实习可以使我们在课本上学到的学问用于实践增加了我对电脑技巧的一些认知。 2,通过这次实习也可以让我体验到上班族的生活为我将来毕业后找工作打下了基础。 3,并且这次实习可以非常好的关心我完成将来的毕业论文。 四、实训感悟: 还依旧记得来的第一天对这里很茫然,不知道实习要做些什么。然后经过老师的急躁讲解,熟悉了自己实习要做些什么,得到了许多心理熟悉,对许多问题都有了一些更深的了解。同时,我熟识了河北玛世电子商务有限公司,总部位于国家命名的“中国丝网之乡”、“中国丝网产业基地”、中国丝网产销基地“、”中国丝网出口基地“—河北省安平县。使我们队公司有了更进一步的了解 实习,就是在实践中学习。经过这半个月的实习训练,我了解到自己所学的如何在实践中运用。当然学的更多的是如何在更新网站内容和添加商品,每天不厌其烦的更新添加,观察自己的胜利更多的是兴奋。还有发布了一些关于公司产品的博客,比如新浪,网易。而后又尝试在百度知道上提问与回答,在回答问题的过程中,通过网站搜寻相关内容来回答各种丝网问题,通过百度知道这个平台,我对公司又了更一步的了解。 经过半个月的实训我学到了许多之前没有学过没有接触到的东西,熟悉到自己的不足,需要更加努力,才能尽快的学会在社会上生活,敢于面对社会的压力,使自己可以在社会上成长进展。

数据库试验报告篇2 由于平常接触的都是一些私人项目,这些项目大都是一些类库,其他人的沟通相对可以忽视不计,因此也就不考虑规范化的文档。实际上从学习的经受来看,我们接触的学问体系都是属于比较老或比较传统的,与现在进展快速的IT行业相比许多状况已不再适用,尤其是当开源模式渐渐走近开发者后更是如此。 虽然这次是一个数据库课程设计,由于本人在选择项目的时候是本着对自己有实际应用价值的角度考虑的,所以其中也涉及到一些数据库以外的设计。对于OOA/OOD的开发模式有时不免要提出一些疑问,UML是设计阶段的工具,而它基本涵盖了软件设计的方方面面,也就是说根据这一软件工程的正常流程,在动手写第一句代码之前,开发人员已经特别熟识软件产品了,这对于相当有阅历的架构师一类人说可能会很简单,但是我们作为同学,连足够的编码阅历都没有,却首先被教授并要求先OOA再OOP,这样直接导致的问题就是文档与编码对不上号,在修改代码的时候基本不会再去审查文档和从前的分析。甚至根本就是现有代码再有文档,即便是这种状况,代码与文档还是不对应。不行否认,在传统软件工程的具体设计之前的项目过程中还是有许多利于项目开发的部分的。所以我就始终在查找适合我——针对探究型项目——的开发模式,这次的项目也算是一次尝试,当然这个过程并不会太短。 回到数据库设计上了,这次的数据库设计我是严格根据数据库建模的步骤来进行的,狡猾说我并没有感觉这样的流程对开发带来多大的关心,反倒是觉得将思维转化为图表很铺张时间。总体上来说这次的项目也不是很大,而且在数据库的设计上比较保守,也就是说实际上数据库设计还可以再完善完善的。随着我对计算机领域的拓宽和加深,我也会静下心来思索在接触计算机之前的行为,许多次我能深切感觉到,其实我的大脑(未于别人比较)本身就是在使用一种更接近关系数据库的方式来记忆,所以我很可恨自然的设计出符合三范式的表结构来,即便我不知道这些范式的准确含义。可能就像“范式不太简单用通俗易懂的方式解释”一样,在“让工具用图标表述我的思维”时费了一番力气。

数据库原理实验报告-实验三-数据完整性与安全性控制

《数据库原理》实验报告 题目:实验三 数据完整性与安全性控制学号班级日期 2016.10.18 一、实验容、步骤以及结果 1.利用图形用户界面对实验一中所创建的Student库的S表中,增加以下的约束和索引。 (18分,每小题3分) (1)非空约束:为出生日期添加非空约束。 非空约束:取消表S中sbirth的勾。可能需要重建表。 (2)主键约束:将学号(sno)设置为主键,主键名为pk_sno。 设主键:单击数据库Student-->单击表-->单击S-->右击sno-->选择‘修改’命令 -->对话框中右击sno-->选择‘设置主键’-->修改主键名为‘pk_sno’-->保存 (3)唯一约束:为(sname)添加唯一约束(唯一键),约束名为uk_sname。 唯一约束:单击数据库Student-->单击表-->单击S-->右击sname-->选择‘修改’ 命令→右击sname-->选择‘索引和键’命令-->打开‘索引和键’框图-->添加--> 是否唯一改为‘是’-->名称改为‘us_sname’-->关闭。

(4)缺省约束:为性别(ssex)添加默认值,其值为“男”。 设默认约束:单击数据库Student→单击表→单击S→右击sno→选择‘修改’命令→单击cno-->在默认值栏输入‘男’→保存

(5)CHECK约束:为SC表的成绩(grade)添加CHECK约束,约束名为ck_grade,其 检查条件为:成绩应该在0-100之间。

(6)外键约束:为SC表添加外键约束,将sno,cno设置为外键,其引用表分别是S表 和C表,外键名称分别为fk_sno,fk_cno。 2.在图形用户界面中删除以上小题中已经创建的各种约束,用SQL语言分别重新创建第1题中的(2)-(6)小题.(15分,每小题3分,提示:alter table add constraint) 删除约束:单击数据库Student-->表-->单击S-->展开键、约束。一一删除即可。

实验三 SQL的连表与子查询

北京林业大学 2013学年—2014学年第1学期数据库原理与应用实验报告书 专业:信息管理与信息系统班级: 姓名:学号: 实验地点:计算机中心机房任课教师: 实验题目:实验三 SQL的连表与子查询 实验环境: Windows 2000 Server、SQL Server 2000 实验目的、内容、实现方法、实验结果及结论分析等: 在查询分析器中,使用SELECT语句完成下面的操作: 1. 连表检索 ①查询马驰同学所学课程的课程号、课程名和成绩 use SDB select s.sno,cn,grade from s join sc on s.sno=sc.sno join c on https://www.doczj.com/doc/be19141143.html,o=https://www.doczj.com/doc/be19141143.html,o where sn='马驰' 【分析】用自然连接查询,判断条件是学生姓名为“马驰”,先从s表中查出马驰的学号,与sc表中的学号连接起来,再在sc表中查询该学号对应的课程号,再输出课程号对应的成绩。 ②查询所有比马驰年龄大的学生姓名,年龄,性别 select X.sn,X.age,X.sex from s X join s Y on X.age>Y.age where Y.sn='马驰' 【分析】这是一个表和它自身的大于连接,分别将s表给了两个别名X和Y,该连接是把X表和Y表中大于马驰的年龄的行连接起来。因为已经将s表给了别名,所以在之后的表示中应该使用表的别名。 ③查询所有比马驰年龄大的学生姓名,年龄,性别和马驰的年龄 select X.sn as 姓名,X.age as 年龄,X.sex as 性别,Y.age as '马驰年龄' from s X join s Y on X.age>Y.age

数据库原理实验报告(数据查询)

数据库原理实验报告 实验三数据查询 班级:××× 姓名:××× 学号:××× 数据查询 一、[实验目的] 1.掌握SQL的单表查询操作

2.掌握SQL的连接查询操作 3.掌握SQL的嵌套查询操作 4.掌握SQL的集合查询操作 二、[实验内容] 本实验的主要内容是: 1.简单查询操作。包括投影、选择条件表达,数据排序,使用临时表等。 2.连接查询操作。包括等值连接、自然连接、求笛卡儿积、一般连接、外连接、内连接、左连接、右连接和自连接等。 3.在SQL Server查询分析器中,使用IN、比较符、ANY或ALL和EXISTS操作符进行嵌套查询操作。 4.组合查询与统计查询。 (1)分组查询实验。该实验包括分组条件表达、选择组条件的表达方法。 (2)使用函数查询的实验。该实验包括统计函数和分组统计函数的使用方法。 (3)组合查询实验。 (4)计算和分组计算查询的实验。 三、[实验方法] 1.将查询需求用Transact-SQL语言表示。 2.在SQL Server查询分析器的输入区中输入Transact-SQL查询语句。 3.设置查询分析器结果区为Standard Execute(标准执行)或Execute to Grid方式。 4.发布执行命令,查看查询结果;如果结果不正确,进行修改,直到正确为止。 5 查询分析器的主要作用是编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出来(或进行存储)。查询分析功能主要是通过测试查询成本,判断该查询是否需要增加索引以提高查询速度,并可以实现自动建立索引的功能。 图5- 错误!未定义书签。SQL Server 2000查询分析器 查询分析器的界面如图5- 错误!未定义书签。所示。在查询生成器中的左边窗口是对象浏览器,其中按树结构列出了数据库对象;右上方是SQL代码区域,用于输入SQL的查

数据库第4版第三次实验报告 石家庄经济学院

X x x x学院实验报告 学院: 专业: 信息工程学院计算机实验中心制

《数据库原理》实验报告 姓名学号日期 实验室指导教师设备编号 实验题目实验单元三SQL 数据查询与维护 一、实验目的 1)熟悉SQL数据查询语言 2)熟练的用SQL语句进行单表查询、多表连接查询、嵌套查询、集合查询。 二、实验内容 1)还原得到实验二中建立的SPJ数据库; 2)求供应工程J1零件的供应商号码SNO; 3)求供应工程J1零件P1的供应商号码SNO; 4)求没有使用天津供应商生产的红色零件的工程号JNO; 5)求至少使用了供应商S1所供应的全部零件的工程号JNO; 6)找出所有供应商的姓名和所在城市; 7)找出所有零件的名称、颜色和重量; 8)找出使用供应商S1所供应零件的工程号; 9)找出工程项目J2使用的各种零件的名称及其数量; 10)找出上海厂商供应的所有零件号码; 11)找出使用上海产的零件的工程名称; 12)找出没有使用天津产的零件的工程号码; 13)把全部红色零件的颜色改为蓝色; 14)由S5供应J4的零件P6改为有S3供应; 15)从供应商关系中删除S2的记录,并从供应关系中删除相应的记录; 16)将(S2,J6,P4,200)插入到供应关系中 若有剩余时间,建立教材上的JXGL数据库Student、SC、Course表,并练习教材上给出的各个SQL查询的例子。 三、实验要求 1)实验报告中要求分别列出进行1)~16)操作的SQL语句,并指出语句能否执行并得到正确结果。 2)考虑能否使用多表查询和嵌套查询方法实现,对于嵌套查询考虑是否可以用EXISTS 谓词实现。 四、实验结果 1)还原数据库SPJ 2) 求供应工程J1零件的供应商号码SNO select distinct sno from spj where jno='j1'; 3) 求供应工程J1零件P1的供应商号码SNO select distinct sno from spj where pno='p1' and jno='j1';

《数据库技术A》实验报告册V3(李欣)(1)

《数据库技术》实验报告册 20 19 - 20 20 学年第一学期班级: 学号: 姓名: 授课教师:实验教师: 实验学时:36h 实验组号: 信息管理系 2019年12月

湖北汽车工业学院 学生实验守则 (2001年6月) 第一条实验室是实验教学和科研的重要场所,不作它用,非实验人员,未经允许不得入内。为保证良好的实验环境,特制定本守则。要求所有实验的学生在进入实验室后要认真遵守本守则。 第二条所有实验的学生要服从实验室管理人员或指导教师的管理,严格设备遵守操作规程和各项制度,注意安全。爱护仪器,节约药品和材料。保持室内整洁,废液倒在废液桶内,不允许随意混合各种药品,以免发生意外。 第三条严格遵守学院实验考勤制度,认真完成实验任务。 第四条实验前要认真做好预习。明确实验目的、要求,了解实验基本原理、操作步骤、方法和注意事项。未预习者不准进行实验。 第五条进入实验室要衣冠整齐,实验中不得高声喧哗到处走动,影响他人实验。严禁在实验室内吸烟、饮食或将食具带入实验室 第六条爱护一切设施,禁止乱刻乱画。实验中如发现设备有异常情况,应及时报告指导教师,不得自行处理。实验完毕,应把实验台、实验器材等整理干净放还原处。值日小组做好清洁,关好水电,经教师同意后才能离开。 第七条以严肃认真的态度进行实验。实验中要正确操作,仔细观察,作好记录,反复思考。实验后按时上交实验报告,实验报告要求数据准确,字迹工整。 第八条实验室一切设施器材不准拿出室外,如有特殊需要,须经管理人员按审批手续办理。实验中不得随意挪动、拆卸实验设备,不准超负荷使用。使用精密贵重仪器和成套仪器,需在教师指导下进行,经教师检查后方可启动。 第九条若发生意外事故,应保持镇静,不要惊慌。遇有烧伤、烫伤、割伤时,应立即报告教师,及时处理。爱护国家财产,如有违章损坏仪器设备者,根据学院有关制度进行处理。 第十条本办法自颁布之日起实行,原有相应规章制度作废。其他未尽事宜参照学院有关规章制度执行。

数据库实验报告(实验三)

沈阳工程学院 学生实验报告 (课程名称:数据库系统原理) 实验题目:数据查询(一) 班级学号姓名 日期201年月日地点指导教师

一、实验目的 掌握SQL查询命令:主要针对单表查询。 二、实验环境 Oracle10g数据库系统。 三、实验内容与要求 使用Select命令完成下列数据查询。 简单查询: ⑴查询全体顾客的编号和姓名。 ⑵查询全部商品的详细记录。 ⑶查询顾客的姓名和出生年份。 ⑷查询购买了商品的顾客的编号。 ⑸查询职业(g_work)为“教师”的顾客的姓名。 ⑹查询“沈阳市”年龄在20岁以下的顾客的编号和年龄。 ⑺查询年龄在20—22岁的顾客的编号。 ⑻查询“沈阳”、“大连”、“北京”的顾客信息。 ⑼查询姓"王"的顾客的信息。 ⑽查询购买商品编号为“02”的顾客的编号和购买数量,结果按顾客编号升序,购买数量降序排列。 ⑾查询顾客总人数。 ⑿查询购买商品编号为“02”的一次最高购买量。 ⒀查询购买2次和2次以上商品的顾客编号。 四、实验过程及结果分析 ⑴查询全体顾客的编号和姓名,如图1所示。 select guestid,guestname from guest;

图1 ⑵查询全部商品的详细记录,如图2所示。 select * from goods;

图2 ⑶查询顾客的姓名和出生年份,如图3所示。 Select guestname,2016-g_age from guest;

图3 ⑷查询购买了商品的顾客的编号,如图4所示。Select distinct guestid From purchase;

图4 ⑸查询职业(g_work)为“教师”的顾客的姓名,如图5所示。 Select guestname From guest Where g_work='教师'; 图5 ⑹查询“沈阳市”年龄在20岁以下的顾客的编号和年龄,如图6所示。Select guestid,g_age From guest Where g_age<20 and g_addr='沈阳';

数据库实验3实验报告

数据库实验3实验报告 数据库实验3实验报告 一、引言 数据库实验3是本学期数据库课程的重要实验之一。在这个实验中,我们需要设计和实现一个数据库系统,并对其进行性能测试和优化。本实验报告将详细介绍我们的实验过程、实验结果以及对实验结果的分析和总结。 二、实验目的 本次实验的主要目的是让我们熟悉数据库系统的设计和实现过程,掌握数据库性能测试和优化的方法。通过这个实验,我们将学会如何使用SQL语言进行数据库操作,如何设计和建立数据库表,以及如何进行性能测试和优化。 三、实验环境 我们使用了MySQL数据库管理系统作为实验的工具。MySQL是一个开源的关系型数据库管理系统,具有高性能、稳定可靠等特点。我们在Windows操作系统上安装了MySQL,并使用了Navicat for MySQL作为数据库的可视化管理工具。 四、实验过程 1. 数据库设计 在开始实验之前,我们首先进行了数据库的设计。根据实验要求,我们需要设计一个学生信息管理系统。我们将学生信息分为学生基本信息和学生成绩两个部分,分别设计了两个表格,分别为"student"和"score"。 2. 数据库建立 在完成数据库设计后,我们使用SQL语言创建了两个表格,并添加了相应的字

段和约束。我们使用了适当的数据类型来存储学生的基本信息和成绩数据,并添加了主键和外键约束来保证数据的完整性和一致性。 3. 数据库操作 在数据库建立完成后,我们使用SQL语言进行了一系列的数据库操作。我们插入了大量的测试数据,并进行了查询、更新和删除等操作。通过这些操作,我们可以验证数据库的正确性和完整性,并测试数据库的性能。 五、实验结果 通过对数据库的操作和测试,我们获得了一些实验结果。首先,我们发现数据库的设计和建立是正确的,数据的插入和查询操作都能正常运行。其次,我们发现数据库的性能较好,查询操作的响应时间较短,满足了实际应用的需求。 六、实验分析 在对实验结果进行分析时,我们发现数据库的性能与数据量、索引和查询语句等因素密切相关。当数据量较大时,查询操作的响应时间会增加;当使用了适当的索引时,查询操作的性能会得到提升;当使用了复杂的查询语句时,查询操作的性能可能会下降。 七、实验总结 通过本次实验,我们学习了数据库的设计和实现方法,掌握了SQL语言的使用技巧,了解了数据库的性能测试和优化方法。同时,我们也发现了数据库设计和性能优化的重要性,这对于提高数据库系统的性能和可靠性具有重要意义。总之,数据库实验3是一次非常有意义的实验。通过这个实验,我们不仅学到了很多有关数据库的知识和技能,还提高了自己的实践能力和问题解决能力。希望在今后的学习和工作中,我们能够充分应用所学知识,为实际问题提供有

数据库实验报告3

实验项目列表 序号实验项目名称成绩指导教师 1 实验一数据库的定义实验(验证性) 2 实验二数据库的建立和维护实验(验 证性) 3 实验三数据库的查询实验(验证性) 4 实验四数据库的视图操作实验(验证 性) 5 实验五触发器、存储过程操作实验 (综合性)

实验项目名称 一、实验目的: 1、理解MySQL Server 5.1 服务器的安装过程和方法; 2、要求学生熟练掌握和使用SQL、T-SQL、SQL Server Enterpriser Manager Server 创建数据库、表、索引和修改表结构,并学会使用SQL Server Query Analyzer。 二、实验环境: 硬件:PC 机 软件:Windows 操作系统、MySQL Server 5.1 三、实验内容和原理: 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、运行MySQL Query Browser,然后进入到GUI界面; 2、利用图形界面建立基础表: student表的信息: 字段名类型长度约束条件 Sno varchar 9 非空、主键 Sname varchar 20 Ssex varchar 2 Sage smallin t 6 Sdept varchar 20 course表的信息: 字段名类型长度约束条件 Cno varchar 4 非空、主键

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

实验三多表查询 【实验目的】 掌握多张表进行连接查询,主要包括连接查询、子查询和相关子查询等内容。 【实验内容】 在实验一的基础上完成下列查询。 (1)(连接查询) 求选修了课程001且成绩在70分以下或成绩在90分以上的学生的姓名、课程名称和成绩。 select sname,cname,score from student,score,course where student.sno=score.sno and https://www.doczj.com/doc/be19141143.html,o=https://www.doczj.com/doc/be19141143.html,o and https://www.doczj.com/doc/be19141143.html,o='001' and score between 70 and 90; (2)(连接查询与表的别名) 求选修了课程001且成绩在70分以下或成绩在90分以上的学生的姓名、课程名称和成绩。 select sname,cname,score from student s1,score s2,course c1 where s1.sno=s2.sno and https://www.doczj.com/doc/be19141143.html,o=https://www.doczj.com/doc/be19141143.html,o and https://www.doczj.com/doc/be19141143.html,o='001' and s2.SCORE between 70 and 90; (3)(自然连接查询) 求学生学号、姓名以及其选修课程的课程号和成绩。 select s1.sname,s1.sno,https://www.doczj.com/doc/be19141143.html,o,s2.score from student s1,score s2 where s1.sno=s2.sno; (4)(自身连接查询) 求年龄大于'李丽' 的所有学生的姓名、系和年龄。 select s2.sname,s2.sdept,s2.sage from student s1,student s2 where s1.sname=' 李丽' and s2.sage>s1.sage; (4)(外部连接查询) 求未选修任何课程的学生的姓名。 select * from student a left join score b on a.sno=b.sno where b.sno is null; (6)(子查询) 求与‘李丽’年龄相同的学生的姓名和系。 select sname,sdept from student where sage=(select sage from student where sname=' 李丽'); (7)(子查询) 求选修了课程名为‘数据结构’的学生的学号和姓名。 select sno,sname from student where sno=(select sno from score where cno=(select cno from course where cname=' 数据结构')) ;

实验三 数据库和数据表的创建

实验三创建数据库和数据表 一、实验目的 1. 掌握使用SQL Server Management Studio创建数据库的方法与步骤 2. 掌握创建数据库的SQL 语句 3、掌握使用SQL Server Management Studio创建数据表的方法与步骤 4、掌握创建数据表的SQL 语句 背景知识 在SQL Server中,数据库是由数据库文件和事务日志文件组成的。一个数据库至少应包含一个数据库文件和一个事务日志文件。 数据库文件是存放数据库数据和数据库对象的文件。一个数据库可以有一个或多个数据库文件,当有多个数据库文件时,有一个文件被定义为主数据库文件,扩展名为.mdf,它用来存储数据库的启动信息和部分或全部数据,一个数据库只能有一个主数据库文件。其它数据库文件被称为次数据库文件,扩展名为.ndf,它主要用来存储除主数据文件外的所有数据文件。一个数据库可以没有次数据库文件,但也可以同时拥有多个次数据库文件。 事务日志文件是用来记录数据库更新情况的文件,扩展名为.ldf。它包含恢复数据库所需的所有日志信息。每个数据库必须至少有一个日志文件。 文件组是将多个数据库文件集合起来形成的一个整体。每个文件组有一个组名。文件组分为主文件组和用户定义文件组。一个文件只能存在于一个文件组中,一个文件组也只能被一个数据库使用。注:事务日志文件不属于任何文件组。 二、实验内容与步骤 2.1 操作内容: ●创建一个名为“testdb”数据库: (1)包含一个数据文件,逻辑文件名“testdb_data”,磁盘文件名‘d:\testdb-data.mdf’,文件初始容量为5MB,最大容量为15MB,文件容量递增值为1MB; (2)包含一个事务日志文件,逻辑文件名为‘d:\testdb_log’, 磁盘文件名“testdb_log.ldf”,文件初始容量为5MB,最大容量为10MB,文件容量递增值为1MB; ●对数据库作如下修改: (1)添加一个数据文件,逻辑文件“testdb2_data”,磁盘文件名“d;\testdb2_data.ndf”,文件初始容量为1MB,最大容量为6MB,文件容量递增值为1MB; (2)将事务日志文件的最大容量增加为15MB,递增值改为2MB;

SQL数据库实验报告 实验三

实验3 SQL Server数据表的管理 1.实验目的 (1)掌握使用SQL Server管理平台和Transact-SQL语句CREA TE TABLE和ALTER TABLE创建和修改表的方法。 (2)掌握在SQL Server管理平台中对表进行插入、修改和删除数据操作的方法。 (3)掌握使用Transact-SQL语句对表进行插入、修改和删除数据操作的方法。 (4)了解SQL Server的常用数据类型。 2.实验内容及步骤 (1)启动SQL Server管理平台,在对象资源管理器中展开studentsdb数据库文件夹。 (2)在studentsdb数据库中包含有数据表student_info、curriculum、grade,这些表的数据结构如图1-2至图1-4所示。 图1-2 学生基本情况表student_info 图1-3 课程信息表curriculum 图1-4 学生成绩表grade (3)在SQL Server管理平台中创建student_info、curriculum表。

(4)在SQL Server 管理平台中,将student_info 表的学号列设置为主键,非空。

(5)使用Transact-SQL语句CREA TE TABLE在studentsdb数据库中创建grade表。 (6)student_info、curriculum、grade表中的数据如图1-5至图1-7所示。 图1-5 student_info的数据

图1-6 curriculum的数据 图1-7 grade的数据 (7)在SQL Server管理平台中为student_info、curriculum、grade表添加数据。

数据库原理实验报告(3)实验三数据表的创建与管理实验

南京晓庄学院 《数据库原理与应用》课程实验报告 实验三数据表的创建与管理实验 所在院(系):数学与信息技术学院 班级: 学号:

姓名: 1.实验目的 (1)理解SQL Server 2005常用数据类型和表结构的设计方法。理解主键、外键含义,掌握 建立各表相关属性间参照关系的方法。 (2)熟练掌握使用SQL Server Management Studio图形工具创建表,删除表,修改表结构, 插入及更新数据的方法。 (3)熟练掌握使用Transact-SQL语句创建表,删除表,修改表结构,插入及更新数据的方法。 2.实验要求 基本实验: (1)在实验二所创建的“TM”数据库中合理设计以下各表逻辑结构: 学生信息(学号,姓名,性别,籍贯,出生日期,民族,学院/系别号,班级号) 课程信息(课程号,课程名称,课程所属模块,课程类别,学分,学时) 学习信息(学号,课程号,考试成绩,平时成绩) 院系信息(院系号,院系名称) 要求确定各个字段的名称、类型、是否有默认值,是否主键等信息。 (2)依据你所设计的表结构,使用SQL Server Management Studio图形工具在“TM”数据库中 创建学生信息表和课程信息表,并试验在图形界面中修改表结构,删除数据表,输入并更新数据的方法。 (3)依据你所设计表结构,使用Transact-SQL语句创建学习信息表和院系信息表,并试验使 用T-SQL语句修改表结构,删除数据表,插入和更新数据的方法。 (4)找出已创建各表之间相关属性的参照关系,并在相关表中增加引用完整性约束。 (5)按要求完成实验报告。 扩展实验: (1)在“TM”数据库中补充设计以下各表结构: 教师信息(教师号,姓名,性别,出生日期,学历,学位,入职时间,职称,院系号) 授课信息(教师号,课程号,学期) 班级信息(班级号,班级名称,专业号) 专业信息(专业号,专业名称,学制,学位) 图书信息(图书号,书名,作者,出版社,出版日期,册数,价格,分类) 借书偏息(学号,图书号,借出时间,归还时间) 奖励信息(学号,奖励类型,奖励金额) (2)设计并实现各表之间相关属性的参照关系。 (3)使用SQL Management Studio图形界面或Transact-SQL在“TM”数据库中创建前述各表, 并插入部分数据,要求所插入数据合理有效。 3.实验步骤、结果和总结实验步骤/结果

数据库原理与应用实验报告3--练习题学生表和选课表

1 1、在学生表Stu 和学生选课表SC 中分别添加如下两表中的记录。 学生表Stu 学生选课表SC 学号 (Sno) 姓名 (Sname) 年龄 (Sage) 性别 (Ssex) 所在系 (Sdept) 98010 赵青江 18 男 CS 98011 张丽萍 19 女 CH 98012 陈景欢 20 男 IS 98013 陈婷婷 16 女 PH 98014 李 军 16 女 EH 课程表Course 课程号 (Cno) 课程名 (Cname) 先修课号(Cpno) 学分 (Ccredit ) 2、备份Student 表到TS 中,并清空TS 表。 SELECT *INTO ts FROM stu TRUNCATE TABLE ts 3、给IS 系的学生开设7号课程,建立所有相应的选课记录,成绩暂定为60分。 INSERT INTO sc(Sno,Cno,Grade)SELECT sno,7,60 FROM stu WHERE Sdept='IS' 4、把年龄小于等于16的女生记录保存到表TS 中。 学号 (Sno) 课程号 (Cno) 成绩 (Grade) 98010 1 87 98010 2 98010 3 80 98010 4 87 98010 6 85 98011 1 52 98011 2 47 98011 3 53 98011 5 45 98012 1 84 98012 3 98012 4 67 98012 5 81

数据库原理与应用实验指导 INSERT INTO ts SELECT Sno,Sname,Sage,Ssex,Sdept FROM stu WHERE Ssex ='女' AND Sage<=16 5、在表Student中检索每门课均不及格的学生学号、姓名、年龄、性别及所在系等信息,并把检索到的信息存入TS表中。 6、将学号为“98011”的学生姓名改为'刘华',年龄增加1岁。 7、把选修了“数据库系统”课程而成绩不及格的学生的成绩全改为空值(NULL)。 8、将Student的前4位学生的年龄均增加1岁。 9、学生王林在3号课程考试中作弊,该课成绩改为空值(NULL)。 UPDATE sc SET grade=NULL WHERE cno='3' AND '王林'=(SELECT sname FROM stu WHERE stu.`Sno`=sc.`Sno`) 10、把成绩低于总平均成绩的女同学成绩提高5%。 UPDATE sc SET grade=grade*1.05 WHERE grade<(SELECT AVG(grade)FROM sc)AND sno IN (SELECT sno FROM stu WHERE 2

数据库实验报告3

数据库实验报告3 数据库实验报告3 引言: 数据库是现代信息管理的关键工具之一,它能够高效地存储和管理大量的数据。在数据库的设计和实验中,我们需要掌握各种操作和技巧,以便更好地利用数 据库来满足实际需求。本篇实验报告将介绍数据库实验的第三次实验内容和结果,以及我在实验过程中遇到的问题和解决方法。 实验目的: 本次实验的主要目的是学习和掌握数据库的索引和视图的创建和使用。索引和 视图是数据库中非常重要的组成部分,能够提高查询效率和数据管理的灵活性。通过本次实验,我将深入了解索引和视图的原理和应用,并能够熟练地创建和 使用它们。 实验内容: 本次实验主要包括索引的创建和使用,以及视图的创建和使用两个部分。在索 引的创建和使用部分,我首先学习了索引的原理和分类,了解了索引在数据库 中的作用和优势。然后,我通过实际操作在数据库中创建了几个索引,并进行 了查询测试,比较了有索引和无索引的查询效率差异。结果显示,有索引的查 询速度更快,能够大大提高查询效率。在视图的创建和使用部分,我学习了视 图的定义和使用方法,了解了视图在数据库中的应用场景。我通过实际操作创 建了几个视图,并进行了查询测试,验证了视图的灵活性和便利性。 实验结果: 通过本次实验,我成功地创建了多个索引和视图,并进行了相应的查询测试。

实验结果显示,有索引的查询速度明显快于无索引的查询,证明了索引在提高 查询效率方面的重要作用。另外,我也发现了视图在数据管理中的灵活性,通 过创建视图,我可以方便地对数据库中的数据进行筛选和组合,满足不同的查 询需求。 实验问题及解决方法: 在实验过程中,我遇到了一些问题,但通过查阅文献和请教老师,我成功地解 决了这些问题。首先,我在创建索引时遇到了命名冲突的问题,通过为每个索 引指定唯一的名称,我成功地解决了这个问题。其次,我在创建视图时遇到了 语法错误的问题,通过仔细检查语法和参考示例,我找到了错误并进行了修改。最后,我在查询测试中遇到了性能问题,通过优化查询语句和调整索引,我成 功地提高了查询的性能。 实验总结: 通过本次实验,我深入了解了数据库中索引和视图的原理和应用,掌握了它们 的创建和使用方法。索引和视图是数据库中非常重要的组成部分,能够提高查 询效率和数据管理的灵活性。在今后的数据库设计和实验中,我将更加注重索 引和视图的应用,以提高数据库的性能和管理效果。同时,我也意识到在实验 过程中遇到问题时,及时请教老师和查阅文献是解决问题的有效方法,希望今 后能够更加独立地解决实验中遇到的问题。 结语: 通过本次实验,我对数据库中索引和视图的原理和应用有了更深入的理解,并 掌握了它们的创建和使用方法。数据库的设计和实验是非常重要的,能够提高 数据管理和查询效率。在今后的学习和工作中,我将继续深入学习数据库的相

数据库的实验总结报告

数据库的实验总结报告 数据库的实验总结报告 一、实验目的: 通过本次实验,掌握数据库的基本概念和操作技能,学习数据库的基本管理和维护,理解数据库的基本原理和架构,掌握SQL语言的基本使用方法。 二、实验过程和方法: 1. 实验环境: 本次实验使用MySQL数据库管理系统作为实验环境,通过Navicat连接数据库进行操作。 2. 数据库的创建与管理: 通过使用SQL语言创建数据库、数据表,并学习了数据库的管理和维护操作,如备份、恢复、优化等。 3. SQL语言的基本使用: 通过实际操作了解了SQL语言的基本使用方法,包括数据的插入、删除、更新、查询等操作,并学习了基本的SQL语句的使用规则。 4. 数据库索引的创建和使用: 学习了数据库索引的作用和创建方法,通过实验掌握了如何使用索引提高数据库的查询效率。 5. 数据库事务的管理:

学习了数据库事务的基本概念和特性,了解了事务的隔离级别和回滚操作,并通过实验熟悉了事务的管理方法。 三、实验心得与体会: 1. 数据库的重要性: 数据库是现代信息系统的核心,通过本次实验使我深刻地认识到了数据库的重要性,了解了数据库的基本原理和架构,并掌握了一些常用的数据库管理和维护方法。 2. SQL语言的灵活性: SQL语言是数据库管理系统的核心语言,通过实验学习了SQL语言的基本使用方法,发现SQL语言非常灵活,可以完成数据库的各种操作,同时也需要注意SQL语句的书写规范和语法错误的处理。 3. 数据库索引和事务的重要性: 数据库索引可以大幅度提高数据库的查询效率,通过实验了解了索引的创建和使用方法,并在实际操作中体会到了索引对查询速度的明显改善。事务管理是数据库的重要特性之一,通过实验学习了事务的管理方法,了解了事务的隔离级别和回滚操作对数据的重要性。 4. 实践能力的培养: 通过本次实验,我不仅学习了数据库的基本知识和操作方法,还培养了实践能力和问题解决能力,遇到问题时能够独立思考并探索解决方法,有效提高了自己的动手实践能力。

实验三数据库实验报告

一.实验目的 使用SQL语言实现数据库的创建、删除,基本表的创建、删除、更新工作,以及索引的创建、删除工作。 二.实验软件环境 SQL Server 2000 三.实验内容 (1)定义数据库 (2)定义数据库基本表 (3)定义完整性约束条件 四.实验的结果及分析 1.定义数据库: CREATE DA TABASE Labery_1315 ON PRIMARY(NAME=Labery_1315, FILENAME='F:\数据库\project \Labery_1315.mdf', SIZE=3MB) 2.在所定义的数据库下定义3个基本表,分别为“Book”、“Card”、“Borrow”: (1)Book表:其中主码为bno,且主属性不能为空。 CREATE TABLE Book (bno char(8) primary key not null, category varchar(10) not null, title varchar(40) not null, press varchar(30), book_year int not null, author char(20), price decimal(7,2) not null, book_total int not null) (2)Card表: CREATE TABLE Card (cno char(7) primary key not null, Name char(8) not null, department varchar(40),

type char(1) not null check(type in('T','G','U','F'))) (3)Borrow表:其中cno和bno是外码 CREATE TABLE Borrow (cno char(7) not null foreign key(CNO) references card(cno), bno char(8) not null foreign key(BNO ) references book(bno), borrow_date smalldatetime not null default getdate(), return_date smalldatetime) 五. 思考题 1)如果在创建关系数据库基本表时,未创建完整性约束条件,对于数据库会有何影响? 答:以后增加数据库数据时,有可能插入无效或重复的数据。当想删除有多张表中的一张时,由于删除了该表导致其他表数据不完整不能用。不创建约束性条件,不符合数据库的正确性和相容性原则。 2)如果在创建关系数据库基本表时,未创建索引,对于数据库的运行性能会有何影响? 答:索引是以牺牲内存空间换取检索时间的,未创建索引时会使运行时的检索变得很慢。但是,因为少占用了存储空间,数据库也会有更多的空间可以运行。因此,我们应该创建必要、适量的索引,即不占用太多空间,也能提高信息查找的效率。 六.实验心得体会 通过这次实验,基本明白了SQL Server软件的使用方法,从这个实验中也知道了如何创建数据库和往数据库中创建基本表以及对基本表添加完整性约束。因为是第一个实验,所以实验内容相对简单,但对于刚接触SQL Server的我来说,完成这个实验也花了蛮多的功夫,相信在以后的实验中情况会好一点。

数据库原理实验报告-实验三-数据完整性与安全性控制

《数据库原理》实验报告 题目:实验三学号姓名班级日期 数据完好性与安全性控制 一、实验内容、步骤以及结果 1.利用图形用户界面对实验一中所创立的Student 库的 S 表中,增添以下的拘束和索引。 (18 分,每题 3 分) (1)非空拘束:为出诞辰期增添非空拘束。 非空拘束:撤消表 S 中 sbirth 的勾。可能需要重修表。 (2)主键拘束:将学号 (sno) 设置为主键,主键名为 pk_sno 。 设主键:单击数据库Student-->单击表-->单击S-->右击sno-->选择‘改正’命 令--> 对话框中右击 sno--> 选择‘设置主键’ --> 改正主键名为‘ pk_sno ’ --> 保 存 (3)独一拘束:为姓名 (sname) 增添独一拘束 ( 独一键 ) ,拘束名为 uk_sname。 独一拘束:单击数据库Student-->单击表-->单击S-->右击sname-->选择‘改正’命令→右击sname--> 选择‘索引和键’命令--> 翻开‘索引和键’框图--> 增添 --> 能否独一改为‘是’--> 名称改为‘ us_sname’ --> 封闭。

(4)缺省拘束:为性别 (ssex) 增添默认值,其值为“男”。 设默认拘束:单击数据库 Student →单击表→单击 S→右击 sno →选择‘改正’命令→单击 cno--> 在默认值栏输入‘男’→保留

(5) CHECK拘束:为 SC表的成绩 (grade) 增添 CHECK拘束,拘束名为ck_grade ,其检查 条件为:成绩应当在0-100 之间。

(6)外键拘束:为 SC表增添外键拘束,将 sno,cno 设置为外键,其引用表分别是S 表 和 C 表,外键名称分别为fk_sno , fk_cno 。 2.在图形用户界面中删除以上小题中已经创立的各样拘束,用SQL语言分别从头创立第 1 题中的 (2)-(6)小题.(15分,每题 3 分,提示: alter table add constraint)

数据库原理实验报告

计算机与信息学院 数据库原理实验报告 专业:计算机科学与技术班级:2012级本科班学号:07173 姓名: 指导教师: 2014年06月18 日

实验项目列表

计算机与信息学院实验报告纸 实验一数据库创建与管理 一、实验目的与要求 1、熟练掌握SSMS中界面方式创建和管理数据库。 2、熟练掌握SSMS查询编辑器T-SQL语句创建和管理数据库。 3、熟练掌握备份和还原数据库。 二、实验内容 1、界面方式创建和管理数据库 (1)创建数据库 (2)修改数据库 (3)删除数据库 2、利用企业管理器备份和还原数据库 (1)备份数据库 (2)还原数据库 3、T-SQL语句方式创建和管理数据库 (1)创建SPJ数据库:在SSMS中“新建查询”,输入以下语句并运行CREATE DATABASE SPJ ON (NAME=’SPJ_Data’,FELENAME='C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Data.MDF' , SIZE = 3, MAXSIZE = 10, FILEGROWTH = 10%) LOG ON (NAME = 'SPJ_Log', FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\data\SPJ_Log.LDF' , SIZE = 1, FILEGROWTH = 10%) (2)修改SPJ数据库:在查询分析器中输入以下语句并运行 ALTER DATABASE SPJ MODIFY FILE (NAME='SPJ_Data', SIZE=4,

相关主题
文本预览
相关文档 最新文档