数据库实验报告.docx

上传人:b****4 文档编号:4835324 上传时间:2022-12-10 格式:DOCX 页数:51 大小:2.54MB
下载 相关 举报
数据库实验报告.docx_第1页
第1页 / 共51页
数据库实验报告.docx_第2页
第2页 / 共51页
数据库实验报告.docx_第3页
第3页 / 共51页
数据库实验报告.docx_第4页
第4页 / 共51页
数据库实验报告.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

数据库实验报告.docx

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

数据库实验报告.docx

数据库实验报告

数据库原理

实验报告

 

学号:

姓名:

提交日期:

成绩:

 

 

【实验内容】

实验一数据库的创建与管理

实验内容:

1、分别使用上述方法启动sqlserver的服务。

2、在企业管理器中创建一个数据库,要求如下:

(1)数据库名称Test1。

(2)主要数据文件:

逻辑文件名为Test1_data1,物理文件名为Test1_data1.mdf,初始容量为1MB,最大容量为10MB,增幅为1MB。

(3)次要数据文件:

逻辑文件名为Test1_data2,物理文件名为Test1_data2.ndf,初始容量为1MB,最大容量为10MB,增幅为1MB。

(4)事务日志文件:

逻辑文件名为Test1_log1,物理文件名为Test1_log1.ldf,初始容量为1MB,最大容量为5MB,增幅为512KB。

 

3、在查询分析器中创建一个数据库,要求如下:

(1)数据库名称Test2。

(2)主要数据文件:

逻辑文件名为Test2_data1,物理文件名为Test2_data1.mdf,初始容量为1MB,最大容量为10MB,增幅为1MB。

(3)次要数据文件:

逻辑文件名为Test2_data2,物理文件名为Test2_data2.ndf,初始容量为1MB,最大容量为10MB,增幅为1MB。

(4)事务日志文件:

逻辑文件名为Test2_log1,物理文件名为Test2_log1.ldf,初始容量为1MB,最大容量为5MB,增幅为1MB。

代码如下:

createdatabaseTest2

onprimary(name=Test2_data1,

filename='d:

\sqlex\Test2_data1.mdf',

size=1,

maxsize=10,

filegrowth=1),

(name=Test2_data2,

filename='d:

\sqlex\Test2_data2.ndf',

size=1,

maxsize=10,

filegrowth=1)

logon(name=Test2_log1,

filename='d:

\sqlex\Test2_log1.ldf',

size=1,

maxsize=5,

filegrowth=1)

4、在查询分析器中按照下列要求修改第3题中创建的数据库test2

(1)主要数据文件的容量为2MB,最大容量为20MB,增幅为2MB。

(2)次要数据文件的容量为2MB,最大容量为20MB,增幅为2MB。

(3)事务日志文件的容量为1MB,最大容量为10MB,增幅为2MB。

5、数据库更名:

把test1数据库更名为new_test1

6、在企业管理器中删除new_test1数据库,在查询分析器中删除test2数据库。

 

语句为:

Dropdatabasenew_test2

7、为sql示例数据库northwind创建一个备份:

northwindBK,并使用该备份文件恢复northwind数据库。

8、使用sql示例数据库pubs完成数据库的分离和附加操作。

 

 

 

实验二创建并管理表

二、创建并管理表

1、创建数据库studentInfo,包含如下表,创建这些表并按要求定义约束:

表2.1students(学生表)结构

字段名

说明

数据类型

约束说明

Student_id

学号

字符串,长

为10

主键

Student_name

姓名

串,长度为10

非空

sex

性别

字符串,长度为1

非空值,取‘F’或‘M’

age

年龄

整数

允许空值

department

所在系名

字符串,长度为15

默认值为‘电子信息系’

 

表2.2course(课程表)结构

字段名

说明

数据类型

约束说明

Course_id

课程号

字符串,长度为6

主键

Course_name

课程名

字符串,长度为20

非空值

PreCouId

先修课程号

字符串,长度为6

允许空值

C

edits

学分

十进制数,精度3,小数位1

非空值

表2.3score(选课表)结构

字段名

说明

数据类型

约束说明

Student_id

学号

字符串,长度为10

外键,参照student的主键

Course_id

课程号

字符串,长度为6

外键,参照student的主键

Grade

成绩

十进制数,精度3,小数位1

允许空值

联合主键:

(Student_id,Course_id)

以下为各个表的数据;

students表数据

Student_id

Student_name

ex

age

department

20010101

Jone

M

19

Computer

20010102

Sue

F

20

Computer

20010103

Smith

M

19

Math

20030101

Allen

M

18

Automation

20030102

deepa

F

21

Art

course表数据

Course_id

Course_name

PreCouId

Credits

C1

English

4

C2

Math

C5

2

C3

database

C2

2

 

score表数据

Student_id

Course_id

Grade

20010101

C1

90

20010102

C2

94

20010103

C1

88

建立好后,表格显示如下:

student表:

course表:

score表:

2、增加、修改、删除字段,要求:

1为表student增加一个memo(备注)字段,类型为varchar(200)。

2将memo字段的数据类型更改为varchar(300)。

3删除memo字段

3、向表中插入数据验证约束

useStudentInfo

go

altertablescore

addconstraintchkGradecheck(grade>0andgrade<100)

