[数据库技术与应用]实验报告参考

2013级硕士研究生

《数据库技术与应用》

实验报告

姓 名: 王xxxx

学 号: s2012000

专 业: xxxx 工程

任课老师: 孙静宇

完成时间: 2014.05.xx

太原理工大学 研究生院

实验一: 创建和删除数据库

一、 实验目的

学习建立数据库、删除数据库的SQL 语句的使用;学会排错技术。

了解有关概念(如数据文件、日志文件等相关概念)

二、 实验内容

建立数据库、删除数据库的SQL 语句的使用

三、 实验要求

成功建立数据库,供后面实验使用,并学会删除数据库。

所用的执行语句如下:

1、创建数据库:

USE master

CREATE DATABASE DB99070135

ON

( NAME = DB99070135_DATA, /*数据文件*/

FILENAME = 'E:\9901student\DB99070135.mdf',

SIZE = 1,

MAXSIZE = 3,

FILEGROWTH = 1 )

LOG ON

( NAME = DB99070135_LOG, /*日志文件*/

FILENAME = 'E:\9901student\DB99070135.ldf',

SIZE = 1,

MAXSIZE = 3,

FILEGROWTH = 1 )

2、删除数据库:

USE master

DROP DATABASE DB99070135

四、 实验装置

在客户机上登陆至服务器server-1,用户名使用9901。

五、 实验步骤

创建一个 数据库,其数据文件和日志文件的初始大小都为1M ,最大都允许增加到3M ,每次增量都为1M 。数据文件和日志文件存放在指定目录之下。

六、 实验数据及处理

实验过程中出现的问题和系统信息:

实验过程中准确登陆,但是开始时使用FILENAME = ‘D:\9901student\DB99070135.ldf’, 由于服务器的D 盘没有足够的空间,运行时有磁盘空间不足的提示,后来改变路经解决此问题,运行结果为:

1、 创建数据库

CREATE DATABASE 进程正在磁盘 'DB99070135_DATA' 上分配 1.00 MB 的空间。

CREATE DATABASE 进程正在磁盘 'DB99070135_LOG' 上分配 1.00 MB 的空间。

2、 删除数据库

正在删除数据库文件 'E:\9901student\DB99070135.ldf'。

正在删除数据库文件 'E:\9901student\DB99070135.mdf'。

七、思考题:日志文件的作用是什么?

在建库时要同时建立日志文件,日志文件的主要作用是记录下每一步操作,便于查看各个动作,在有错误操作时可以方便地更改。

实验二: 创建和删除基本表

一、 实验目的

学习建立基本表、修改表结构、删除基本表的SQL 语句的使用

了解有关概念(如主码、外码、完整性约束)

二、 实验内容

建立基本表、修改表结构、删除表的SQL 语句的使用

三、 实验要求

成功建立一组基本表(含主码、外码、完整性约束的定义),供后面实验使用,并学会修改表结构、删除表。

所用的执行语句如下:

USE DB99070135

CREATE TABLE MovieStar(

name CHAR(30) PRIMARY KEY,

address VARCHAR(100),

gender CHAR(1),

birthday DATETIME DEFAULT 0000

)

CREATE TABLE MovieExec(

name CHAR(30),

cert# INT PRIMARY KEY,

address VARCHAR(100),

netWorth INT

)

CREATE TABLE Studio(

name CHAR(30)PRIMARY KEY,

address VARCHAR(100),

presc# INT REFERENCES MovieExec(cert#)

)

