SQL server数据库管理系统实验报告.docx
- 文档编号:4444017
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:14
- 大小:21.58KB
SQL server数据库管理系统实验报告.docx
《SQL server数据库管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《SQL server数据库管理系统实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
SQLserver数据库管理系统实验报告
课程:
数据库原理及应用A
实验题目:
MSSQLServer2000数据库管理系统
学院:
计算机学院
班级:
学号:
姓名:
任课教师:
时间:
实验一:
数据库及数据库中表的建立实验
1.实验目的
(1)熟悉SQLSever2000的环境。
(2)掌握企业管理器的基本使用方法,对数据库及其对象有基本了解,了解对SQLSever2000进行配置的方法。
(3)掌握查询分析器的基本使用方法以及在查询分析器中执行T-SQL语句的方法。
(4)了解SQLSever2000数据库的逻辑结构和物理结构。
(5)学会在企业管理器中创建数据库及查看数据库属性。
(6)学会使用T-SQL语句创建数据库。
(7)了解SQLSever2000的基本数据类型、空值的概念,以及表的结构特点。
(8)学会使用T-SQL语句和企业管理器创建表结构和修改表结构。
(9)学会使用SQLSever2000提供的数据完整性功能,并在创建表时定义表的数据完整性。
通过实验进一步理解数据完整性的概念及分类。
2.实验内容
(1)学会使用企业管理器和查询分析器管理工具。
(2)使用企业管理器创建数据库。
创建一个教务管理数据库,名称为JWGL,数据文件的初始大小为20MB,文件增长方式为自动增长,文件增长增量设为5MB,文件的增长上限为500MB。
日志文件的初始大小为10MB,文件增长增量设为1MB,文件的增长限制设为100MB。
数据文件的逻辑文件名和物理文件名均采用默认值,分别为JWGL_data和d:
\MicrosoftSQLSever\MSSQL\data\JWGL_data.mdf;事务日志文件的逻辑文件名和物理文件名也采用默认值,分别为JWGL_log和d:
\MicrosoftSQLSever\MSSQL\data\JWGL_log.ldf。
(3)在查询分析器中使用T_SQL语句创建数据库。
创建一个名为Market的数据库(注意e盘下应存在sql_data目录)。
CREATEDATABASEMarket
ON
(NAME=Market_Data,
FILENAME=’e:
\sql_data\Market_Data.mdf’,
SIZE=10,
MAXSIZE=50,
FILEGROWTH=10%)
LOGON
(NAME=Market_Log,
FILENAME=’e:
\sql_data\Market_Log.ldf’,
SIZE=5,
MAXSIZE=15,
FILEGROWTH=10%);
(4)用企业管理器在教务管理数据库JWGL中创建学生表Student、课程表Course、学生选课表SC,它们的表结构如表B.1所示。
表B.1教务管理数据库的表结构
学生表Student
列名
数据类型
长度
允许空值
默认值
说明
Sno
char
8
×
主键
Sname
varchar
10
×
Sex
char
2
×
男
只能“男”或“女”
Age
tinyint
×
20
只能为15—30
Phonenumber
char
12
√
取值唯一
Sdept
varchar
20
×
课程表Course
列名
数据类型
长度
允许空值
默认值
说明
Cno
char
10
×
主键
Cname
varchar
20
×
取值唯一
Total_perior
tinyint
√
64
只能为32—108
Week_perior
tinyint
√
4
只能为2—7
credit
tinyint
×
4
只能为1—7
Pcno
char
10
√
学生选课表SC
列名
数据类型
长度
允许空值
默认值
说明
Sno
char
8
×
主键,外键
Cno
char
10
×
主键,外键
Grade
tinyint
√
只能为0—100
(5)用T_SQL语句在Market数据库中创建客户基本信息表Customers、货品信息表Goods、订单信息表Orders,它们的定义如下
CREATETABLECustomers(
CustomerIDintIDENTITY(1,1)PRIMARYKEY,
Cnamevarchar(8)NOTNULL,
Addressvarchar(50),
Cityvarchar(10),
Telvarchar(20)UNIQUE
Companyvarchar(50),
Birthdaydatetime,
TypetinyintDEFAULT1);
CREATETABLEGoods(
GoodsIDintCONSTRAINTC1PRIMARYKEY,
GoodsNamevarchar(20)NOTNULL,
Pricemoney,
Descriptionvarchar(200),
Storageint,
Providervarchar(50),
StatustinyintDEFAULT(0));
CREATETABLEOrders(
OrderIDintIDENTITY(1,1)CONSTRAINTC2PRIMARYKEY,
GoodsIDintNOTNULLREFERENCESGoods(GoodsID)ONDELETECASCADE,
QuanityintNOTNULLCONSTRAINTC3CHECK(Quantity>0),
OrderSummoneyNOTNULL,
OrderDatedatetimeDEFAULT(getdate()));
3.实验环境
装有SQLServer2000的实验机
4.实验前的准备
1.要明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATEDATABASE语句的用户。
2.创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数据库大小(最初的大小、最大的大小、是否允许增长及增长的方式)和存储数据的文件。
3.确定数据库包含哪些表以及包含的各表的结构,还要了解SQLServer的常用数据类型,以创建数据库的表。
4.了解常用的创建数据库和表的方法。
5.实验步骤
1、首先在企业管理器中创建好名称为JWGL的数据库,接着根据实验内容中的要求,把数据输入,使其生成一个基本的数据库
2、接着在这个数据库中建立新表,分别为学生表、课程表、学生选课表,
讲三者的完整性和联系都确立好。
3、在Market数据库中用查询分析器创建新表:
客户基本信息表、货品信息表、订单信息表。
4、完成Market数据库中各表的数据完整性。
6.实验结果
根据以上关于表的建立操作,可以得到两个较为完整的关系表,根据这两个表格我们就可以得到想要获得的信息了。
7.评价分析与心得体会
本次实验主要是初步熟悉SQLServer2000中对于表的建立的基本操作,表格的建立相对简单,况且以前也学个SQL,这次做起来还算是驾轻就熟,但是在企业管理器中创建约束是个难点。
通过这次实验,我对数据库的基本操作有了初步的认识,为后续实验打下了坚实的基础。
实验二:
数据库上的基本操作实验
1.实验目的
掌握使用T_SQL语句和企业管理器对数据表进行插入、修改和删除数据的操作,并体会数据完整性约束的作用,加深对数据完整性及其约束的理解。
数据查询是数据库中最基本的操作,也是使用最频繁的操作,因此必须掌握SQL的查询语句(SELECT语句)的使用方法。
进一步掌握SELECT语句的使用方法,通过实验能够熟练地使用SELECT语句。
通过本实验,要熟练掌握INSERT、UPDATE、DELETE语句的语法和使用方法。
掌握简单表的数据查询、数据排序和多表操作时数据连接查询的操作方法。
掌握嵌套查询和统计查询的操作方法。
2.实验内容
(1)分别使用T-SQL语句和企业管理器,向数据库JWGL、数据库Market中各张表输入一些记录。
(2)使用T-SQL语句进行插入、修改和删除记录的操作。
1插入数据时既要插入一些不违背数据完整性约束的记录,也要插入一些违背数据完整性约束的记录,观察插入后的结果,并利用相关知识解释此现象。
在涉及参照完整性约束的参照表中插入数据时,理解系统是如何保证完整性的。
2修改数据时除使用正确数据外,也可以对修改后的新值使用一些违背数据完整性约束的数据,观察系统执行后的结果。
另外进一步观察在涉及参照完整性约束的参照表和被参照表中修改数据时系统的执行情况,如果违背参照完整性那么观察结果。
3删除记录时一般不会出现问题,但要是在有参照完整性约束的被参照表中删除数据时也存在破坏完整性的情况。
观察删除记录系统的执行结果。
(3)简单查询操作。
该试验包括投影、选择表达、数据排序等。
1在数据库JWGL中的学生表Student、课程表Course、学生选课表SC中完成第3章例题3.10-例题3.28的查询操作。
2在数据库Market的客户表Customers、货品表Goods、订单表Orders中完成第3章习题6中
(1)-(4)的查询。
(4)连接查询操作。
该实验包括等值连接、自然连接、一般连接(内连接)、外连接、左外连接、右外连接和自然连接等。
1在数据库JWGL中的学生表Student、课程表Course、学生选课表SC中完成第3章例题3.35-例题3.39中的查询操作。
2在数据库Market的客户表Customers、货品表Goods、订单表Orders中完成第3章习题6中(5)的查询。
(5)在数据库JWGL的学生表Student、课程表Course、学生选课表SC中完成第3章例题3.40-例题3.47中的查询操作。
(6)在数据库Market的客户表Customers、货品表Goods、订单表Orders中完成第3章习题6中(6)-(9)的查询。
3.实验环境
装有SQLServer2000的实验机
4.实验前的准备
1.要明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATEDATABASE语句的用户。
2.创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数据库大小(最初的大小、最大的大小、是否允许增长及增长的方式)和存储数据的文件。
3.确定数据库包含哪些表以及包含的各表的结构,还要了解SQLServer的常用数据类型,以创建数据库的表。
4.了解常用的创建数据库和表的方法。
5.实验步骤
本实验中所用到的学生-课程数据库表如下:
Student
学号Sno
姓名Sname
性别Ssex
年龄Sage
所在系Sdept
950001
马征
男
20
CS
950002
杨青青
女
19
CS
950003
王义敏
女
18
MA
950004
赵之琛
男
19
IS
Course
课程号Cno
课程名Cname
先修课Cpno
学分Ccredit
1
数据库
5
4
2
数学
2
3
信息系统
1
4
4
操作系统
6
3
5
数据结构
7
6
6
数据处理
2
7
C语言
6
4
SC
学号Sno
课程号Cno
成绩Grade
950001
1
90
950001
2
88
950001
3
79
950002
2
93
950002
3
80
1.查询全体学生的学号,姓名和所在系的有关信息
SELECTSno,Sname,Sdept
FromStudent;
2.查询全体学生的所有信息。
SELECT*
FROMStudent;
3.查询全体学生的姓名及出生年份。
SELECTSname,2008-Sage
FROMStudent;
4.查询学生的学号,姓名和所在系,要求用小写字母表示所在的系。
SELECTSno,Sname,LOWER(Sdept)
FROMStudent;
5.在SC表中查询所有选了课程的学生的学号,并消除重复的学号。
SELECTDISTINCTSno
FROMSC;
6.查询计算机系的所有学生的学号和姓名。
SELECTSno,Sname
FROMStudent
WHERESdept=‘CS’;
7查询考试成绩不及格的学生的学号。
SELECTSno
FROMSC
WHEREGrade<60;
8.查询年龄在20~30岁之间的学生的姓名,所在系和年龄。
SELECTSname,Sdept,Sage
FROMStudent
WHERESageBETWEEN20AND23;
9.查询计算机系、数学系和信息系的学生姓名和性别。
SELECTSname,Sage
FROMStudent
WHERESdeptIN(‘CS’,’MA’,’IS’);
10.查询信息系所有学生的情况。
SELECT*
FROMStudent
WHERESdeptLIKE‘IS’
这里要注意的是如果后面的<匹配串>中不含有通配符,则可以用等号(=)代替LIKE。
11.查询DB_Design课程的课程号及学分。
SELECTCno,Ccredit
FROMCourse
WHERECnameLIKE‘DB\_Design’ESCAPE‘\’;
12.查询没有考试成绩的学生的学号及相应的课程号。
SELECTSno,Cno
FROMSC
WHEREGradeISNULL;
13.查询计算机系年龄在20岁以下的学生的学号、姓名和性别。
SELECTSno,Sname,Ssex
FROMStudent
WHERESdept=‘CS’ANDSage<20;
14.查询选修了1号课程的学生的学号及成绩,查询结果按成绩的降序排序。
SELECTSno,Grade
FROMSC
WHERECno=’1’
ORDERBYGradeDESC
15.查询全体学生情况,查询结果按所在系的升序排序,同一系中的学生按年龄降序排序。
SELECT*
FROMStudent
ORDERBYSdept,SageDESC;
16.查询每个学生及其选修课的情况
SELECTStudent.*,SC.*
FROMStudent,SC
WHEREStudent.Sno=SC.Sno;
17.对16用自然连接完成。
SELECTStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
FROMStudent,SC
WHEREStudent.Sno=SC.Sno;
18.查询每门课的间接先修课
SELECTFirst.Cno,Second..Cpno
FROMCourseFirst,CourseSecond
WHEREFirst.Cno=Second.Cno;
19.将17改为左外连接。
SELECTStudent.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
FROMStudentLEFTOUTERJOINSC
ONStudent.Sno=SC.Sno;
20.查询选修了数据库原理课程且成绩在90分以上的学生的学号和姓名。
SELECTStudent.Sno,Sname
FROMStudent,Course,SC
WHEREStudent.Sno=SC.SnoANDSC.Cno=Course.Cno
ANDCname=’数据库原理’ANDGrade>90;
21.查询选修了1号课程的学生的姓名。
SELECTSname
FROMStudent
WHERESnoIN
(SELECTSno
FROMSC
WHERECno=‘1’);
22.查询和张明在一个系学习的学生的学号和姓名。
SELECTSno,Sname
FROMStudent
WHERESdept=
(SELECTSdept
FROMStudent
WHERESname=‘张明’);
23.查询其他系中比计算机系某一学生小的学生姓名和年龄。
SELECTSname,Sage
FROMStudent
WHERESdept<>‘CS’
ANDSage FROMStudent WHERESdept=’CS’); 24.查询每个学生超过他所选课程平均成绩的课程号。 SELECTSno,Cno FROMSCx WHEREGrade>=(SELECTAVG(Grade) FROMSCy WHEREy.Cno=x.Cno); 6.实验结果 在本次实验当中,首先在上次实验中创建的数据库JWGL的三个表Student、Course、SC中添加所需的数据,然后使用INSERT、UPDATE、DELETE语句对其进行了插入、修改和删除的操作,最后依据实验要求使用SELECT语句分别进行了简单查询、连接查询和复杂查询的操作 实验三: 数据库的安全性试验 一、实验目的 (1)理解SQLServer2000验证用户身份的过程,掌握设置身份验证模式的方法。 (2)理解登录账号的概念,掌握混合认证模式下登录账号的建立与取消方法。 (3)掌握混合认证模式下数据库用户的建立与取消方法。 (4)掌握数据库用户权限的设置方法。 (5)理解角色的概念,掌握管理的角色技术。 二、实验内容 (1)在企业管理器中打开“SQLServer属性(配置)”对话框,设置身份验证模式为“SQLServer”和“Windows”模式(即混合模式)。 (2)创建、管理数据库服务器的登录账号。 (3)创建、管理数据库用户。 (4)管理用户权限。 (5)创建、管理数据库角色。 三、实验环境 装有SQLServer2000的实验机 四、实验前准备 五、实验步骤 1.在企业管理器中打开“SQLServer属性(配置)”对话框,设置身份验证模式为“SQLServer”和“Windows”模式(即混合模式)。 2.创建、管理数据库服务器的登录账号。 用T-SQL语句创建、查看、删除登录账号。 创建一个名为Student、密码为111、使用的默认数据库为JWGL的登录账号。 EXECsp_addlogin‘student’,’111’,’JWGL’ 查看登录账号 EXECsp_helplogins 删除登录账号为EXECsp_droplogins‘student’ 3.创建、管理数据库用户。 用T-SQL语句创建、查看、删除数据库用户。 为数据库JWGL创建一个用户user1,该用户登录SQLServer服务器的账号为wang,登录密码为secret,相应的程序代码为: EXECsp_addlogin‘wang’,‘secret’,‘JWGL’ GO EXECsp_grantdbaccess‘wang’,‘user1’ 查看数据库用户为EXECsp_helpuser 删除数据库中的“wang”用户为EXECsp_revokedbaccess‘wang’ 4.管理用户权限。 使用T-SQL语句完成第3章习题12中 (1)~(3)的用户管理和用户权限管理。 企业管理器: (1)允许用户李明对Orders表进行插入、删除操作。 GRANTINSERT,DELETEONOrdersTO‘李明’ (2)将查询Goods表和修改单价的权限授予用户李四。 GRANTUPDATE(Price),SELECTONGoodsTO‘李四’ (3)将查询Goods表的权限授予用户文云龙,并允许他将此权限授予他人。 GRANTSELECTONGoodsTO‘文云龙’ WITHGRANTOPTION 5.创建、管理数据库角色。 如一个小组共3个成员,他们对JWGL具有相同的操作权限,具体权限为对Student,Course表只能进行数据查询;对SC表可以进行查询、修改、删除和插入。 可以创建一个角色(如role),给该角色赐予相应的权限,然后给每个成员建立一个登录账号(如分别为lin,wang,zheng),并将每个成员的登录账号添加为数据库角色role的成员。 其代码如下: EXECsp_addrole‘role’ GO GRANTSELECTONStudent,courseTOrole GRANTSELECT,UPDATE,DELETE,INSERTONSCTOrole GO EXECsp_addrolemember‘role’,‘lin’ EXECsp_addrolemember‘role’,‘wang’ EXECsp_addrolemember‘role’,‘zheng’ 删除角色role,然后再使用企业管理器完成以上任务。 删除角色role时,必须保证它不包含任务数据库用户,即要先删除其下的所有成员。 EXECsp_droprolemember‘role’,‘lin’ EXECsp_droprolemember‘role’,‘wang’ EXECsp_droprolemember‘role’,‘zheng’ GO EXECsp_droprole‘role’
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SQL server数据库管理系统实验报告 server 数据库 管理 系统 实验 报告