altertablestudent

addconstraintchkSexcheck(sexin('m','f'))

4、分别使用企业管理器和查询分析器删除表

 

 

usestudentInfo

go

droptablescore

 

实验三数据更新

实验内容:

1、向students表添加一个学生记录,学号为20010112,性别为男,姓名为stefen,年龄25岁,所在系为艺术系art。

2、向score表添加一个选课记录,学生学号为20010112,所选课程号为C2。

 

3、建立临时表tempstudent,结构与students结构相同,其记录均从student表获取

createtabletempstudent(student_idchar,student_namechar,sexchar,ageint,departmentchar)

insertintotempstudent

selectstudent_id,student_name,sex,age,department

fromstudent

groupbystudent_id,student_name,sex,age,department

4、将所有学生的成绩加5分

useStudentInfo

go

updatescore

setgrade=grade+5

5、将姓名为sue的学生所在系改为电子信息系

useStudentInfo

go

updatestudent

setdepartment='电子信息系'

wherestudent_name='sue'

6、将选课为database的学生成绩加10分

useStudentInfo

go

updatescore

setgrade=grade+10

wherecourse_id='C3'

7、删除所有成绩为空的选修记录

useStudentInfo

go

deletescorewheregrade=NULL

8、删除学生姓名为deepa的学生记录

useStudentInfo

go

deletestudentwhereStudent_name='deepa'

 

9、删除计算机系选修成绩不及格的学生的选修记录。

查询分析器中进行删除:

代码如下:

deletestudent

innerjoinscore

onstudent.student_id=score.student.id

wheredepartment=’computer’andgrade<60

 

实验四数据查询

实验内容:

在已经建立好的studentInfo数据库中使用已存在的3个数据表student、course、score基础上完成下列查询实验:

一、简单查询实验

1、查询全体学生的学号、姓名、所在系,并为结果集的各列设置中文名称

代码:

select学号=student_id,

学生姓名=student_name,

所在系=department,

fromstudent

2、查询全体学生的选课情况,并为所有成绩加5分。

select*

fromscore

whereGrade=Grade+5

 

3、显示所有选课学生的学号,去掉重复行。

selectdistinct

Student_id

fromscore

 

4、查询选课成绩大于80分的学生。

selectStudent_id

fromscore

whereGrade>80

5、查询年龄在20到30之间的学生学号,姓名,所在系

6、查询数学系、电子信息系、艺术系的学生学号,姓名

7、查询姓名第二个字符为u并且只有3个字符的学生学号,姓名

 

8、查询所有以S开头的学生。

 

9、查询姓名不以S、D、或J开头的学生

 

10、查询没有考试成绩的学生和相应课程号(成绩值为空)

 

11、求年龄大于19岁的学生的总人数

 

12、分别求选修了数学课程的学生平均成绩、最高分、最低分学生。

 

13、求学号为20010103的学生总成绩

14、求每个选课学生的学号,姓名,总成绩

 

15、查询所有S开头且全名为3个字母的学生姓名,学号,性别

 

16、求课程号及相应课程的所有的选课人数

 

17、查询选修了3门以上课程的学生姓名学号

二、多表连接查询

1、查询每个学生基本信息及选课情况

 

2、查询每个学生学号姓名及选修的课程名、成绩

3、求电子信息系选修课程>=1门课的学生学号姓名、平均成绩并按平均成绩降序排列

 

4、查询与sue在同一个系学习的所有学生的学号姓名

查询所有学生的选课情况,要求包括所有选修了课程的学生和没有选课的学生,显示他们的姓名学号课程号和成绩(如果有)

 

五索引和视图

1、分别使用企业管理器和查询分析器为northwind数据库中products表建立一个聚集索引,索引字段为产品类型和产品编号。

2、查询分析器中使用表categories和products创建视图对象view_cate_prod,查询每种类型的产品总库存(库存为products表中unitinstock列)。

3、在已经建立的studentInfo数据库的3个表基础上,完成下列操作:

(1)建立数学系的学生视图;

(2)建立计算机系选修了课程名为database的学生的视图,视图名为compStudentview,该视图的列名为学号、姓名、成绩

(3)创建一个名为studentSumview的视图,包含所有学生学号和总成绩

(4)建立一个计算机系学生选修了课程名为database并且成绩大于80分的学生视图,视图名为CompsutdentView1,视图的列为学号姓名成绩。

(5)使用sql语句删除compsutdentview1视图。

语句为:

DropviewCompsutdentView1

 

实验六存储过程和触发器

实验内容:

1、创建针对northwind数据库表customers进行插入、修改和删除的三个存储过程:

insertCustomers、updateCustomers和deleteCustomers

 

2、创建一个存储过程,要求设置参数@fname表示作者的姓,@lname表示作者的名,从系统示例数据库pubs中的titles、authors和titleauthors表中查询作者以及作者出版的书的信息。

(要求输入作者的姓和名,如果存在,则返回查询结果,否则给出相应的提示信息)

3、使用sql语句创建一个DELETE触发器,完成如下功能:

在northwind数据库中,当删除categories表中的记录时,检测products表中是否存在相关记录,如果存在,则给出提示信息“不能删除该条记录!

”;如果不存在则删除该条记录。

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

当前位置:首页 > 求职职场 > 简历

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

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