数据库实验报告Word文档下载推荐.docx

上传人:b****7 文档编号:22000897 上传时间:2023-02-02 格式:DOCX 页数:17 大小:121.49KB
下载 相关 举报
数据库实验报告Word文档下载推荐.docx_第1页
第1页 / 共17页
数据库实验报告Word文档下载推荐.docx_第2页
第2页 / 共17页
数据库实验报告Word文档下载推荐.docx_第3页
第3页 / 共17页
数据库实验报告Word文档下载推荐.docx_第4页
第4页 / 共17页
数据库实验报告Word文档下载推荐.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

数据库实验报告Word文档下载推荐.docx

《数据库实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库实验报告Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。

数据库实验报告Word文档下载推荐.docx

(1)用CREATEDATABASE命令建立数据库(自己命名数据库的名称)。

用CREATESCHEMA命令建立架构(自己命名架构名称)。

在定义的架构下参照图5-1所示的样本数据库和表5-8的具体要求使用CREATETABLE命令建立表并定义完整性约束。

用ALTERTABLE命令按如下要求修改表结构:

为学生表增加一个“平均成绩”字段,类型为短整数,默认是空值;

为课程表的“学时”字段重新定义约束:

取值为8的倍数,不允许为空值;

将院系表的名称字段的类型修改为varchar(30)。

为教师表增加一个工资字段,类型为5位整数、2位小数的数值型。

建立数据库

createdatabase教务信息

on(name=juxx_dat,

filename='

C:

\ProgramFiles\MicrosoftSQLServer\90\Tools\Binn\VSShell\Common7\林碧娴'

size=10mb,

maxsize=50mb,

filegrowth=5mb)

logon

