数据库应用实验指导

更新时间:2024-05-15 07:26:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

梁文娟

1

目录

实验1 SQL Server的安装及管理工具的使用 ....................... 3 实验2 交互式SQL ............................................................... 4 实验3 实验4 实验5 实验6 数据完整性和安全性管理 ....................................... 16 触发器和存储过程实验 ........................................... 26 数据库备份与恢复................................................... 30 数据库设计综合应用 ............................................... 31

2

实验1 SQL Server的安装及管理工具的使用

一、实验目的

1、通过对某个商用数据库管理系统的使用,了解DBMS的工作原理和系统构架。 在此推荐数据库管理系统SQL Server 2005,该系统已经在机房FTP上。你也可以从微软官方网站上下载该系统。 2、熟悉对DBMS的操作

二、实验内容

1、根据安装文件的说明安装数据库管理系统。在安装过程中记录安装的选择,并且对所作的选择进行思考,为何要进行这样的配置,对今后运行数据库管理系统会有什么影响。 2、学会启动和停止数据库服务,思考可以用哪些方式来完成启动和停止。 3、掌握管理工具的使用

(1)SQL Server Management Studio的使用

? 连接服务器的方法 ? 查询编辑器的使用 (2)配置管理器的使用

4、了解数据库系统的逻辑组件:

它们主要是数据库对象,包括基本表、视图、触发器、存储过程、约束等。今后将学习如何操作这些数据库对象。

三、实验报告要求

1、给出安装过程中出现的错误及解决方法。

2、根据你所了解的SQL Server工具,写出部分主要组件的功能(以SQL Server2005为例,写出SQL Server Management Studio、配置管理器)。

3

实验2 交互式SQL

2.1创建数据库及表

一、实验目的

本次实验了解SQL Server 2005的启动,熟悉如何使用SSMS和SQL建立数据库和表,并加深对于完整性的理解。

二、背景知识

在使用数据库的过程中,接触最多的就是数据库中的表。表是数据存储的地方,是数据库中最重要的部分,管理好表也就管理好了数据库。

表是由行和列组成的。创建表的过程主要就是定义表的列的过程。表的列名在同一个表中具有唯一性,同一列的数据属于同一种数据类型。除了用列名和数据类型来指定列的属性外,还可以定义其它属性:是否为空、默认值、标识符列、全局唯一标识符列等。

约束是SQL Server提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件。在SQL Server中有5种约束:主关键字约束(Primary Key Constraint)、外关键字约束(Foreign Key Constraint)、惟一性约束(Unique Constraint)、检查约束(Check Constraint)和默认约束(Default Constraint)。

三、实验内容

方法1:在SSMS中创建数据库和表

在本练习中,将使用SQL Server2005数据库管理系统创建Student数据库,并在Student数据库中创建表Student,使你能够掌握使用SQL Server2005数据库管理系统创建数据库和表的方法。

1) 启动SQL Server2005:

依次单击开始->所有程序->SQL Server 2005->SQL Server Management Studio 启动SQL Server 2005数据库管理系统 2) 登录数据库服务器:

点击“连接到服务器“对话框中的连接按钮连接到SQL Server 2005数据库服务器。

4

3) 创建数据库Student

在SQL Server 2005数据库管理系统的左边栏“对象资源管理器”中右击数据库对象,在弹出的快捷菜单中单击“新建数据库”命令。

在弹出的“新建数据库”对话框右侧的数据库名称中输入数据库名称“Student”,然后单击确定。

5

4) 在Student数据库中新建表”Student”

单击SQL Server 2005数据库管理系统的左侧的“对象资源管理器”栏中的”刷新”

钮,以显示出新建的数据库“Student”。

依次展开左侧栏对象资源管理器中的“数据库”->“Student”,并右击Student数据库中的表项目,在弹出的快捷菜单中单击“新建表”命令。

6

在右侧在工作区中输入“Student”表的信息,该表具有如下列: 列名 Sno Sname Ssex Sage Sdept 数据类型 CHAR(5) CHAR(10) BIT INT CHAR(15) 完整性约束 主码 非空 无 无 无

单击文件菜单中的保存命令保存该表,并取名为“Student”。

方法二、使用SQL语句创建数据库和表

1) 单击工具栏中的“新建查询”按钮,并在弹出的“连接到服务器”对话框中单击“连

接”按钮,新建一个SQL脚本。

7

2) 在右侧的SQL脚本输入框中输入如下SQL代码:

CREATE DATABASE STUDENT -- 创建STUDENT数据库 GO

USE STUDENT -- 转到STUDENT数据库 GO

CREATE TABLE STUDENT -- 在STUDENT数据库中创建表STUDENT (

Sno CHAR(5) PRIMARY KEY, Sname CHAR(10) NOT NULL, Ssex BIT, Sage INT,

Sdept CHAR(15) )

单击工具栏中的

执行按钮,运行SQL语句,完成数据库与表的创建。

四、实验任务

1.用两种方法建立一个新数据库HRM(也可任意取名)。 2.在数据库HRM中,建立如下所示的三个表: Employee表 列名 EmployeeID

数据类型 Char 长度 6 是否允许为空 否 8

说明 员工编号,主键

Name Birthday Sex Address Zip PhoneNumber EmailAddress DepartmentID Departments表 列名 DepartmentID DepartmentName Note Salary表 列名 EmployeeID Income Char Datetime Bit Char Char Char Char Char 数据类型 Char Char Text 数据类型 Char Float 10 8 1 20 6 12 30 3 长度 3 20 16 长度 6 8 否 否 否 是 是 是 是 否 是否允许为空 否 否 是 是否允许为空 否 否 姓名 出生日期 性别 地址 邮编 电话号码 电子邮件地址 员工部门号,外键 说明 员工部门号,主键 部门名 备注 说明 员工编号,外键 收入 否 支出 OutCome Float 8 3.对三张表输入数据(可任意输入,但注意要符合完整性要求,否则会出错,在本实验中,外键设置可先不做要求)