CREATE TABLE Movie(

title VARCHAR(100),

year INT CHECK(year>=1895),

length INT CHECK (length >=60 AND length

Incolor INT,

studioName CHAR(30) REFERENCES Studio(name),

producerC# INT REFERENCES MovieExec(cert#)NOT NULL,

PRIMARY KEY(title,year)

)

CREATE TABLE StarsIN(

Movietitle VARCHAR(100) NOT NULL,

Movieyear INT /*CHECK(year>=1895)*/NOT NULL,

StarName CHAR(30) REFERENCES MovieStar(name),

PRIMARY KEY(Movietitle,Movieyear,StarName),

FOREIGN KEY (Movietitle,Movieyear)

REFERENCES Movie(title,year)

)

ALTER TABLE Studio

ALTER COLUMN address CHAR (50)

ALTER TABLE Studio

ADD execname CHAR(30)

DROP TABLE StarsIN

DROP TABLE Movie

DROP TABLE studio

DROP TABLE MovieExec

DROP TABLE MovieStar

四、 实验步骤

选择课题,画出E-R 图,并设计出数据库模式,然后使用CREATE TABLE 语句创建基本表,并练习ALTER TABLE 语句的使用。各表中要求设计适当的约束(主码、外码、 check 约束等)。

五、 实验数据及处理

实验中出现的问题和系统信息

1、服务器: 消息 8141,级别 16,状态 1,行 28

列 CHECK 约束(属于列 'Movieyear' )引用了另一列,表 'StarsIN' 。

服务器: 消息 1759,级别 16,状态 1,行 28

在约束或计算列的定义中指定了无效的列 'year' 。

服务器: 消息 1750,级别 16,状态 1,行 28

未能创建约束。请参阅前面的错误信息。

2、服务器: 消息 1770,级别 16,状态 1,行 14

外键 'FK__Studio__presc#__3C69FB99' 引用了位于被引用表 'MovieExec' 中的无效列 'cret#'。

服务器: 消息 1750,级别 16,状态 1,行 14

未能创建约束。请参阅前面的错误信息。

原因是列名写错了,应为cert#。

3、 第一次执行命令

ALTER TABLE Studio

ALTER COLUMN address CHAR (50)

显示影响行数为零的提示,之后运行会显示命令已完成。

4、 执行命令

ALTER TABLE Studio

ADD execname CHAR(30)

显示命令已成功完成。

5、 执行命令

DROP TABLE MovieStar

DROP TABLE MovieExec

DROP TABLE studio

DROP TABLE Movie

DROP TABLE StarsIN

有如下信息:

服务器: 消息 3726,级别 16,状态 1,行 1

未能除去对象 'MovieStar' ,因为该对象正由一个 FOREIGN KEY 约束引用。

服务器: 消息 3726,级别 16,状态 1,行 2

未能除去对象 'MovieExec' ,因为该对象正由一个 FOREIGN KEY 约束引用。

服务器: 消息 3726,级别 16,状态 1,行 3

未能除去对象 'studio' ,因为该对象正由一个 FOREIGN KEY 约束引用。

服务器: 消息 3726,级别 16,状态 1,行 4

未能除去对象 'Movie' ,因为该对象正由一个 FOREIGN KEY 约束引用。

6、 更改执行顺序为

DROP TABLE StarsIN

DROP TABLE Movie

DROP TABLE studio

DROP TABLE MovieExec

DROP TABLE MovieStar

可解决此问题,结果为The command(s) completed successfully.

六、 思考题:什么是外码?它的作用是什么?

外码即外键码,若关系R 的一个属性(或属性组) X,不是R 的主键码,而是(/对应) 另一个关系S 的主键码,则称X 为关系R 的外键码。他参照第二个关系(可以是同一个关系)的某个(些)属性。他有两方面的含义:1,必须说明第二个关系的被参照属性为该关系的主键码;2,出现在第一个关系的外键码属性中的任何值也必须在第二个关系的相应属性中,也就是存在连接这两个属性或属性集的参照完整性。

从其定义可以看出外码的最重要的作用是保证这两个属性或属性集的参照完整性。

实验三: 数据的增删改

一、实验目的

学习基本表数据增删改的SQL 语句的使用,为以后的实验准备数据。

二、实验内容

在实验二的基础上,向各表中添加数据,并做适当的修改与更新,以供查询使用。数据自己设定。

三、实验要求

添加足够数据供后面实验使用。

所用的执行的语句如下:

INSERT INTO MovieStar(name,address,gender,birthday)

VALUES('FEIWENLI','WASHINGTON STREET 45','F','19300405') INSERT INTO MovieStar(name,address,gender,birthday)

VALUES('蒋雯莉',' 北京朝阳','F','19450405')

INSERT INTO MovieStar(name,address,gender,birthday)

VALUES('王刚',' 香港九龙','M','19421024')

INSERT INTO MovieStar(name,address,gender,birthday)

VALUES('高曙光',' 上海' 中山,'M','19500815')

DELETE MovieStar

FROM MovieStar

WHERE name='蒋雯莉'

四、实验步骤

选择实验数据,依次插入表内,之后用DELETE 语句删除表内记录,用DROP TABLE删除表结构,之后重新执行建表和插入语句,使表内保存足够的记录。

五、实验数据及处理

实验中出现的问题和系统信息

1、运行第一句的结果:

(1 row(s) affected) 成功插入几行会有几行这样的结果出现。

2、运行 DELETE MovieStar

FROM MovieStar

WHERE name='蒋雯莉'

(1 row(s) affected) 成功插入几行会有几行这样的结果出现。

六、 思考题:DELETE 语句与DROP TABLE语句有何不同?

DROP TABLE删除的是表的定义,即完成该操作后表不复存在,并将表的属性及其内容以及其他的附加属性;而DELETE 删除的是表中的记录,该操作不改变表的属性,操作完成后表仍然存在。

实验四: 数据的检索

一、实验目的

学习SELECT 语句的使用。

二、实验内容

在实验三的基础上,熟悉使用SELECT 语句,检索所需信息。

三、实验要求

设计并实现符合以下要求的SELECT 语句:

单表的简单查询(含:group by……having和order by 子句)

涉及多表的连接查询:

子查询

带聚合运算的查询

所用的执行语句如下:

SELECT MovieStar.*

FROM MovieStar

四、实验步骤

单表的简单查询(含:group by……having和order by 子句),之后是 涉及多表的子查询,带聚合运算的查询,执行语句并记录结果。

五、实验数据及处理

实验过程中出现的问题和系统信息

name address gender birthday

------------------------------ -------------------------------------------------------------------------------------- FEIWENLI WASHINGTON STREET 45 F 1930-04-05 00:00:00.000

高曙光 上海中山 M 1950-08-15 00:00:00.000

蒋雯莉 北京朝阳 F 1945-04-05 00:00:00.000

王刚 香港九龙 M 1942-10-24 00:00:00.000

六、 思考题:使用聚合运算符应注意什么?

聚合运算是应用于表的指定列,要用于任何可比类型(例如算术值或者字符串)的聚集。使用聚组函数时,可用GROUP BY 子句对查询结果进行分组计算,用HAVING 子句选择满足条件的组,分组的原则:指定列相等的分为一组,只有在GROUP BY 子句中出现的属性,才能以非聚组的形式出现。

2013级硕士研究生

《数据库技术与应用》

实验报告

姓 名: 王xxxx

学 号: s2012000

专 业: xxxx 工程

任课老师: 孙静宇

完成时间: 2014.05.xx

太原理工大学 研究生院

实验一: 创建和删除数据库

一、 实验目的

学习建立数据库、删除数据库的SQL 语句的使用;学会排错技术。

了解有关概念(如数据文件、日志文件等相关概念)

二、 实验内容

建立数据库、删除数据库的SQL 语句的使用

三、 实验要求

成功建立数据库,供后面实验使用,并学会删除数据库。

所用的执行语句如下:

1、创建数据库:

USE master

CREATE DATABASE DB99070135

ON

( NAME = DB99070135_DATA, /*数据文件*/

FILENAME = 'E:\9901student\DB99070135.mdf',

SIZE = 1,

MAXSIZE = 3,

FILEGROWTH = 1 )

LOG ON

( NAME = DB99070135_LOG, /*日志文件*/

FILENAME = 'E:\9901student\DB99070135.ldf',

SIZE = 1,

MAXSIZE = 3,

FILEGROWTH = 1 )

2、删除数据库:

USE master

DROP DATABASE DB99070135

四、 实验装置

在客户机上登陆至服务器server-1,用户名使用9901。

五、 实验步骤

创建一个 数据库,其数据文件和日志文件的初始大小都为1M ,最大都允许增加到3M ,每次增量都为1M 。数据文件和日志文件存放在指定目录之下。

六、 实验数据及处理

实验过程中出现的问题和系统信息:

实验过程中准确登陆,但是开始时使用FILENAME = ‘D:\9901student\DB99070135.ldf’, 由于服务器的D 盘没有足够的空间,运行时有磁盘空间不足的提示,后来改变路经解决此问题,运行结果为:

1、 创建数据库

CREATE DATABASE 进程正在磁盘 'DB99070135_DATA' 上分配 1.00 MB 的空间。

CREATE DATABASE 进程正在磁盘 'DB99070135_LOG' 上分配 1.00 MB 的空间。

2、 删除数据库

正在删除数据库文件 'E:\9901student\DB99070135.ldf'。

正在删除数据库文件 'E:\9901student\DB99070135.mdf'。

七、思考题:日志文件的作用是什么?

在建库时要同时建立日志文件,日志文件的主要作用是记录下每一步操作,便于查看各个动作,在有错误操作时可以方便地更改。

实验二: 创建和删除基本表

一、 实验目的

学习建立基本表、修改表结构、删除基本表的SQL 语句的使用

了解有关概念(如主码、外码、完整性约束)

二、 实验内容

建立基本表、修改表结构、删除表的SQL 语句的使用

三、 实验要求

成功建立一组基本表(含主码、外码、完整性约束的定义),供后面实验使用,并学会修改表结构、删除表。

所用的执行语句如下:

USE DB99070135

CREATE TABLE MovieStar(

name CHAR(30) PRIMARY KEY,

address VARCHAR(100),

gender CHAR(1),

birthday DATETIME DEFAULT 0000

)

CREATE TABLE MovieExec(

name CHAR(30),

cert# INT PRIMARY KEY,

address VARCHAR(100),

netWorth INT

)

CREATE TABLE Studio(

name CHAR(30)PRIMARY KEY,

address VARCHAR(100),

presc# INT REFERENCES MovieExec(cert#)

)

CREATE TABLE Movie(

title VARCHAR(100),

year INT CHECK(year>=1895),

length INT CHECK (length >=60 AND length

Incolor INT,

studioName CHAR(30) REFERENCES Studio(name),

producerC# INT REFERENCES MovieExec(cert#)NOT NULL,

PRIMARY KEY(title,year)

)

CREATE TABLE StarsIN(

Movietitle VARCHAR(100) NOT NULL,

Movieyear INT /*CHECK(year>=1895)*/NOT NULL,

StarName CHAR(30) REFERENCES MovieStar(name),

PRIMARY KEY(Movietitle,Movieyear,StarName),

FOREIGN KEY (Movietitle,Movieyear)

REFERENCES Movie(title,year)

)

ALTER TABLE Studio

ALTER COLUMN address CHAR (50)

ALTER TABLE Studio

ADD execname CHAR(30)

DROP TABLE StarsIN

DROP TABLE Movie

DROP TABLE studio

DROP TABLE MovieExec

DROP TABLE MovieStar

四、 实验步骤

选择课题,画出E-R 图,并设计出数据库模式,然后使用CREATE TABLE 语句创建基本表,并练习ALTER TABLE 语句的使用。各表中要求设计适当的约束(主码、外码、 check 约束等)。

五、 实验数据及处理

实验中出现的问题和系统信息

1、服务器: 消息 8141,级别 16,状态 1,行 28

列 CHECK 约束(属于列 'Movieyear' )引用了另一列,表 'StarsIN' 。

服务器: 消息 1759,级别 16,状态 1,行 28

在约束或计算列的定义中指定了无效的列 'year' 。

服务器: 消息 1750,级别 16,状态 1,行 28

未能创建约束。请参阅前面的错误信息。

2、服务器: 消息 1770,级别 16,状态 1,行 14

外键 'FK__Studio__presc#__3C69FB99' 引用了位于被引用表 'MovieExec' 中的无效列 'cret#'。

服务器: 消息 1750,级别 16,状态 1,行 14

未能创建约束。请参阅前面的错误信息。

原因是列名写错了,应为cert#。

3、 第一次执行命令

ALTER TABLE Studio

ALTER COLUMN address CHAR (50)

显示影响行数为零的提示,之后运行会显示命令已完成。

4、 执行命令

ALTER TABLE Studio

ADD execname CHAR(30)

显示命令已成功完成。

5、 执行命令

DROP TABLE MovieStar

DROP TABLE MovieExec

DROP TABLE studio

DROP TABLE Movie

DROP TABLE StarsIN

有如下信息:

服务器: 消息 3726,级别 16,状态 1,行 1

未能除去对象 'MovieStar' ,因为该对象正由一个 FOREIGN KEY 约束引用。

服务器: 消息 3726,级别 16,状态 1,行 2

未能除去对象 'MovieExec' ,因为该对象正由一个 FOREIGN KEY 约束引用。

服务器: 消息 3726,级别 16,状态 1,行 3

未能除去对象 'studio' ,因为该对象正由一个 FOREIGN KEY 约束引用。

服务器: 消息 3726,级别 16,状态 1,行 4

未能除去对象 'Movie' ,因为该对象正由一个 FOREIGN KEY 约束引用。

6、 更改执行顺序为

DROP TABLE StarsIN

DROP TABLE Movie

DROP TABLE studio

DROP TABLE MovieExec

DROP TABLE MovieStar

可解决此问题,结果为The command(s) completed successfully.

六、 思考题:什么是外码?它的作用是什么?

外码即外键码,若关系R 的一个属性(或属性组) X,不是R 的主键码,而是(/对应) 另一个关系S 的主键码,则称X 为关系R 的外键码。他参照第二个关系(可以是同一个关系)的某个(些)属性。他有两方面的含义:1,必须说明第二个关系的被参照属性为该关系的主键码;2,出现在第一个关系的外键码属性中的任何值也必须在第二个关系的相应属性中,也就是存在连接这两个属性或属性集的参照完整性。

从其定义可以看出外码的最重要的作用是保证这两个属性或属性集的参照完整性。

实验三: 数据的增删改

一、实验目的

学习基本表数据增删改的SQL 语句的使用,为以后的实验准备数据。

二、实验内容

在实验二的基础上,向各表中添加数据,并做适当的修改与更新,以供查询使用。数据自己设定。

三、实验要求

添加足够数据供后面实验使用。

所用的执行的语句如下:

INSERT INTO MovieStar(name,address,gender,birthday)

VALUES('FEIWENLI','WASHINGTON STREET 45','F','19300405') INSERT INTO MovieStar(name,address,gender,birthday)

VALUES('蒋雯莉',' 北京朝阳','F','19450405')

INSERT INTO MovieStar(name,address,gender,birthday)

VALUES('王刚',' 香港九龙','M','19421024')

INSERT INTO MovieStar(name,address,gender,birthday)

VALUES('高曙光',' 上海' 中山,'M','19500815')

DELETE MovieStar

FROM MovieStar

WHERE name='蒋雯莉'

四、实验步骤

选择实验数据,依次插入表内,之后用DELETE 语句删除表内记录,用DROP TABLE删除表结构,之后重新执行建表和插入语句,使表内保存足够的记录。

五、实验数据及处理

实验中出现的问题和系统信息

1、运行第一句的结果:

(1 row(s) affected) 成功插入几行会有几行这样的结果出现。

2、运行 DELETE MovieStar

FROM MovieStar

WHERE name='蒋雯莉'

(1 row(s) affected) 成功插入几行会有几行这样的结果出现。

六、 思考题:DELETE 语句与DROP TABLE语句有何不同?

DROP TABLE删除的是表的定义,即完成该操作后表不复存在,并将表的属性及其内容以及其他的附加属性;而DELETE 删除的是表中的记录,该操作不改变表的属性,操作完成后表仍然存在。

实验四: 数据的检索

一、实验目的

学习SELECT 语句的使用。

二、实验内容

在实验三的基础上,熟悉使用SELECT 语句,检索所需信息。

三、实验要求

设计并实现符合以下要求的SELECT 语句:

单表的简单查询(含:group by……having和order by 子句)

涉及多表的连接查询:

子查询

带聚合运算的查询

所用的执行语句如下:

SELECT MovieStar.*

FROM MovieStar

四、实验步骤

单表的简单查询(含:group by……having和order by 子句),之后是 涉及多表的子查询,带聚合运算的查询,执行语句并记录结果。

五、实验数据及处理

实验过程中出现的问题和系统信息

name address gender birthday

------------------------------ -------------------------------------------------------------------------------------- FEIWENLI WASHINGTON STREET 45 F 1930-04-05 00:00:00.000

高曙光 上海中山 M 1950-08-15 00:00:00.000

蒋雯莉 北京朝阳 F 1945-04-05 00:00:00.000

王刚 香港九龙 M 1942-10-24 00:00:00.000

六、 思考题:使用聚合运算符应注意什么?

聚合运算是应用于表的指定列,要用于任何可比类型(例如算术值或者字符串)的聚集。使用聚组函数时,可用GROUP BY 子句对查询结果进行分组计算,用HAVING 子句选择满足条件的组,分组的原则:指定列相等的分为一组,只有在GROUP BY 子句中出现的属性,才能以非聚组的形式出现。


    相关文章

    教案标准格式

    教案格式① 天津农学院教案(首页) 系(部): 课程名称 课程类别 (√ ) 授课专业 生物化学实验 基础部 课程代码 学 分 ) ) 总学时: 学时 讲 课: 学时 上 机: 学时 实 验: 30 学时 理论课( ) 公共课( ) 必 修 ...

    实验室资质认定评审准则(要素要点)详细

    实验室资质认定评审准则 <实验室资质认定评审准则>是根据<中华人民共和国计量法>.<中华人民共和国标准化法>.<中华人民共和国产品质量法>.<中华人民共和国认证认可条例>等有关法律 ...

    文献检索与论文写作考试题库

    1.科学定义:发现.探索研究事物运动的客观规律就是科学. 包括: 自然科学 社会科学 自然科学:研究自然界的物质结构.形态和运动规律的科学. 自然科学是人类生产斗争经验的总结,反过来又推动着生产的发展. 自然科学是建立在实证和实验基础上的, ...

    资质认定管理办法及评审准则

    实验室和检查机构资质认定管理办法 (2006-02-21) <实验室和检查机构资质认定管理办法>已经2005年12月31日国家质量监督检验检疫总局局务会议审议通过,现予公布,自2006年4月1日起施行.1987年7月10日原国家 ...

    现场总线技术课程设计

    现场总线技术课程设计 一:课程设计要求 1. 2. 3. 4. 5. 6. 7. 掌握iCAN 总线的原理 掌握iCAN 总线模块的功能及用法 掌握iCAN 总线组网技术 掌握iCAN 网络及模块的测试软件使用方法 掌握 ZOPC 服务器的 ...

    shi方法的证实和确认

    方法的证实和确认 一 认可方法概述 (一)方法分类 CNAS-CL01:2006规定实验室可以应用标准方法.非标准方法和实验室制定的方法进行检测和校准.一般可将方法分为标准方法和非标准方法两大类. 1 标准方法 指标准组织发布的方法,包括: ...

    无机化学课程

    应用化学专业课程简介 无机化学(1) Inorganic chemistry(1) 课程编号:22149901 学分:2 总学时:28学时(2-0周学时× 14 周) 课程性质:专业必修课程.核心课程.理科课程 课程目的:本课程的作用是要使 ...

    临床研究报告的结构和内容指导原则

    临床研究报告的结构和内容指导原则 指导原则编号:[H ]G C L 3 - 1 化学药物临床研究报告的结构与内容指导原则 (第二稿) 二OO 四年二月二十四日 临床研究报告的结构与内容指导原则 目录 (一).首篇.............. ...

    大学物理实验报告

    摘要:热敏电阻是阻值对温度变化非常敏感的一种半导体电阻,具有许多独特的优点和用途,在自动控制.无线电子技术.遥控技术及测温技术等方面有着广泛的应用.本实验通过用电桥法来研究热敏电阻的电阻温度特性,加深对热敏电阻的电阻温度特性的了解. 关键词 ...