数据库指导书1.docx
- 文档编号:10059735
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:30
- 大小:66.87KB
数据库指导书1.docx
《数据库指导书1.docx》由会员分享,可在线阅读,更多相关《数据库指导书1.docx(30页珍藏版)》请在冰点文库上搜索。
数据库指导书1
实验一 数据库管理
实验名称
数据库管理(2课时)
实验日期
使用设备
硬件:
电脑一台
软件:
Windows、SQL server2000
实验地点
实验目的
1、主要使用SQL语言建立、修改与删除数据库。
2、会使用企业管理器对数据库进行建立、修改和删除。
实
验
内
容
准备工作:
每个学生首先在D盘建立一个以自己学号为名字的文件夹,今后所有操作均在自己的文件夹中进行。
1、使用CREATE DATABASE创建一个Student数据库,所有参数均取默认值。
CREATEDATABASEStudent
2、创建一个Student1数据库,该数据库的主文件逻辑名称为student1_data,物理文件名为student1.mdf,初始大小为10MB,最大尺寸为无限大,增长速度为10%;数据库的日志文件逻辑名称为student1_log,物理文件名为student1.ldf,初始大小为1MB,最大尺寸为5MB,增长速度为1MB。
CREATEDATABASEstudent1
ON
(NAME=student1_data,
FILENAME='D:
\DATA\student1.mdf',
SIZE=10MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=10%
)
LOGON
(NAME=student1_log,
FILENAME='D:
\DATA\student1.ldf',
SIZE=1MB,
MAXSIZE=5MB,
FILEGROWTH=1MB
)
3、创建一个指定多个数据文件和日志文件的数据库。
该数据库的名称为students,有1个10MB和20MB的数据和2个10MB的事务日志文件。
数据文件逻辑名称为students1和students2,物理文件名为students1.mdf和students2.ndf,由primary指定,两个数据文件的最大尺寸分别为无限大和100MB,增长速度分别为10%和1MB。
事务日志文件逻辑名称为studentslog1和studentslog2,物理文件名为studentslog1.ldf和studentslog2.ldf,最大尺寸为50MB,增长速度为1MB。
CREATEDATABASEstudents
ONPRIMARY
(NAME=students1,
FILENAME='D:
\DATA\students1.mdf',
SIZE=10MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=10%
),
(NAME=students2,
FILENAME='D:
\DATA\students2.ndf',
SIZE=20MB,
MAXSIZE=100MB,
FILEGROWTH=1MB
)
LOGON
(NAME=studentslog1,
FILENAME='D:
\DATA\studentslog1.ldf',
SIZE=10MB,
MAXSIZE=50MB,
FILEGROWTH=1MB
),
(NAME=studentslog2,
FILENAME='D:
\DATA\studentslog2.ldf',
SIZE=10MB,
MAXSIZE=50MB,
FILEGROWTH=1MB
)
4、利用企业管理器向数据库student1可添加一个文件组,其中包括两个数据文件:
它们的逻辑名称为student1_data1和student1_data2,物理文件名为student1_1.ndf和student1_2.ndf,初始大小为5MB,最大尺寸为50MB,增长速度为2MB。
并将其设为默认文件组。
5、利用SQL语言对students进行修改。
将事务日志文件的大小增加到15MB,将数据文件students1和students2分别增加到15MB和30MB。
同时增加两个文件组data1和data2,分别包含一个数据文件,逻辑文件名为students3和students4,物理文件名为students3.ndf和students4.ndf,它们的初始大小为20MB,最大尺寸无限大,增长速度15%;增加一个10MB事务日志文件,最大尺寸无限制,增长速度为10%。
ALTERDATABASEstudents
MODIFYFILE(NAME='students1',SIZE=15MB,MAXSIZE=UNLIMITED,FILEGROWTH=10%)
GO
ALTERDATABASEstudents
MODIFYFILE(NAME='students2',SIZE=30MB,MAXSIZE=100MB,FILEGROWTH=1MB)
GO
ALTERDATABASEstudents
MODIFYFILE(NAME='studentslog1',SIZE=15MB,MAXSIZE=100MB,FILEGROWTH=1MB)
GO
ALTERDATABASEstudents
MODIFYFILE(NAME='studentslog2',SIZE=15MB,MAXSIZE=500MB,FILEGROWTH=1MB)
GO
ALTERDATABASEstudents
ADDFILEGROUPdata1
GO
ALTERDATABASEstudents
ADDFILE(NAME=students3,FILENAME='C:
\DATA\students3.ndf',SIZE=20MB,MAXSIZE=UNLIMITED,FILEGROWTH=15%)
TOFILEGROUPdata1
GO
ALTERDATABASEstudents
ADDFILEGROUPdata2
GO
ALTERDATABASEstudents
ADDFILE(NAME=students3,FILENAME='C:
\DATA\students3.ndf',SIZE=20MB,MAXSIZE=UNLIMITED,FILEGROWTH=15%)
TOFILEGROUPdata2
GO
ALTERDATABASEstudents
ADDLOGFILE
(NAME=students5,
FILENAME='D:
\DATA\students5.ldf',
SIZE=10MB,
MAXSIZE=UNLIMITED,
FILEGROWTH=10%
)
6、使用企业管理器查看student1的基本信息;使用SQL语言查看students中所有文件组和文件信息。
7、使用企业管理器删除student;使用SQL语言同时删除student1和students中所有文件组和文件信息。
教师评语
优
良
中
及格
不及格
批改日期
实验二 表的管理与使用
实验名称
表的管理与使用(2课时)
实验日期
使用设备
硬件:
电脑一台
软件:
Windows、SQL server2000
实验地点
实验目的
1、主要使用SQL语言定义、删除与修改基本表。
2、会使用企业管理器对基本表进行建立、修改和删除。
在自己的文件夹建立student数据库,并在此数据库中建立如下的表和插入数据:
关系Students
关系Courses
关系Reports
Sno
Sname
Ssex
Sage
Sdept
S01
S02
S03
S04
S05
S06
王建平
刘华
范林军
李伟
黄河
长江
男
女
女
男
男
男
21
19
18
19
18
20
自动化
自动化
计算机
数学
数学
数学
o
ame
Pre_
o
Cre
dits
C01
C02
C03
C04
C05
C06
C07
英语
数据结构
数据库
DB_设计
C++
网络原理
操作系统
C05
C02
C03
C07
C05
4
2
2
3
3
3
3
Sno
o
Grade
S01
S01
S02
S02
S02
S03
S03
S04
C01
C03
C01
C02
C03
C01
C02
C03
92
84
90
94
82
72
90
75
实
验
内
容
1、建立学生表Students,每个属性名的意义为Sno-学号、Sname-姓名、Ssex-性别、Sage-年龄、Sdept-所在系。
并用insert语句插入6条数据。
USEstudent
INSERTstudents
VALUES('S01','王建平','男','21','自动化')
INSERTstudents
VALUES('S02','刘华','女','19','自动化')
INSERTstudents
VALUES('S03','范林军','女','18','计算机')
INSERTstudents
VALUES('S04','李伟','男','19','数学')
INSERTstudents
VALUES('S05','黄河','男','18','数学')
INSERTstudents
VALUES('S06','长江','男','20','数学')
2、建立表3.4所示的课程表Courses,其属性名意义分别为o-课程号,ame-课程名,Pre_o-先修课程号,Credits-学分。
并用insert语句插入7条数据。
USEstudent
INSERTCourses
VALUES('C01','英语','','4')
INSERTCourses
VALUES('C02','数据结构','C05','2')
INSERTCourses
VALUES('C03','数据库','C02','2')
INSERTCourses
VALUES('C04','DB_设计','C03','3')
INSERTCourses
VALUES('C05','C++','','3')
INSERTCourses
VALUES('C06','网络原理','C07','3')
INSERTCourses
VALUES('C07','操作系统','C05','3')
3、建立成绩表Reports。
其中的属性名意义分别为Sno-学号,o-课程号和Grade-考试成绩。
并用insert语句插入8条数据。
USEstudent
INSERTReports
VALUES('S01','C01','92')
INSERTReports
VALUES('S01','C03','84')
INSERTReports
VALUES('S02','C01','90')
INSERTReports
VALUES('S02','C02','94')
INSERTReports
VALUES('S02','C03','82')
INSERTReports
VALUES('S03','C01','72')
INSERTINTOReports
VALUES('S03','C02','90')
INSERTINTOReports
VALUES('S04','C03','75')
4、向基本表Students中增加“入学时间”属性列,其属性名为Sentrancedate,数据类型为DATETIME型。
USEstudent
GO
ALTERTABLEstudents
ADDSentrancedateDATETIME
5、将Sage(年龄)的数据类型改为SMALLINT型。
USEstudent
GO
ALTERTABLEstudents
ALTERCOLUMNSageSMALLINT
6、删除Students表。
DROPTABLEstudents
7、将学习成绩的元组(‘S01’,’C01’)添加到基本表Reports中。
USEstudent
GO
INSERTINTOReports(Sno,o)
VALUES('S01','C01')
教师评语
优
良
中
及格
不及格
批改日期
实验三 数据简单查询
实验名称
数据简单查询(2课时)
实验日期
使用设备
硬件:
电脑一台
软件:
Windows、SQL server2000
实验地点
实验目的
1、掌握查询语句的一般格式。
2、掌握无条件、有条件查询及查询结果排序与分组。
实
验
内
容
1、查询全体学生的姓名(Sname)、学号(Sno)、所在系(Sdept)。
USESTUDENT
SELECTSname,Sno,Sdept
FROMSTUDENTS
2、查询全体学生的姓名(Sname)、出生年份及学号(Sno)。
USESTUDENT
SELECTSname,Sno,sage
FROMSTUDENTS
3、查询所有年龄在18~22岁(包括18岁和22岁)之间的学生姓名(Sname)及年龄(Sage)。
USESTUDENT
SELECTSname,sage
FROMSTUDENTS
WHERESAGEBETWEEN18AND22
4、查询所有不姓刘的学生姓名(Sname)和年龄(Sage)。
USESTUDENT
SELECTSname,sage没有得
FROMSTUDENTS
WHERESNAMENOTLIKE’刘%’
5、查询自动化系、数学和计算机系学生的学号(Sno)、姓名(Sname)和性别(Ssex)。
USESTUDENT
selectSno,Sname,Ssex
fromStudents
whereSdeptin('自动化','数学','计算机')
6、查询选修了C03号课程的学生的学号(Sno)和成绩(Grade),并按成绩降序排列。
USESTUDENT
SELECTSNO,GRADE
FROMSTUDENTS,Reports,Courses没用的
WHEREO='C03'
ORDERBYGRADEDESC
7、查询全体学生情况,查询结果按所在系的系名(Sdpet)升序排列,同一系中的学生按年龄(Sage)降序排列。
USESTUDENT
select*
fromStudents
orderbySdept,Sagedesc;
8、查询选修了课程的学生人数
USESTUDENT
selectcount(distinctSno)
fromSTUDENTS;
9、计算选修C01号课程的学生平均成绩,最高分数,最低分数。
USESTUDENT
selectavg(Grade),max(Grade),min(Grade)
fromSTUDENTS,Reports没有得
whereo='C01';
10、求各个课程号(o)及相应的选课人数。
USESTUDENT
selecto,count(Sno)没有得
fromSC
groupbyo;
11、查询选修了3门或3门以上课程的学生学号(Sno)。
USESTUDENT
selectSno
fromstudents,Courses
groupbySno没有得
havingcount(*)>=3;
教师评语
优
良
中
及格
不及格
批改日期
实验四 数据查询与更新
实验名称
数据简单查询(2课时)
实验日期
使用设备
硬件:
电脑一台
软件:
Windows、SQL server2000
实验地点
实验目的
1、掌握sql连接、嵌套和集合查询语句的一般格式和各种使用方法。
2、掌握sql数据插入、修改和删除语句的一般格式和使用方法。
实
验
内
容
1、查询每个学生及其选修课程的情况。
2、查询每个学生的学号(Sno)、姓名(Sname)、选修的课程名(ame)及成绩(Grade)。
3、查询选修了编号为“C02”的课程的学生姓名(Sname)和所在系(Sdept)。
4、查询与“李伟”在同一个系学习的学生学号(Sno)、姓名(Sname)和系名(Sdept)。
5、查询选修了课程名为“数据结构”的学生学号(Sno)和姓名(Sname)。
6、查询所有选修了编号为“C01”课程的学生姓名(Sname)和所在系(Sdept)。
7、查询计算机科学系的学生或年龄不大于20岁的学生信息。
8、将学号为“S03”的学生年龄改为22岁。
9、将所有学生的年龄增加1岁。
10、将数学系所有学生的成绩置零。
11、删除学号为“S04”的学生选修的课号为“C02”的记录。
12、删除所有学生的选课记录。
13、删除数学系所有学生的选课记录。
实验心得
教师评语
优
良
中
及格
不及格
批改日期
实验五 索引与视图
实验名称
索引与视图(2课时)
实验日期
使用设备
硬件:
电脑一台
软件:
Windows、SQL server2000
实验地点
实验目的
1、掌握sql建立索引的二种方法,即在基本表中建立和用命令方式建立;掌握删除索引的方法。
2、掌握sql视图建立、修改和删除。
实
验
内
容
1、为student数据库中的Students,Courses,Reports三个表建立索引。
其中Students表按Sno(学号)升序建立唯一索引,Courses表按o(课程号)升序建立唯一索引,Reports表按Sno(学号)升序和o(课程号)号降序建立唯一索引。
Usestudent
createuniqueindexStu_Sno
onstudents(Sno)
createuniqueindexCou_o
onCourses(o)
createuniqueindexRep_So
onReportscolumnSno,odesc
2、在基本表Students的Sname(姓名)和Sno(学号)列上建立一个聚簇索引,而且Students中的物理记录将按照Sname值和Sno值的升序存放。
createclusteredindexStud_SS
onstudents(Sname,Sno)
3、删除基本表Reports上的Rep_So索引。
DropindexReports.Rep_So
4、建立数学系学生的视图,并要求进行修改和插入操作时仍需保证该视图只有数学系的学生,视图的属性名为Sno,Sname,Sage,Sdept。
CreateviewC_Student
As
SelectSno,Sname,Sage,Sdept
fromstudents
whereSdep=’数学’
Withcheckoption
5、建立学生的学号(Sno)、姓名(Sname)、选修课程名(ame)及成绩(Grade)的视图。
本视图由三个基本表的连接操作导出。
CreateviewStudent_CR
As
SelectS.Sno,S.Sname,C.ame,R.Grade
fromstudentsasS,CoursesC,ReportsR
whereS.Sno=R.SnoandC.o=R.o
6、定义一个反映学生出生年份的视图。
Createviewstu_y
As
SelectSno,出生年份=cast((year(getdata())-Sage)asvarchar(4))+‘年’
fromstudents
7、删除视图Student_CR。
DropviewStudent_CR
8、在数学系的学生视图C_Student中找出年龄(Sage)小于20岁的学生姓名(Sname)和年龄(Sage)。
SelectSname,SnofromC_StudentwhereSage=20
9、在Student_CR视图中查询成绩在85分以上的学生学号(Sno)、姓名(Sname)和课程名称(ame)。
SelectSno,Sname,amefromStudent_CRwhereGrade=85
10、将数学系学生视图C_Student中学号为S05的学生姓名改为“黄海”。
UpdataC_Student
SetSname=’黄海’
WhereSno=’S05’
11、向数学系学生视图C_Student中插入一个新的学生记录,其中学号为“S09”,姓名为“王海”,年龄为20岁。
InsertintoC_Student(Sno,Sname,Sage,Sdept)
Values(‘S09’,’王海’,20,’数学’)
12、删除数学系学生视图C_Student中学号为“S09”的记录。
DeletefromC_Student
WhereSno=’S09’
实验心得
基本掌握了用SQL语言建立视图和索引
教师评语
优
良
中
及格
不及格
批改日期
实验六 存储过程和触发器、安全管理
实验名称
存储过程和触发器、安全管理(2课时)
实验日期
使用设备
硬件:
电脑一台
软件:
Windows、SQL server2000
实验地点
实验目的
1、主要使用SQL语言对存储过程和触发器进行创建、显示与删除。
2、会使用企业管理器对存储过程和触发器进行创建、显示与删除。
3、主要使用SQL语言对SQL server中数据库进行安全管理。
实
验
内
容
1、根据Sno创建一个存储过程Sno_prog,用于显示学生学号和姓名。
并执行此过程。
Usestudent
Ifexists(selectnamefromsysobjectswherename=’Sno_prog’andtype=’p’)
DropprocedureSno_prog
go
CreateprocedureSno_prog
As
SelectSno,Sname
Fromstudents
ExecuteSno_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 指导书