数据库原理与应用实验指导书-2012(10电商科)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库原理与应用》实验指导书
实验一数据库创建
一、实验目的
1、掌握在SQL-SERVER 2005平台下创建数据库的过程与方法。
2、理解数据完整性的基本概念,并掌握其实现方法。
二、实验预备知识
1、SQL-SERVER数据库文件特点。
2、数据库完整性、主码、外码、默认值、空值、CHECK约束基本概念与相关基础知识。
三、实验内容
(一)“仓库库存”数据库创建
1、在E盘下新建一个名为“data”的文件夹。(要求将后面创建的数据库文件均存储在该文件夹下)
2、启动SQL Server Management Studio,连接数据库服务器,观察其界面环境。
3、创建名为“仓库库存”的数据库,并设置数据库主文件名为仓库库存_data,大小为10MB,日志文件名为仓库库存_log,大小为2MB。
4、删除上一步创建的数据库,使用T-SQL语句再次创建该数据库,主文件和日志文件的文件名同上,要求:仓库库存_data最大尺寸为无限大,增长速度为20%,日志文件初始大小为2MB,最大尺寸5MB,增长速度为1MB。
5、在数据库“仓库库存”中完成下列操作。
(1)创建“商品”表,表结构如表1所示。
(2)创建“仓库”表,表结构如表2所示。
(3)创建“库存情况”表,表结构如表3所示。
7、分别给3个表添加数据如表4至表6所示:
表5仓库表
(二)“教学库”的创建
1、创建名为“教学库”的数据库。
2、在“教学库”中创建“学生”表。使用下列语句:CREATE TABLE student
(sno char(7) PRIMARY KEY,
sname char(8) NOT NULL,
ssex char(2),
sage tinyint
sdept char(20)
)
3、在“教学库”中创建“课程”表。使用下列语句:CREATE TABLE Course
(cno char(6) PRIMARY KEY,
cname char(20) NOT NULL,
credit tinyint,
semester tinyint,
primary key(cno)
)
4、在“教学库”中创建“选课”表。使用下列语句:CREATE TABLE SC
(sno char(7) NOT NULL,
cno char(6) NOT NULL,
grade tinyint,
PRIMARY KEY(sno,cno),
FOREIGN KEY(sno) REFERENCE student(sno), FOREIGN KEY(cno) REFERENCE course(cno))
5、建立三个表之间的关系图。
6、向表中输入数据。
实验二 T-SQL应用
一、实验目的
1、理解T-SQL查询语句的常用功能及书写方法,并掌握其应用。
2、掌握记录添加、删除、修改语句的使用。
3、掌握视图的创建方法。
4、掌握存储过程、触发器和游标的使用方法。
5、掌握事务和安全管理的基本操作。
二、实验预备知识
1、SELECT查询语句的常用格式。其基本结构可描述为:
SELECT<目标列名序列>
FROM<数据库源>
[WHERE <检索条件表达式>]
[GROUP BY <分组依据列>[HA VING <组筛选条件>]]
[ORDER BY <排序依据列>]
2、关系代数基础知识。
3、投影查询、选择查询、排序查询、聚集函数、联接查询、子查询的实现方法。
4、记录添加、删除、修改语句的格式与功能。
(1)INSERT 语句
INSERT [INTO] table_name [(column_list)] V ALUES(expression_list)
(2)UPDATE 语句
UPDATE table_name SET column_name=expression WHERE search_condition (3)DELETE语句
DELETE [FROM] table_name WHERE search_condition
5、视图的创建
CREATE VIEW 视图名AS SQL语句
6、存储过程的创建
CREATE PROCEDURE 存储过程名
[{@参数名数据类型} [=default] [OUTPUT] [,……n]]
AS SQL语句[……n]
7、存储过程的调用
EXECUTE 存储过程名[实参[,OUTPUT] [,…n]]
三、实验内容
针对“教学库”中的三个表,完成下列操作:
1、练习教材第5章的有关例题。
2、实现下列查询操作:
(1)统计有学生选修的课程门数。
(2)求选修C04课程的学生的平均年龄。
(3)求学分为3的每门课程的学生平均成绩。
(4)统计每门课程的学生选修人数,超过3人的课程才统计。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。
(5)检索年龄比李勇小的学生姓名。
(6)检索姓名以张打头的所有学生的姓名和年龄。
(7)检索成绩为空值的学生学号和课程号。
(8)求年龄大于女同学平均年龄的男学生姓名和年龄。
(9)求年龄大于所有女同学年龄的男学生姓名和年龄。
(10)检索选修课程C01的学生中成绩最高的学生的学号。
(11)检索学生姓名及其所选修课程的课程号和成绩。
(12)检索选修2门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。
4、利用控制流语句,查询学号为9531101的学生的各科成绩,如果没有这个学生的成绩,就显示“此学生无成绩”。
5、针对“仓库库存”中的“商品”表,查询商品的商品号、商品名和价格等级(单价1000元以内为“低价商品”,1000~3000元为“中等人们价位商品”,3000元以上为“商价商品”)。
6、利用T-SQL语句创建一个视图,该视图包含“信息学”专业的学生号和姓名。通过修改该视图来实现对学生表的修改。
7、利用T-SQL语句创建一个查询每个学生的平均成绩的视图,要求包含学生的学生号、姓名和平均成绩。
8、创建存储过程,从课程表中返回指定的课程的信息。该存储过程对传递的参数进行模式匹配,如果没有提供参数,则返回所有课程的信息。
9、为选课表建立一个修改触发器,用来防止将60分以下的成绩改为60分以上。利用T-SQL扩展方式声明一个游标,查询学生表中所有男生的信息,并读取数据。要求:
(1)读取最后一条记录。
(2)读取第一条记录。
(3)读到第5条记录。
(4)读取当前记录指针位置后第3条记录。
10、创建一个事务,将所有考生的考试成绩都加5分,并提交。
11、创建一个事务,向商品表中添加一条记录,设置保存点;再将商品编号为ds-001的单价改为2000。然后撤销该事务
12、创建3个新的SQL Server登录:a1、a2、a3。并设置数据库用户的权限。用这3个登录名登录SQL Server,进行相应权限范围内的数据库操作。