西工大数据库实验报告 下载本文

2. 实验1:数据库/表的基本操作和表级约束

2.1. 目的和要求

1. 了解SQL Server数据库的逻辑结构和物理结构,基本数据类型以及基本使用方法。 2. 学会使用图形用户界面以及命令行方式(SQL语言)创建数据库和表。 3. 学会使用不同的方法备份和还原数据库。 4. 掌握表级约束的定义、使用和删除方法。

2.2. 实验准备

1. 要明确能够创建数据库的用户必须是系统管理员,或是被授权可以使用CREATE

DATABASE语句的用户。

2. 创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数据库大小(最初

的大小、最大的大小、是否允许增长及增长的方式)和存储数据的文件。 3. 了解常用的创建数据库和表的方法。 4. 了解数据库备份和还原的基本方法。 5. 了解表级约束的定义、使用和删除方法。

2.3. 实验内容

1. 利用图形用户界面创建,备份,删除和还原数据库和数据表 (30分,每小题5分) ? 数据库和表的要求

(1) 依据课本P127(第四版教材,下同)的第三题,创建一个名为SPJ的数据库,

初始大小为 10MB,最大为50MB,数据库自动增长,增长方式是按5%比例增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。数据库的逻辑文件名和物理文件名均采用默认值。

(2) 数据库SPJ包含供应商表,零件表,工程项目表,供应情况表。具体每张表

的定义以及数据参看课本P74页的第五题。

? 完成以下具体操作: (1) 创建的SPJ数据库。

(2) 在SPJ数据库中分别创建上述的四张表(只输入一部分数据示意即可)。 (3) 备份SPJ数据库。

(4) 删除已经创建的工程项目表(J表)。 (5) 删除SPJ数据库。

(6) 还原刚才删除的SPJ数据库。

5

2. 利用SQL语言创建和删除数据库和数据表 (30分,每小题5分) ? 数据库和表的要求

(1) 创建用于学生信息的数据库,数据库名为Student, 初始大小为20MB,最大

为100MB,数据库自动增长,增长方式是按10M兆字节增长;日志文件初始为2MB,最大可增长到5MB,按1MB增长。数据库的逻辑文件名和物理文件名,日志文件名请自定义。

use master

if exists(select * from sysdatabases where name='student10') drop database student10 create database student10 on (

name='student10',

filename='F:\\hyk\\student10.mdf', size=20, maxsize=100, filegrowth=10 ) log on (

name='student10_log',

filename='F:\\hyk\\student10.idf', size=2, maxsize=5, filegrowth=1 )

--sysdatabases 是系统视图,if语句里面的条件是布尔型

--mdf是主文件idf是日志文件

(2) 数据库Student包含学生信息,课程信息和学生选课的信息。包含下列3个表:

S:学生基本信息表;C:课程基本信息表;SC:学生选课信息表。各表的结构以及数据如下所示:

表 2.1 学生基本信息表(表名:S)

sno 95001 sname 李勇 ssex 男 sbirth 1986/1/1 Sdept CS 6

95002 95003 95004

刘晨 王敏 张立 女 女 男 1985/2/1 1886/10/4 1985/6/8 IS MA IS 表 2.2 课程基本信息表(表名:C) cno 1 2 3 4 5 6 cname 数据库 数学 信息系统 操作系统 数据结构 C语言

表 2.3 学生选课信息表(表名:SC) sno 95001 95001 95001 95002 95002

? 完成以下实际操作:

(1) 用T-SQL语句创建数据库Student。

用T-SQL语句创建上述的三张表,各个字段的数据类型请自己确定,每张表只要有主键约束即可,不要其他约束。不用输入数据,只要表的结构就可以。

create table s

(sno char(20) primary key, sname char(20) , ssex char(20), sbirth char(20), sdept char(20) )

create table c

(cno char(20) primary key, cname char(20) ,

cpno 2 1 5 6 Ccredit 4 3 4 3 3 2 cno 1 2 3 2 3 grade 92 85 87 78 84 7

cpno char(20), ccredit char(20) )

create table sc (sno char(20) , cno char(20) , grade char(20), primary key(sno,cno) )

--可在创建表的时候加入各种约束

用T-SQL语句备份数据库Student。

--use master

exec sp_addumpdevice 'disk','student10back','f:\\hyk\\student10.bak'; backup database student10 to student10back; --exec是什么意思

--备份介质,逻辑名称,备份文件实体

(2) 用T-SQL语句删除创建的表。 (3) 用T-SQL语句删除创建的数据库。

--()删除数据库

drop database student10

(4) 用T-SQL语句还原刚才备份的数据库Student

--()恢复数据库

restore database student10 from student10back

--注意语句使用的逻辑名称来恢复

3. 利用图形用户界面对上题中创建的Student库的S表中,增加以下的约束和索引。(25分,每小题5分)

(1) 将学号(sno)设置为主键,主键名为pk_sno。

(2) 为性别(ssex)添加默认约束(默认值),其值为“男”。 (3) 为姓名(sname)添加唯一约束(唯一键),约束名为uk_sname。

(4) 为出生日期(sbirth)添加CHECK约束,约束名为ck_sbirth,其检查条件为:出

生日期大于1986年1月1日。

(5) 为sbirth创建一个降序排列的UNIQUE索引,索引名为IX_Sbirth。

8