(name=juxx_log,

filename='

\ProgramFiles\MicrosoftSQLServer\90\Tools\Binn\VSShell\Common7\lin'

size=5mb,

maxsize=25mb,

建立架构

createschema教务信息

定义表及完整性约束

createtable教务信息.院系

(编号smallintprimarykey,

名称char(20)notnull,

负责人char(10),

办公地点char(20))

createtable教务信息.学生

(学号char(8)primarykey,

院系smallintforeignkeyreferences教务信息.院系(编号),

姓名char(10)notnull,

性别char

(2)check(性别='

男'

or性别='

女'

),

生源char(6),

状态char(4)check(状态='

正常'

or状态='

留级'

休学'

退学'

))

createtable教务信息.教师

(教师编号char(8)primarykey,

职称char(6)check(职称='

教授'

or职称='

副教授'

讲师'

助教'

专业char(10))

createtable教务信息.课程

(课程编号char(8)primarykey,

课程名称char(20)notnull,

责任教师char(8)foreignkeyreferences教务信息.教师(教师编号),

学时intnotnull,

课程性质char(10)check(课程性质='

公共基础'

or课程性质='

专业基础'

专业选修'

任意选修'

createtable教务信息.选课

(学号char(8)primarykeyforeignkeyreferences教务信息.学生(学号),

课程编号char(8)foreignkeyreferences教务信息.课程(课程编号),

成绩intcheck(成绩>

=0and成绩<

=100)defaultnull)

修改表结构

altertable教务信息.学生

add平均成绩smallintdefaultnull

altertable教务信息.课程

addconstraintsbcheck(学时%8=0)

altertable教务信息.院系

altercolumn名称varchar(30)

altertable教务信息.教师

add工资numeric(7,2)

通过此次的实验,让我对使用CREATEDATABASE命令建立数据库有了更加熟练的认识,对CREATESCHEMA命令建立架构的基本掌握,学会了使用CREATETABLE命令建立表并定义数据完整性约束,也ALTERTABLE命令修改表架构。

学到了更多,懂得了更多。

实验3数据操作及完整性约束体验

数据操作及完整性约束体验

在实验2的基础上完成数据的插入操作,然后进行部分修改和删除操作,在这些操作中体会数据完整性约束的作用。

熟练掌握SQL的INSERT、UPDATE和DELETE命令,深刻理解数据完整性约束的作用以及约束时机。

在实验2的基础上首先用INSERT命令插入各个表的记录,然后使用UPDATE和DELETE命令对部分记录进行修改和删除操作。

(1)读者自行设计各个表的记录,记录院系表至少10条记录、学生表至少30条记录、课程表至少10条记录、教师表至少10条记录、选课表至少50条记录。

(2)使用INSERT命令完成记录的插入操作,要求分别设计若干违反实体完整性、参照完整性和用户完整性约束的插入操作,并分析原因。

(3)设计若干删除操作,体会执行删除操作时检查参照完整性规则的效果(要求涉及拒绝删除、空值删除、和级联删除等不同的处理方式)。

(4)设计若干更新操作,体会执行更新操作时检查实体完整性规则、参照完整性规则和定义完整性规则的效果。

(5)在实验报告中要给出具体的记录和设计的操作,并针对各种数据完整性检查给出具体的分析和讨论。

插入数据

insertinto教务信息.院系values('

01'

'

理学院'

E1'

二教'

02'

财经学院'

E2'

三教'

03'

电气学院'

E3'

四教'

04'

土建学院'

E4'

05'

医学院'

E5'

06'

外语学院'

E6'

07'

管理学院'

E7'

08'

麓山学院'

E8'

五教'

09'

汽车学院'

E9'

六教'

10'

生化学院'

E10'

insertinto教务信息.学生values('

2012001'

林一'

南宁'

80'

2012002'

雷一'

崇左'

90'

2012003'

莫一'

河池'

2012004'

曹一'

北海'

2012005'

董一'

百色'

2012006'

封一'

insertinto教务信息.教师values('

001'

林二'

统计学'

4000'

002'

雷二'

信计学'

3000'

003'

莫二'

004'

曹二'

数应学'

2000'

insertinto教务信息.课程values('

101'

数学分析'

40'

102'

概率论'

103'

数据库'

24'

104'

计量经济学'

insertinto教务信息.选课values('

70'

60'

设计若干操作违反完整性约束的操作

职教院'

E11'

删除操作

delete教务信息.选课where学号='

更新操作

update教务信息.学生set学号='

where学号='

2012007'

初次使用SQL软件的灵敏度的欠缺,也基本掌握了SQL的INSERT、UPDATE和DELETE命令,能理解数据完整性约束的作用以及约束时机。

各个表格的设计也偶尔出现了命令行出错,然后在进行解决。

实验4数据查询

使用SQLSELECT语句的数据查询操作。

在实验2和实验3的基础上完成规定的查询操作。

熟练掌握SQLSELECT的命令。

在实验2和实验3的基础上使用SQLSELECT命令完成实验要求中所规定的各种查询。

实验要求:

在实验2和实验3的基础上按要求设计查询,并用SQLSELECT命令查询。

1.一般简单查询

不带条件的查询指定字段。

查询某个表的全部信息。

使用单个条件的简单查询。

使用多个条件(AND关系)的简单查询。

使用多个条件(OR关系)大简单查询。

使用多个条件(AND和OR关系)的查询。

使用带NOT运算的查询。

使用BETWEEN...AND...的查询。

使用NOT...BETWEEN...AND...的查询。

使用LIKE运算符的字符串的匹配查询。

使用LIKE的模板匹配查询。

使用空值和非空值查询。

结果要求排序的查询。

查询结果按多列排序,并分别按升序和降序查询。

使用TOP显示前若干记录的查询。

使用TOP显示前若干记录的查询,如果有满足条件的记录一并列入。

连接查询

两个关系的简单查询。

带其他条件的两个关系的连接查询。

多个关系的连接查询。

两个关于的而广义笛卡儿积运算结果。

根据两个关系的广义笛卡儿积运算结果得出两个关系自然连接结果。

查询教师-课程信息,结果包含教师姓名、职称、课程名称和课程性质等4个字段。

查询教师-课程信息,结果包含教师姓名、职称、课程名称和课程性质等4个字段,要求结果中列出所有教师信息。

查询教师-课程信息,查询结果中包含教师姓名、职称、课程名称和课程性质等4个字段,要求结果中能够反应目前没有确定责任教师的课程信息。

查询教师-课程信息,查询结果中包含教师姓名,职称,课程名称和课程性质的4个字段,要求结果中技既能反应目前不是责任教师的信息,有能反应目前没有确认责任教师的课程信息。

使用嵌套查询

使用IN运算符查询。

使用NOTIN运算符查询。

使用关系运算符查询。

使用ANY或SOME的简单嵌套查询。

使用ALL的嵌套查询。

查询院系名称为含“计算机”、职称为教授、所负责课程为必修课的教师姓名、职称、课程名称和课程学时等信息(分别用嵌套查询和连接查询完成,分析各自的效率)。

设计两个内外层互相关的嵌套查询。

使用EXISTS的嵌套查询。

使用NOTEXISTS的嵌套查询。

汇总和分组查询

使用COUNT统计数目的查询。

使用SUM计算合计的查询。

一次完成求和、计数、计算平均值大查询。

查询所有课程的成绩都大于60分的学生的平均成绩。

查询数据库的成绩大于70分的、所有课程平均分最高的学生信息。

查询每个学生的平均成绩。

查询每个学生的所有课程的最高成绩、最低成绩、平均成绩、和所考课程的门数。

查询至少有10门必修课程考试成绩的每个学生的平均成绩。

设计2个使用COMPUTE..BY和COMPUTE的查询。

设计1个使用COMPUTE的查询。

设计一个使用COMPUT…BY的查询。

一般简单查询

select姓名,性别

from教务信息.学生

--查询学生的姓名,性别

select*from教务信息.选课

--查询选课表的信息

select姓名,院系

from教务信息.教师

where工资!

<

3000

--③使用单个条件的简单查询

select*from教务信息.教师

where工资between2000and3000

--④ 使用多个条件(AND关系)的简单查询

where工资=2000or工资=3000

--⑤ 使用多个条件(OR关系)大简单查询

where工资between2000and3000or工资=4000

--⑥ 使用多个条件(AND和OR关系)的查询

wherenot工资=2000or工资=3000

--⑦ 使用带NOT运算的查询

wherenot工资between2000and3000

-- 使用NOT...BETWEEN...AND...的查询

select*from教务信息.院系where办公地点like'

%三教%'

select*from教务信息.院系where编号isnotnull

-- 使用空值和非空值查询

select*from教务信息.教师orderby工资

-- 结果要求排序的查询

selecttop(3)*from教务信息.教师orderby工资

--使用TOP显示前若干记录的查询

selecttop(3)withties*from教务信息.教师orderby工资

-- 使用TOP显示前若干记录的查询,如果有满足条件的记录一并列入

(2)连接查询

select姓名,专业,课程名称from教务信息.教师join教务信息.课程

on教师编号=责任教师

where工资>

2000

select姓名,专业,课程名称,院系.名称from教务信息.教师join教务信息.课程

join教务信息.院系on教师.院系=院系.编号

select*from教务信息.教师crossjoin教务信息.院系

select姓名,职称,课程.课程名称,课程性质

from教务信息.教师join教务信息.课程

on教师编号=责任教师

from教务信息.教师leftjoin教务信息.课程

from教务信息.教师rightjoin教务信息.课程

from教务信息.教师fulljoin教务信息.课程

嵌套查询

select院系.编号from教务信息.院系where编号in(

select院系from教务信息.学生where平均成绩=80)

select院系.编号from教务信息.院系where编号notin(

select姓名from教务信息.学生where平均成绩=(

select平均成绩from教务信息.学生where姓名='

selectdistinct姓名from教务信息.学生where平均成绩>

=any(

select平均成绩from教务信息.学生where院系=1)

selectdistinct姓名from教务信息.学生where平均成绩=all(

select课程名称,学时,课程性质from教务信息.课程outa

where学时=(selectmax(学时)from教务信息.课程where责任教师in(

select教师编号from教务信息.教师where教师编号=责任教师))

select*from教务信息.院系wherenotexists(select*from教务信息.学生where院系=编号)

selectsum(工资),count(*),avg(工资),max(工资),min(工资)from教务信息.教师

selectavg(平均成绩)from教务信息.学生

selectdistinct工资from教务信息.教师computecount(工资)

select*from教务信息.教师orderby教师编号

computeavg(工资),sum(工资)by教师编号

computeavg(工资),sum(工资)

通过实验,学会使用SQLSELECT的数据查询操作,对左连接、右连接、内连接全连接的掌握,对简单嵌套查询、条件查询等等各种查询的练习的基本熟悉,同时也对SQLSELECT查询命令的基本框架的熟悉与理解。

让自己的能力有了更好的提升。

实验5视图的应用

视图的建立和应用

在实验2和实验3的基础上定义视图,并在视图上查询以及插入、删除、和更新和操作。

掌握视图定义和应用方法,体会视图和基本表的异同。

在实验2和实验3的基础上用CREATEVIEW命令定义视图,然后使用SELECT命令完成查询,使用INSERT、UPDATE和DELETE命令分别完成插入、更新和删除操作。

在实验2建立的基本表的基础上,按如下要求设计和建立视图:

基于单个表按投影操作定义视图。

基于单个表按选择操作定义视图。

基于单个表按选择和投影操作定义视图。

基于多个表根据连接操作定义视图。

基于多个表根据嵌套查询定义视图。

定义含有虚字段的视图。

分别在定义的视图上设计一些查询(包括基于视图和基本表的连接或嵌套查询)。

在不同的视图上分别设计一些插入、更新和删除操,分情况讨论那些操作可以成功,那些操作不能完成,并分析原因。

在实验报告中要给出具体的视图定义要求和操作要求,并针对各情况做出具体的分析和讨论。

建立视图

createview教师asselect教师编号,姓名,职称from教务信息.教师

--基于单个表的按投影操作定义视图

createview教师asselect教师编号,姓名,专业from教务信息.教师where性别='

--基于单个表的按选择和投影操作定义视图

createview教师课程asselect教师编号,姓名,课程编号,课程名称

from教务信息.教师join教务信息.课程on教师编号=责任教师

--基于多个表的连接操作定义视图

CREATEVIEW教师与课程视图AS

SELECT教师编号,工资,性别,课程名称,课程编号,责任教师

FROM教务信息.教师JOIN教务信息

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1