数据库系统概论实验报告.docx
- 文档编号:23633164
- 上传时间:2023-05-19
- 格式:DOCX
- 页数:40
- 大小:2.99MB
数据库系统概论实验报告.docx
《数据库系统概论实验报告.docx》由会员分享,可在线阅读,更多相关《数据库系统概论实验报告.docx(40页珍藏版)》请在冰豆网上搜索。
数据库系统概论实验报告
实验一使用向导创建和删除数据库
一.实验目的
1.熟悉SQLServer中SQLServerManagementStudio的环境
2.了解SQLServer数据库的逻辑结构和物理结构
3.掌握使用向导创建和删除数据库的方法
二.实验准备
1.装有SQLServer2005/2008的PC机。
2.创建数据库的用户必须是DBA,或被授权使用CREATEDATABASE语句的用户。
三.实验要求
1.熟练使用SSMS进行数据库的创建和删除操作。
2.完成实验报告。
四.实验内容
设有一学籍管理系统,其数据库名为“EDUC”。
初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;
日志文件初始为2MB,最大可增长到5MB,按1MB增长。
数据库的逻辑文件名为“student_data”,物理文件名为“student_data.mdf,存放路径为“E:
\sql_data”(注意:
此文件名必须已经建立的前提下才可以此操作)。
日志文件的逻辑文件名为“student_log”,物理文件名为“student_log.ldf”,存放路径为“E:
\sql_data”。
五.实验步骤
1.使用SQLServerManagementStudio(简称SSMS)创建数据库。
(1)启动SSMS
在开始菜单中:
所有程序-SQLServer2005-SQLServerManagementStudio
单击“连接”按钮,便可以进入【SQLServerManagementStudio】窗口。
如果身份验证选择的是“混合模式”,则要输入sa的密码。
(2)建立数据库
在“对象资源管理器”窗口,建立上述数据库EDUC。
在数据库节点上右击选择新建。
同时建立一个同样属性的数据库EDUC1。
2.使用向导删除上面建立的数据库。
用SSMS删除建立的数据库EDUC。
3、数据库的分离
将刚建好的数据库分离出来,即点击新建的EDUC——任务——分离,将删除连接和更新打一个钩,然后点击确定。
如图所示:
4、数据分离出来之后可以附加进去
。
即右击数据库——附加——点击添加按钮,
找到数据库文件.mdf所存放的路径,然后点击确定,即可以将我们刚所创建的文件添加回去。
实验总结:
通过此次试验,我开始对数据库的使用有了一定的了解,会通过向导来完成数据库的创建以及删除,总的来说受益匪浅!
实验二使用SQL语句创建和删除数据库
一.实验目的:
1.了解SQLServer2005数据库的逻辑结构和物理结构。
2.掌握使用SQL语句创建、删除和修改数据库。
二.实验准备
1.明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATEDATABASE语句的用户。
2.了解用SQL语句创建、删除和修改数据库的基本语法。
三.实验要求
1.熟练使用查询分析器进行数据库的创建、删除和修改操作。
2.完成实验报告。
四.实验内容
使用SQL语句创建数据库EDUC。
五.实验步骤
1.建立数据库EDUC,初始大小为10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。
createdatabaseEDUC
on
(name=EDUC_data,--数据文件的逻辑名称,注意不能与日志逻辑同名
filename='E:
\sql_data\EDUC.mdf',--物理名称,注意路径必须存在
size=10,--数据初始长度为10M
maxsize=50,--最大长度为50M
filegrowth=5%)--数据文件每次增长5%
logon
(name=EDUC_log,
filename='E:
\sql_data\EDUC.ldf',
size=2,
maxsize=5,
filegrowth=1)
3.用SQL语句删除步骤1建立的数据库userdb1。
dropdatabaseuserdb1
4、在查询分析器中还可以实现对数据库的修改操作,
AlterDATABASE数据库名
{ADDFILE<文件选项>新增数据文件
|ADDLOGFILE<文件选项>新增数据日志文件
|REMOVEFILE逻辑文件名删除指定文件
|ADDFILEGROUP文件组名新增文件组
|REMOVEFILEGROUP文件组名删除文件组
|MODIFYFILE<文件选项>修改文件属性
|MODIFYNAME=新数据库名数据名更改
(1)将文件名EDUC改为EDUC1
ALTERDATABASEEDUC
MODIFYNAME=EDUC1;
(2)增加一个日志文件,文件名为EDUC_LOG,初始大小为10mb,最大为20MB,增加为1MB
ALTERDATABASEEDUC1
ADDLOGFILE
(NAME=EDUC_LOG,
FILENAME='E:
\sql_data\EDUC_LOG.LOG',
SIZE=10MB,
MAXSIZE=20MB,
FILEGROWTH=1MB
)
实验总结:
在做实验之前,听过课看过书之后,总感觉sql语句很简单,可以随手写来,可是到真的上机写语句实现的时候,就会发现原来并非想象中的那么简单。
好多细节,都是不曾留意的到的,只有真正去实现的时候,各种各样的错误就会显现出来。
以后一定要加强动手能力,纸上谈兵远远不够!
实验三使用SQL语句创建和删除表
一.实验目的
1.了解表的结构特点。
2.了解SQLServer的基本数据类型。
3.学会使用T-SQL语句创建表。
二.实验要求
1.完成SQL语句创建、修改、删除基本表。
2.完成实验报告。
三.实验准备
1.确定数据库包含的各表的结构,还要了解SQLServer的常用数据类型,以创建数据库的表。
2.已成功创建了数据库EDUC。
3.掌握SQL创建基本表的方法。
4.掌握SQL修改基本表的方法。
5.掌握SQL删除基本表的方法。
四.实验内容
在数据库EDUC中,创建如下几个表:
表3.1class表(班级信息表)
字段名称
类型
允许空值
主键
说明
ClsNO
Char(6)
NOTNULL
是
班号
ClsName
Varchar(16)
NOTNULL
班名
Director
Varchar(10)
NULL
辅导员
Specialty
Varchar(30)
NULL
专业
表3.2student表(学生信息表)
字段名称
类型
允许空值
主键
说明
Sno
Char(8)
NOTNULL
是
学号
Sname
Varchar(10)
NOTNULL
姓名
Ssex
Char
(2)
性别:
男、女
ClsNO
Char(6)
NULL
班级的编号,(外键)参照表Class
Saddr
Varchar(20)
住址
Sage
numeric(3,0)
年龄,大于10,但小于30岁
Height
Decimal(4,2)
身高
表3.3course表(课程信息表)
字段名称
类型
允许空值
主键
说明
Cno
Char(4)
NOTNULL
是
主键
Cname
Varchar(16)
NOTNULL
课程的名称
Cpno
char(4)
NULL
先修课程的课程号(外键),参照cno
Ccredit
Tinyint
学分
表3.4sc表(学生选课成绩表)
字段名称
类型
允许空值
主键
说明
Sno
Char(8)
NOTNULL
是
学号,参照Student,与Cno组成主键
CNO
Char(4)
NOTNULL
是
课程号,参照Course
grade
Numeric(4,1)
NULL
成绩
五.实验步骤
1.打开查询窗口,输入创建基本表的sql语句,点击“执行”按钮,完成表的创建。
创建class表如下:
createtableclass(
ClaNochar(6)primarykeynotnull,
ClsNameVarchar(16)notnull,
DirectorVarchar(10),
SpecialtyVarchar(30)
);
2.用上述方法创建其他表。
创建student表如下:
createtablestudent(
Snochar(8)primarykey,
Snamevarchar(10),
Ssexchar
(2)constraintc1check(ssexin(‘男’,’女’)),
ClsNovarchar(6),
Saddrvarchar(20),
Sageintconstraintc2check(10 Heightint, ); 创建course表如下: createtablecourse( Cnochar(4)primarykey, Cnamevarchar(16), Cpnochar(4), CcreditTinyint, ); 创建SC表如下: createtablesc( Snochar(8), CNochar(4), gradeNumeric(4,1), primarykey(Sno,CNo), foreignkey(Sno)referencesStudent(Sno), foreignkey(CNo)referencesCourse(CNo) ); 3.按照student的要求创建表student1,修改基本表student1 1向student1表增加“入学时间”列s_entrance,其数据类型为日期型。 altertablestudentadds_entrancedatetime; 2删除altertablestudent dropcolumns_entrance; 4.按照student的要求创建表student2,并将年龄的数据类型由字符型改为整数。 Altertablestudent2altercolumnsageint;(报错: 因为sage上有check约束,删除check约束后再修改类型) 1删除check约束: AltertableStudentdropc2; 2修改字符类型: Altertablestudent2altercolumnsageint; 5.将student2表中sage改回smallint型。 Altertablestudent2altercolumnsagesmallint; 6.删除sage后再增加新列和新的完整性约束 altertablestudent2dropcolumnSage; altertablestudent2addSagenumeric(3,0); altertablestudent2addconstraintc15check(Sage<30); 7.按照student的要求创建Student1,然后删除Ssex完整性约束。 AltertableStudentdropc1; 8.删除基本表student1。 Droptablestudent1; 9.将以上创建表的SQL语句以.SQL文件的形式保存在磁盘上。 10、将在sudent1中新加入的列名s_entrance修改为Sentrance exec sp_rename 'student1.S_entrance','sentrance'%不加exec也行 11、将student2表名改为student1 exec sp_rename 'student2','student1' 实验总结: 通过这次实验,掌握了基本表的建立方法,但是在创建表的时候还有一定的问题,比如总是忘记定义主码导致无法运行,还需要大量的练习啊! 实验四数据更新操作 一.实验目的 1.熟悉使用UPDATE/INSERT/DELETE语句进行表操作; 2.能将这些更新操作应用于实际操作中去; 二.实验准备 1.向EDUC数据库的各表中插入、修改和删除数据。 2.了解INSERT、UPDATE及DELETE语句。 三.实验要求 1.完成下面的实验内容,并提交实验报告; 2.在实验报告中附上相应的代码; 四.实验内容 (1)向表(Class)中插入数据 ClsNO ClsName Director Specialty CS01 计算机一班 张宁 计算机应用 CS02 计算机二班 王宁 计算机应用 MT04 数学四班 陈晨 数学 PH08 物理八班 葛格 物理 GL01 地理一班 张四 应用地理 插入数据之后使用命令: Select*fromClass;检查插入数据的正确性 (2)向表(Student)中插入数据 Sno Sname Ssex ClsNO Saddr Sage Height 20090101 王军 男 CS01 下关40# 20 1.76 20090102 李杰 男 CS01 江边路96# 22 1.72 20090306 王彤 女 MT04 中央路94# 19 1.65 19940107 吴杪 女 PH08 莲化小区74# 18 1.60 插入数据之后使用命令: Select*fromStudent;检查插入数据的正确性 (3)向表(Course)中插入数据 Cno Cname Cpno Credit 0001 高等数学 Null 6 0003 计算机基础 0001 3 0007 物理 0001 4 插入数据之后使用命令: Select*fromCourse;检查插入数据的正确性 (4)向表(SC)中插入数据 SNO CNO Grade 20090101 0001 90 20090101 0007 86 20090102 0001 87 20090102 0003 76 20090306 0001 87 20090306 0003 93 19940107 0007 85 (5)对于student表,将所有班级号为‘CS01’的,并且年龄小于20岁的学生的班级号改为‘CS02’。 (6)对于student表,删掉所有年龄不小于20岁,并且专业号为‘CS02’的学生的记录。 对于student表,插入一条新记录,它的具体信息为,学号: 20071101、姓名: 张三、性别: 男、年龄: 19、班级编号: ‘CS01’。 (7)对于student表,将年龄最小的学生的家庭地址去掉。 (8)对于student表,将平均年龄最小的一个班级编号改为‘GL01’ 五、实验步骤: 1.向class表插入数据如下: insertclassvalues('CS01','计算机一班','张宁','计算机应用'); insertclassvalues('CS02','计算机二班','王宁','计算机应用'); insertclassvalues('MT04','数学四班','陈晨','数学'); insertclassvalues('PH08','物理八班','葛格','物理'); insertclassvalues('GL01','地理一班','张思','应用地理'); 插入成功后查询如下: 2.向Student表插入数据如下: insertstudentvalues('20090101','王军','男','CS01','下关#','20','176'); insertstudentvalues('20090102','李杰','男','CS02','江边路#','22','172'); insertstudentvalues('20090306','王彤','女','MT04','中央路#','19','165'); insertstudentvalues('19940107','吴纱','女','PH08','莲花小区#','19','160'); 3.向course表插入数据如下: insertcoursevalues('0001','高等数学','null','6'); insertcoursevalues('0003','计算机基础','0001','3'); insertcoursevalues('0007','物理','0001','4'); 4.向表SC中插入数据 20090306 0007 90 insertscvalues('20090101','0007','86'); insertscvalues('20090102','0001','87'); insertscvalues('20090102','0003','76'); insertscvalues('20090306','0001','87'); insertscvalues('20090306','0003','93'); insertscvalues('19940107','0007','85'); insertscvalues('20090306','0007','90'); 5.对于student表,将所有班级号为‘CS01’的,并且年龄不大于20岁的学生的班级号改为‘CS02’ updatestudent setClsNo='CS02' wherestudent.ClsNo='CS01'andSage<=20; 6.对于student表,删掉所有年龄不小于20岁,并且专业号为‘CS02’的学生的记录。 如果建表的时候没写级联删除,就在删除前先添加级联删除语句 deletestudent wherestudent.ClsNo='CS02'andSage>=20; 对于student表,插入一条新记录,它的具体信息为,学号: 20071101、姓名: 张三、性别: 男、年龄: 19、班级编号: ‘CS01’。 insertintostudent(Sname,Sno,Ssex,ClsNo,Sage)values('张三','20071101','男','CS01','19'); 7.对于student表,将年龄最小的学生的家庭地址去掉。 8.对于student表,将平均年龄最小的一个班级编号改为‘GL01’ UpdateStudentsetSno=’GL01’whereSage<=(selectavg(Sage)fromstudent); 9.对于student表,将学号为19940107的学生的姓名该成“吴用”; UpdateStudentsetSname=’吴用’whereSno=’19940107’; 10、对于sc表,将学号为20090101且的成绩为86的学生的成绩改为96 Updatescsetgrade=’96’whereSno=’20090101’; 实验总结: 我认为这次数据更新操作实验是意义非凡和意义重大的,这次实验既与现实社会相关联,也是学好这门数据库的关键所在。 经过这次实验之后使得我对数据更新的数据有了更进一步的理解,同时为我学好数据库打下了基础。 实验五创建和删除索引 一.实验目的 1.了解索引的类型和应用。 2.学会用SQL语句对表创建和删除索引 二.实验准备 1.成功创建了数据库EDUC中各表 2.了解创建和删除索引的方法。 三.实验要求 1.了解索引类型并比较各类索引的不同之处 1.完成索引的创建和删除,并提交实验报告。 四.实验内容 1.用SQL语句分别建立以下索引 (1)在student表的Sname列上建立普通降序索引Stusname。 (2)在course表的aCname列上建立唯一索引Coucname。 (3)在sc表的Sno(升序),Cno(升序)和grade(降序)三列上建立一个普通索引SCno。 2.用SQL语句删除索引 删除Student表的Stusname索引。 五.实验指导 1.用SQL语句分别建立以下索引 (1)在student表的sname列上建立普通降序索引Stusname。 CreateindexStusnameonstudent(snamedesc); (2)在course表的cname列上建立唯一索引Coucname。 CreateuniqueindexCoucnameoncourse(cname); (3)在sc表的Sno(升序),Cno(升序)和grade(降序)三列上建立一个普通索引SCno。 Createindexscnoonsc(snoasc,cnoasc,gradedesc); 2.删除索引: 删除Student表的Stusname索引。 dropindexstudnetnameonstudent; 实验总结: 通过本次试验,掌握了索引的建立方法,对索引有了进一步的了解。 整个实验比较简单,没出现什么重大错误。 实验六数据查询 一.实验目的 1.观察查询结果,体会SELECT语句实际应用; 2.要求学生能够在查询分析器中使用SELECT语句进行简单查询。 3.熟练掌握简单表的数据查询、数据排序和数据连接查询的操作方法。 二.实验准备 1.成功建立了基本表。 2.了解简单SELECT语句的用法。 3.熟悉查询分析器中的SQL脚本运行环境。 三.实验要求 1.完成简单查询和连接查询操作,并验收实验结果提交实验报告 四.实验内容 所有的查询全部用Transact-SQL语句实现。 此部分查询包括投影、选择条件表达、数据排序、使用临时表等。 对EDUC数据库实现以下查询: 1)查询计算机应用专业的学生学号和姓名; 2)查询选修了课程的学生学号; 3)查询选修课程0001且成绩在80-90之间的学生学号和成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 系统 概论 实验 报告