五、实验报告要求

1、要求给出三个表创建的SQL语句,要求建表时给出主外键约束、唯一约束、取空值约束、用户自定义的约束等。(注:在实验报告上只需写出其中一个表的SQL语句即可)

2、举例说明如何操作会违背完整性(实体完整性、参照完整性)。

9

2.2 SQL数据查询语句

一、实验目的

? ? ? ?

了解SQL Server 2005查询编辑器的启动,熟悉如何在SQL Server 2005查询编辑器查询记录。

掌握SELECT语句的基本语法和查询条件表示方法 掌握GROUP BY 和ORDER BY 子句的作用和使用方法 掌握连接查询和子查询的使用方法

二、实验内容

1、单击工具栏中的“新建查询”按钮,并在弹出的“连接到服务器”对话框中单击“连接”按钮,新建一个SQL脚本。

2、在SQL脚本中写数据查询语句执行; 从表中查询数据:

在查询分析器的查询窗口中输入SQL语句,如图所示。

10

实验3 数据完整性和安全性管理

3.1 数据完整性管理

一、实验目的

? ? ?

掌握域完整性的实现方法。 掌握实体完整性的实现方法。 掌握参照完整性的方法。

二、实验内容

数据库的完整性设置。

三、实验步骤

? 可视化界面的操作方法: ? 实体完整性

1.将student表的“sno”字段设为主键:在表设计界面中,单击左边的行选定块,选定“sno”字段,单击工具按钮

设置主键。如图1所示:

图1

1. 将“sc”表的“sno”和“cno”设置为主键:在表设计界面中,单击并按住Ctrl键

拖动左边的行选定块,选定sno和cno字段,单击工具按钮所示:

设置主键。如图2

16

图2

? 域完整性 3. 将“ssex”字段设置为只能取“男”,“女”两值:在表设计界面,点击鼠标右键——CHECK约束,——添加约束,添加CK_student_sex名称,然后在约束表达式框中输入“ ssex in ('男','女') ”。如图3所示。

17

图3

? 参照完整性

4. 将“student”表和“sc”表中的“sno”字段设为参照: 打开“sc”表的设计界面, 点击工具栏按钮

, 在弹出的属性(properties)对话框中点击“新建”按钮,在“主键表(Primary key

table)”下拉框中选择“student”表,在其下的字段选择框中选择“sno”,在“外键表(Foreign key table)”下拉框中选择“sc”表,在其下的字段选择框中选择“sno”,单击关闭即可。见

图4。

图4

?

命令方式操作方法: ? 实体完整性

1.将“student”表的“sno”字段设为主键: 当“student”表已存在则执行:

alter table student add constraint pk_sno primary key (sno) 当“student”表不存在则执行:

Create table student(sno CHAR(5) primary key ,

sname CHAR(10) NOT NULL,

ssex CHAR(2), sage int,

sdept CHAR(4))

注:可用命令“drop table student”删除“student”表

2. 添加一身份证号字段,设置其惟一性.(注: 操作前应删除表中的所有记录) Alter table student add id char(18) unique (id) 3. 将“sc”表的“sno”和“cno”设置为主键: 当“sc”表已存在则执行:

18

alter table sc add constraint PK_SnoCno primary key (sno,cno)

当“sc”表不存在则执行:

Create table sc(sno CHAR(5),

cno CHAR(2),

grade INT NULL,

constraint PK_SnoCno primary key (sno,cno))

? 域完整性

4. 将“ssex”字段设置为只能取“男”,“女”两值:

当“student”表已存在则执行:

alter table student add constraint CK_Sex check (ssex in ('男' ,'女')) 当“student”表不存在则执行:

Create table student(sno CHAR(5) primary key ,

sname CHAR(10),

ssex CHAR(2) check (ssex in ('男' ,'女')) , sage int, sdept CHAR(4))

5. 设置学号字段只能输入数字:

alter table student add constraint CK_Sno_Format check (sno like '[0-9][0-9][0-9][0-9][0-9]')

6. 设置身份证号的输入格式:

alter table student add constraint CK_ID_Format check ((id like

'[0-9][0-9][0-9][0-9][0-9][0-9][1-2][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]_') OR (id like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]'))

7. 设置18位身份证号的第7位到第10位为合法的年份(1900-2050)

alter table student add constraint CK_ID_Format2 check (len(id)=18 and

( (convert(smallint,substring(id,7,4) )>=1900) and(convert(smallint,substring(id,7,4) )<=2050)) ) 6. 设置男生的年龄必须大于22, 女生的年龄必须大于20.

Alter table student add constraint CK_age check (ssex='男' and sage>=22 or ssex='女' and sage>=20 )

? 参照完整性

9. 将“student”表和“sc”表中的“sno”字段设为参照: 当“sc”表已存在则执行:

alter table sc add constraint FP_sno foreign key (sno) references student(sno )

当“sc”表不存在则执行:

Create table sc(sno CHAR(5) constraint FP_sno

foreign key references student(sno),

cno CHAR(2),grade INT NULL,

constraint PK_SnoCno primary key (sno,cno) )

?

完整性验证

1. 实体完整性: 在“student”表数据浏览可视化界面中输入学号相同的两条记录将会出现错误如图5所示:

19

图5

或者在命令窗口输入下面两条命令也会出现错误提示:

insert into student values('95003','张三','男',24,'CS','42222919901012903X')

insert into student values('95001','李四','女',21,'CS','422229199510129031')

20

本文来源:https://www.bwwdw.com/article/rt07.html

Top