目 录
实验一 MSSQL SERVER 2008环境及主要工具 .......... 2 实验二 实验三 实验四 实验五 实验六 实验七 实验八
数据定义 ........................................................ 4 数据更新 ........................................................ 7 数据完整性 .................................................. 11 索引与视图 .................................................. 19 数据查询 ...................................................... 26 数据库安全性 .............................................. 37 数据库设计 .................................................. 43
实验一 MSSQL SERVER 2008环境及主要工具
一、实验目的:
1. 了解关系型数据库管理系统MSSQL-SERVER 2008。 2. 了解MSSQL SERVER 2008提供的各种工具及其功能。
3. 掌握SQL Server Management Studio(SSMS)、SQL Server配置管理器(Configuration
Manager)及联机文档(Books Online)的基本操作。
4. 掌握通过SSMS和配置管理器启动、停止、注册和配置服务管理。
二、实验时间:2014-10-15 三、实验内容及步骤: 2.
3.
4 5.
6.
1
7.
.
四、实验结果分析及总结
在本次实验中,我了解到了数据库的两种安全模式,MSSQL SERVER 2008的各种工具。通过ssms操纵数据库,让我了解到DBA的工作,不仅可以通过代码来完成,还可以选择一种更方便的途径。
1
实验二 数据定义
一、实验目的:
1. 掌握使用SQL语句及SSMS创建数据库与表。 2. 掌握使用SQL语句及SSMS修改数据库与表。 3. 掌握使用SQL语句及SSMS删除数据库与表。
二、实验时间:2014-10-22 三、实验内容及步骤:
1.
2.
3.
4
1
5. 6.
7.
8.
9.
用ALTER TABLE语句向学生表增加“入学时间”列,其数据类型为日期时间型,然后再间接删除该列。 代码如下: ALTER TABLE Student
ADD Scome DATE; 截图如下:
1
10.
用ALTER TABLE语句将学生的年龄的数据类型改为半字长(Smallint),查看修改属性后再改回原数据类型。 ALTER TABLE Student
ALTER COLUMN Age SMALLINT;
11.
用DROP TABLE语句删除已有的表。 DROP TABLE SC
DROP TABLE Course DROP TABLE Student DROP TABLE TC DROP TABLE Teacher
12.
用DROP DATABASE语句删除数据库jiaoxuedb。 DROP DATABASE jiaoxuedb;
四、实验结果分析及总结
在本次实验中,我了解到了数据库对象的建立,修改,删除。在写代码的时候总是会
犯一些小错误,比如在建立表的时候在写列名的时候,会有“()”,而在修改表的时候没有“()”,真是事无巨细啊,以后应该我会更加注重学习的细节之处。
1
实验三 数据更新
一、 实验目的
掌握使用SQL语句及SSMS实现数据的插入、修改和删除。
二、实验时间:2014-10-17 三、 实验内容及步骤
1.
USE jiaoxuedb
/*Insert values to Student Table*/
INSERT INTO Student VALUES('001101','宋大方','男',19,'计算机') INSERT INTO Student VALUES('002102','李王','男',20,'信息') INSERT INTO Student VALUES('991101','张彬','男',18,'计算机') INSERT INTO Student VALUES('991102','王蕾','女',19,'计算机') INSERT INTO Student VALUES('991103','张建国','男',18,'电子商务') INSERT INTO Student VALUES('991104','李平方','男',18,'计算机') INSERT INTO Student VALUES('991201','陈东辉','男',19,'计算机') INSERT INTO Student VALUES('991202','葛鹏','男',21,'电子商务') INSERT INTO Student VALUES('991203','潘桃芝','女',19,'电子商务') INSERT INTO Student VALUES('991204','姚一峰','男',18,'计算机') INSERT INTO Student VALUES('001102','许辉','女',22,'电子商务') INSERT INTO Student VALUES('001201','王一山','男',20,'计算机') INSERT INTO Student VALUES('001202','牛莉','女',19,'计算机') INSERT INTO Student VALUES('002101','李丽丽','女',19,'信息')
/*Insert values to Course Table*/
INSERT INTO Course VALUEs('01001','计算机基础',60,3) INSERT INTO Course VALUEs('01002','程序设计',80,5) INSERT INTO Course VALUEs('02003','数据结构',60,6) INSERT INTO Course VALUEs('02001','数据库',80,6) INSERT INTO Course VALUEs('02002','计算机网络',60,6) INSERT INTO Course VALUEs('01003','微机原理',60,8) INSERT INTO Course VALUEs('02004','操作系统',60,6) INSERT INTO Course VALUEs('03001','软件工程',60,3) INSERT INTO Course VALUEs('03002','大型数据库',48,2) INSERT INTO Course VALUEs('03003','图像处理',48,2)
1
2.
CREATE DATABASE jxsk ON
(NAME=jxsk_dat,FILENAME='d:\\jxsk_dat.mdf') LOG ON
(NAME=jxsk_log,FILENAME='d:\\jxsk_log.ldf') GO
3.
将数据库jiaoxuedb中所有的课程课时量增加10%。 UPDATE Course
SET Chour=1.1*Chour; 4.
将数据库jiaoxuedb中信息系全体学生的成绩置0。 UPDATE SC
SET SCORE=0
WHERE Sno IN (SELECT Sno FROM Student WHERE Dept='信息'); 5.
将数据库jiaoxuedb中电子商务系学生年龄增加1岁。 UPDATE Student
SET Age=Age+1 WHERE Dept='电子商务' 6.
将数据库jiaoxuedb中所有课程成绩不及格的记录删除。 DELETE
FROM SC WHERE SCORE<60; 7.
将数据库jiaoxuedb中计算机系所有学生的选课记录删除。 DELETE
FROM Student WHERE Dept='计算机'
1
四、实验结果分析及总结
在数据定义这部分,我了解到视图与索引都依附于表,因此
SQL通常不提供修改视
图定义和修改索引定义的操作,还有对表允许增加新的属性,但是一般不允许删除属性,如果确实要删除一个属性,必须先将表删除掉,再重新建立表并装入数据。
1
1
实验四 数据完整性
一、 实验目的
掌握关系数据库中的实体完整性、参照完整性及用户自定义完整性约束定义。
二、实验时间:2014-10-28 三、实验内容及步骤
1. 对各表创建实体完整性约束。
USE jiaoxuedb
ALTER TABLE Student
ALTER TABLE Teacher
ALTER TABLE Course
ALTER TABLE Student
ALTER TABLE Teacher
ALTER TABLE Course
ADD CONSTRAINT UNIQUE_C UNIQUE(Cno) ADD CONSTRAINT UNIQUE_T UNIQUE(Tno) ADD CONSTRAINT UNIQUE_S UNIQUE(Sno) ADD CONSTRAINT PK_CNO PRIMARY KEY(Cno) ADD CONSTRAINT PK_TNO PRIMARY KEY(Tno) ADD CONSTRAINT PK_SNO PRIMARY KEY(Sno)
2 .创建表之间的参照完整性约束。
USE jiaoxuedb
ALTER TABLE SC WITH NOCHECK
ALTER TABLE SC WITH NOCHECK
ALTER TABLE TC WITH NOCHECK
ADD CONSTRAINT FK_T_TC FOREIGN KEY(Tno) REFERENCES Teacher(Tno) ON DELETE CASCADE
1
ADD CONSTRAINT FK_C_SC FOREIGN KEY(Cno) REFERENCES Course(Cno) ON DELETE CASCADE
ADD CONSTRAINT FK_S_SC FOREIGN KEY(Sno) REFERENCES Student(Sno) ON DELETE CASCADE
ALTER TABLE TC WITH NOCHECK
ADD CONSTRAINT FK_C_TC FOREIGN KEY(Cno) REFERENCES Course(Cno) ON DELETE CASCADE
3.用不同的方法创建下面约束。
(1)(“姓名”字段取唯一值:)
USE jiaoxuedb ALTER TABLE Student
ADD CONSTRAINT UNIQUE_SNA UNIQUE(Sname)
1
ALTER TABLE Teacher
ADD CONSTRAINT UNIQUE_TNA UNIQUE(Tname)
(2)“性别”字段取值为:‘男’或‘女’;默认值:‘男’; USE jiaoxuedb
ALTER TABLE Teacher WITH CHECK
1
ADD CONSTRAINT CHECK_T_SEX CHECK(SEX='男' OR SEX='女')
ALTER TABLE Teacher
ADD CONSTRAINT DF_T_SEX DEFAULT '男' FOR Sex
ALTER TABLE Student WITH CHECK
ADD CONSTRAINT CHECK_S_SEX CHECK(SEX='男' OR SEX='女')
1
ALTER TABLE Student
ADD CONSTRAINT DF_S_SEX DEFAULT '男' FOR Sex
(3)“年龄”和“分数”字段取值限定为:0~100之间。 USE jiaoxuedb
ALTER TABLE Student WITH CHECK
ADD CONSTRAINT CHECK_S_AGE CHECK(AGE>0 AND AGE<100)
1
ALTER TABLE Teacher WITH CHECK
ADD CONSTRAINT CHECK_T_AGE CHECK(AGE>0 AND AGE<100)
4.向表中添加数据、更新数据验证约束。要求:
1)使用INSERT INTO 命令向表中分别插入若干数据,验证主键约束、唯一性约束、非空约束。 主键约束: 代码:
INSERT Student(Sno,Sname,Sex,Age,Dept) VALUES(001,'赵',’男’,20,'计算机')
1
唯一性约束:
INSERT Student(Sno,Sname,Sex,Age,Dept) VALUES(001,'赵赵','男',20,'计算机')
非空约束:
INSERT Student(Sno,Sname,Sex,Age,Dept) VALUES('001',NULL,'男',20,'计算机')
1
2)使用UPDATE命令更新数据,验证外键约束及以上建立自定义约束。 UPDATE Teacher SET Tno='000010' WHERE Tno='000011'
5. 依次删除以上约束:
USE jiaoxuedb
ALTER TABLE Student
DROP CONSTRAINT CHECK_S_AGE ALTER TABLE Teacher
DROP CONSTRAINT CHECK_T_AGE
四、实验测评与考核
通过此次实验,我知道了完整性约束有三种,实体完整性,参照完整性,用户自定义的完整性约束条件,当出现参照完整性约束不符合时,如果是对参照表的操作违反了参照完整性,该操作被拒绝执行,如果是被参照表,系统默认拒绝执行,如果想让系统采用其他策略,则必须说明,cascade(瀑布删除),set-null(设置为空值)。这让我明白了对数据更新的时候,需要遵守一定的原则。
1
实验五 索引与视图
一、实验目的
1. 掌握使用SQL语句及SSMS创建和删除索引的操作。 2. 掌握使用SQL语句及SSMS创建和查看视图的操作。 3. 掌握使用SQL语句及SSMS修改和删除视图的操作。
二、实验时间:2014-10-28 三、实验内容及步骤
1.
2.
注:无法对表'SC' 创建多个聚集索引。请在创建新聚集索引前删除现有的聚集索引'IND_SC_CNO'。
3.
1
4.
5.
6.
1
7.
8.
9.
1
10.
11.
1
12.
13.
14.
1
15.
16.
1
四、实验测评与考核
通过此次实验,我了解到视图是一张虚表,对行列子集视图的更新会转化为对表的操作,
在对视图做插入操作时,转化为对表的操作时,并没有并上定义视图时的条件,而对视图做更新与删除操作时,会自动并上建立视图时的条件。需特别留意!
1
实验六 数据查询
一、实验目的
1. 掌握SELECT语句在单表查询、连接查询、嵌套查询和集合操作中的常规用法。 2. 掌握常用聚集函数的用法。
3. 掌握LIKE、DISTINCT、ORDER BY、GROUP BY及UNION的用法。 4. 掌握带EXISITS的查询语句的用法。
二、实验时间:2014-11-05 三、实验内容及步骤
1.
2.
3.
4.
5.
1
6.
7.
8.
1
9.
10.
11.
12.
13.
1
1.2.1
3.
7.
8.
1
4.
5.
6.
9.
10.
11.
12.
1
13.
14.
15.
16.
1
17.
18.
19.
1
20.
21
22.
23.
1
24.
25.
26.
27.
1
28.
四、实验测评与考核
通过此次实验,我熟悉了SQL中的一些查询操作,但是在执行书上例题中的一些SQL语句时,并没有出现书上的结果,如上面两题,经过查找资料,我明白了原因是sql标准的不同。
1
实验七 数据库安全性
一、实验目的
1. 了解MSSQL Server 2008中身份验证与存取控制的数据安全机制。 2. 掌握通过SSMS进行身份验证模式设置与登录帐号管理的方法。 3. 掌握通过SSMS进行数据库用户及角色管理的方法。
4. 掌握通过SSMS和GRANT语句进行数据库对象权限授予操作。 5. 掌握通过SSMS和REVOKE语句进行数据库对象权限收回操作。
二、实验时间:2014-11-12 三、实验内容及步骤
1.
2.
1
3.
4.
1
5.
1
6.
7.
GRANT INSERT,DELETE,UPDATE
1
ON Student TO SQLAdmin
GRANT INSERT,DELETE,UPDATE ON TC TO SQLAdmin
GRANT INSERT,DELETE,UPDATE ON Course TO SQLAdmin
GRANT INSERT,DELETE,UPDATE ON Teacher TO SQLAdmin
GRANT INSERT(Sno,Cno),DELETE(Sno,Cno),UPDATE(Sno,Cno) ON SC
TO SQLAdmin 8.
1
四、实验测评与考核
通过此次实验,我知道了SQLserver中的存取控制机制,使用数据库管理系统必须是系统的一个合法的用户,以某种方式连接到数据库管理系统后,当对表和视图等数据库对象操作时,系统要检查是否拥有必要的权限。在SQL Server使用系统存取过程完成上述任务。
1
实验八 数据库设计
一、实验目的
1. 通过数据库设计案例练习,了解数据库设计过程。 2. 掌握使用E-R模型进行概念结构设计。
3. 掌握逻辑结构设计,将E-R图转换为RDBMS所支持的关系模型。
二、实验时间:2014-12-09 三、实验内容及步骤
1. 教学管理
1
1
2. 图书销售 基本需求分析:
建立某中小型书店图书销售管理信息系统的数据库。 要求:
(1) 设计该图书销售管理完整的E-R模型,并作适当解释说明。
1
(2) 备注);
将得到的E-R模型转化为关系模型,并作适当解释说明。
企业部门信息(部门编号,部门名,办公电话)
员工信息(工号,姓名,性别,生日,职务 ,薪金);
出版社信息(出版社编号,出版社名称,地址,联系电话,联系人);
基本图书信息(图书编号,ISBN,书名,作者,出版社,版次,出版日期,定价,图书类别,1
进书单及细目(进书单号,日期,进书细目,金额,业务员); 售书单及细目(售书单号,日期,售书细目,金额,业务员); 书库账本(图书编号,库存数量,平均进价折扣,备注)
(3)在SOL Server中指定数据库文件的名称,并为设计好的关系模型设计表结构。数据库文件保存在“X:\\ 图书销售\\”文件夹中,数据库文件名:图书销售。
企业部门信息:
员工信息:出版社信息:
基本图书信息:
进书单及细目:
售书单及细目:
1
书库账本:
四、实验测评与考核
从E-R图到关系模式,对于1:n联系有两种处理方法:一是把联系型转换为关系,二是与n端实体对应的关系模式合并。
因为外码的存在,在插入数据的时候需要按照一定的顺序
1
因篇幅问题不能全部显示,请点此查看更多更全内容