数据库原理与应用实验指导书-2012(10电商科) 下载本文

《数据库原理与应用》实验指导书

实验一 数据库创建

一、实验目的

1、掌握在SQL-SERVER 2005平台下创建数据库的过程与方法。 2、理解数据完整性的基本概念,并掌握其实现方法。

二、实验预备知识

1、SQL-SERVER数据库文件特点。

2、数据库完整性、主码、外码、默认值、空值、CHECK约束基本概念与相关基础知识。

3、SQL-SERVER常用数据类型: 类别及作用 包含的数据类型 长度(字节) 数值型 Tinyint、smallint、int、bigint(整型) 1,2,4,8 Numeric、decimal(精确型) 2~17 Float、real(近似型) 8,4 Money、smallmoney(货币型) 8,4 日期时间型 Datetime、smalldatetime 8,4 字符型 Char、nchar(定长型) 0~8000字符 Varchar、nvarchar(变长型) 图像和文本 Image、text、ntext 0~2GB 二进制 Binary、varbinary 0~8000字符 三、实验内容

(一)“仓库库存”数据库创建

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所示。

表1 商品表 列名 数据类型 长度 是否允许为空值 说明 商品编号 Char 6 NOT NULL 主键 商品名称 Varchar 20 NOT NULL 单价 Float 生产商 Varchar 30 表2 仓库表 列名 数据类型 长度 是否允许为空值 说明 仓库编号 Char 3 NOT NULL 主键 仓库地址 Varchar 20 NOT NULL 表3 库存情况表 列名 数据类型 长度 是否允许为空值 说明 仓库编号 Char 3 NOT NULL 主键 商品编号 Char 6 NOT NULL 主键 数量 int 6、建立“商品”表、“仓库”表和“库存情况”表在表之间的关系图。 7、分别给3个表添加数据如表4至表6所示:

表4 商品表 表5仓库表

商品编号 商品名称 单价 生产商 仓库编号 仓库地址 bx-179 冰箱 3200 青岛海尔 001 1号楼105 bx-340 冰箱 2568 北京雪花 002 1号楼106 ds-001 电视 1580 四川长虹 003 2号楼101 ds-018 电视 2980 青岛海尔 004 2号楼102 ds-580 电视 6899 南京熊猫 kt-060 空调 3560 青岛海尔 kt-330 空调 2820 青岛海信 xyj-01 洗衣机 580 无锡小天鹅 xyj-30 洗衣机 858 南京熊猫 表6 库存情况表 仓库编号 商品编号 数量 004 bx-179 5 002 bx-179 12 003 bx-340 10 001 ds-001 20 003 ds-018 8 001 ds-018 16 002 ds-580 15 004 kt-060 9 001 kt-060 13 004 xyj-01 10 003 xyj-30 21

(二)“教学库”的创建

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、向表中输入数据。

Student sno 9512101 9512102 9512103 9521101 9521102 9521103 9531101 9531102 sname 李勇 刘晨 王敏 张立 吴宾 张海 钱小平 王大力 ssex 男 男 女 男 女 男 女 男

sage 19 20 20 22 21 20 18 19 Sdept 计算机系 计算机系 计算机系 信息系 信息系 信息系 数学系 数学系 course cno C01 C02 C03 C04 C05 C06 cname 计算机文化学 VB 计算机网络 数据库基础 高等数学 数据结构 SC sno 9512101 9512101 9512101 9512102 9512102 9521102 9521102 9521102 9521102 9521103 9521103 9531101 9531101 9531102 cno C01 C02 C06 C02 C04 C01 C02 C04 C05 C02 C06 C01 C05 C05 grade 90 86 NULL 78 66 82 75 92 50 68 NULL 80 95 85 credit 3 2 4 5 8 5 semester 1 3 7 6 2 4

实验二 T-SQL应用

一、实验目的

1、理解T-SQL查询语句的常用功能及书写方法,并掌握其应用。 2、掌握记录添加、删除、修改语句的使用。 3、掌握视图的创建方法。

4、掌握存储过程、触发器和游标的使用方法。 5、掌握事务和安全管理的基本操作。

二、实验预备知识

1、SELECT查询语句的常用格式。其基本结构可描述为: SELECT<目标列名序列> FROM<数据库源>

[WHERE <检索条件表达式>]

[GROUP BY <分组依据列>[HAVING <组筛选条件>]] [ORDER BY <排序依据列>] 2、关系代数基础知识。

3、投影查询、选择查询、排序查询、聚集函数、联接查询、子查询的实现方法。 4、记录添加、删除、修改语句的格式与功能。 (1)INSERT 语句

INSERT [INTO] table_name [(column_list)] VALUES(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人的课程才统计。要求输出课程号和选修人数,查询结果按人数降序排列,若人数相同,按课程号升序排列。