数据库实验创建和修改数据库.docx
《数据库实验创建和修改数据库.docx》由会员分享,可在线阅读,更多相关《数据库实验创建和修改数据库.docx(12页珍藏版)》请在冰豆网上搜索。
数据库实验创建和修改数据库
实验二
实验名称:
创建和修改数据库
一、实验目的
1.熟悉SQLSERVER的企业管理器和查询分析器的用户界面,掌握用企业管理器和查询分析器创建数据库,修改数据库和删除数据库的方法。
了解数据库的三种文件类型:
主数据文件(.mdf)、次要数据文件(.ndf)和事务日志文件(.ldf)。
2.熟悉有关数据表的创建和修改等工作,理解数据库模式的概念,了解主键约束、外键约束、UNIQUE约束和CHECK约束的创建和应用。
要求学生熟练掌握使用企业管理器和T—SQL语句CREATETABLE、ALTERTABLE及DROPTABLE语句对数据表进行管理。
二、实验原理
在企业管理器中实现对数据库的管理及使用T—SQL语句CREATEDATABASE、ALTERDATABASE及DROPDATABASE来实现数据库的创建、修改及删除。
三、实验设备
安装有SQLSERVER2000的计算机。
四
(1)、实验示例
1.创建名称为testdb的数据库,数据库中包含一个数据文件,逻辑文件名为testdb_data,磁盘文件名为testdb.mdf,文件初始容量为2MB,最大容量为8MB,文件容量递增值为1MB;事务日志文件的逻辑文件名为testdb_log,磁盘文件名为testdb_log.ldf,文件初始容量为1MB,最大容量为5MB,文件容量递增值为1MB。
CREATEDATABASEtestdb
ON
(NAME=testdb_data,
FILENAME='d:
\DATA\testdb.mdf',
SIZE=2MB,
MAXSIZE=8MB,
FILEGROWTH=1MB)
LOGON
(NAME=’testdb_log’,
FILENAME='d:
\DATA\testdb_log.ldf',
SIZE=1MB,
MAXSIZE=5MB,
FILEGROWTH=1MB)
2.对testdb数据库进行修改:
添加一个数据文件,逻辑文件名为testdb2_data,磁盘文件名为testdb2_data.ndf,文件初始容量为1MB,最大容量为5MB,文件容量递增值为1MB。
ALTERDATABASEtestdb
ADDFILE
(NAME=testdb2_data,
FILENAME='d:
\DATA\testdb2.ndf',
SIZE=1MB,
MAXSIZE=5MB,
FILEGROWTH=1MB)
五
(1)、实验内容
分别使用SQLSERVER2000企业管理器和T—SQL语句,按下列要求创建、修改和删除用户数据库。
1.删除数据库S_T,在查询分析器中用命令采用默认设置创建数据库S_T(只需给出数据库名)。
CREATEDATABASES_T
DROPDATABASES_T
2.创建名称为company的数据库,数据库中包含一个数据文件,逻辑文件名为company_data,磁盘文件名为company_data.mdf,文件初始容量为5MB,最大容量为15MB,文件容量递增值为1MB;事务日志文件的逻辑文件名为company_log,磁盘文件名为company_log.ldf,文件初始容量为5MB,最大容量为10MB,文件容量递增值为1MB。
CREATEDATABASEcompany
ON
(NAME=company_data,
FILENAME='d:
\DATA\company_data.mdf',
SIZE=5MB,
MAXSIZE=15MB,
FILEGROWTH=1MB)
LOGON
(NAME=’company_log’,
FILENAME='d:
\DATA\company_log.ldf',
SIZE=5MB,
MAXSIZE=10MB,
FILEGROWTH=1MB)
3.对该数据库进行修改:
添加一个数据文件,逻辑文件名为company2_data,磁盘文件名为company2_data.ndf,文件初始容量为1MB,最大容量为5MB,文件容量递增值为1MB;将日志文件company_log的最大容量增加为15MB,文件容量递增值为2MB。
ALTERDATABASEcompany
ADDFILE
(NAME=company2_data,
FILENAME='d:
\DATA\company2.ndf',
SIZE=1MB,
MAXSIZE=5MB,
FILEGROWTH=1MB)
LOGON
(NAME=’company_log’,
FILENAME='d:
\DATA\company_log.ldf',
SIZE=5MB,
MAXSIZE=15MB,
FILEGROWTH=2MB)
4.在company数据库中添加一个文件组TempGroup,并向该文件组中添加一个容量为3MB,最大容量为10MB,递增量为1MB的数据文件,该数据文件的逻辑文件名为company3_data,磁盘文件名为company3_data.ndf。
ALTERDATABASEcompany
ADDTempGroup
(NAME=company3_data,
FILENAME='d:
\DATA\company3_data.ndf',
SIZE=3MB,
MAXSIZE=10MB,
FILEGROWTH=1MB)
5.在company数据库中删除数据文件company2_data。
ALTERDATABASEcompany
DROPFILE
(NAME=company2_data,
FILENAME='d:
\DATA\company2.ndf',
SIZE=1MB,
MAXSIZE=5MB,
FILEGROWTH=1MB)
6.删除数据库company。
DROPDATABASEcompany
ON
(NAME=company_data,
FILENAME='d:
\DATA\company_data.mdf',
SIZE=5MB,
MAXSIZE=15MB,
FILEGROWTH=1MB)
LOGON
(NAME=’company_log’,
FILENAME='d:
\DATA\company_log.ldf',
SIZE=5MB,
MAXSIZE=15MB,
FILEGROWTH=2MB)
7.采用默认设置创建数据库company。
四
(2)、实验示例
两个示例:
●一个是书上的学生选课数据库S_T,S_T数据库中有学生表student,课程表course和学生选课表sc。
各表的结构如下:
学生表student
Sno
char(5)
Notnull
primarykey
学号
Sname
char(20)
Notnull
姓名
Ssex
char
(2)
Notnull
性别
Sage
smallint
Notnull
年龄
Sdept
char(20)
Notnull
系别
课程表course
Cno
char(4)
Notnull
primarykey
课程号
Cname
char(40)
Notnull
课程名
Cpno
char(4)
先行课
Ccredit
smallint
Notnull
学分
学生选课表sc
Sno
char(5)
Notnull
primarykey
学号
Cno
char(4)
Notnull
primarykey
课程号
Grade
smallint
成绩
●另一个示例是某公司的产品销售数据库company,company数据库中存在人事表employee、客户表customer、销售表sales、销售明细表sale_item、产品表product。
各表的结构如下:
员工人事表employee
emp_no
char(5)
Notnull
primarykey
员工编号
emp_name
varchar(10)
Notnull
员工姓名
sex
char
(2)
Notnull
性别
dept
varchar(10)
Notnull
所属部门
title
varchar(10)
Notnull
职称
date_hired
datetime
Notnull
雇佣日
birthday
datetime
Null
生日
salary
int
Notnull
薪水
telephone
varchar(20)
Null
电话
addr
varchar(50)
null
住址
客户表customer
cust_id
char(5)
Notnull
primarykey
客户号
cust_name
varchar(20)
Notnull
客户名称
addr
varchar(40)
Notnull
客户住址
tel_no
varchar(20)
Notnull
客户电话
zip
char(6)
null
邮政编码
销售主表sales
order_no
int
Notnull
primarykey
订单编号
cust_id
char(5)
Notnull
客户号
sale_id
char(5)
Notnull
业务员编号
tot_amt
numeric(9,2)
Notnull
订单金额
order_date
datetime
Notnull
订货日期
销货明细表sale_item
order_no
int
Notnull
primarykey
订单编号
prod_id
char(5)
Notnull
primarykey
产品编号
qty
int
Notnull
销售数量
unit_price
numeric(7,2)
Notnull
单价
order_date
datetime
null
订单日期
产品名称表product
prod_id
char(5)
Notnull
primarykey
产品编号
prod_name
varchar(20)
Notnull
产品名称
1.创建表及相应的约束
createtableemployee1(
emp_nochar(5)notnullcheck(emp_nolike'[E-F][0-9][0-9][0-9][0-9]'),
emp_namechar(10)notnull,
emp_sexchar
(1)notnullcheck(emp_sexin('m','f')),
emp_phonechar(13)notnull,
emp_addvarchar(60)notnull,
emp_salarychar(5)notnullcheck(emp_salarybetween60000and80000)
)
go
2.修改表
altertableemployee
addconstraintck_phonecheck(phonelike’[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]
[0-9][0-9][0-9][0-9][0-9]’)
五
(2)、实验内容
分别在SQLSERVER2000企业管理器和在查询分析分析器中使用T—SQL语句完成以下操作:
●针对S_T数据库:
1.创建student表,设置Sno为主键;在Sno列上创建核查约束,要求学号各个位上只能取数字字符;在Ssex列上创建核查约束,要求性别只能取“男”或“女”;在Sage列上创建核查约束,要求学生的年龄只能在14至38之间。
createtablestudent(
snochar(5)notnullprimarykey,check(snolike'[0-9][0-9][0-9][0-9][0-9]'),
snamechar(10)notnull,
ssexchar
(2)notnullcheck(ssexin('男','女')),
sagechar(5)notnullcheck(sagebetween14and38)
)
go
2.创建course表,设置列Cno为主键;在Cno列上创建核查约束,要求课程号只能取数字字符。
createtablecource(
Cnochar(4)notnullprimarykey,check(cnolike'[0-9][0-9][0-9][0-9]'),
Cnamechar(40)notnull,
Cpnochar(4),
Ccreditsmallintnotnull,
)
go
3.创建sc表,设置主键为Sno与Cno的组合;在Grade列上创建核查约束,限定成绩只能在0-100。
createtablesc(
snochar(5)notnullprimarykey,
cnochar(4)notnullprimarykey,
gradesmallintcheck(gradebetween0and100)
)
go
4.修改course表,在表中为Cpno列添加一外键约束Fk_Cpno,它参照了course表的主键Cno。
altertablecourse
addconstraintFk_Cpnocheck(cnolike'[0-9][0-9][0-9][0-9]')
5.修改sc表,在表中为Sno添加一外键约束Fk_Sno,它参照了student表中的主键Sno;为Cno添加外键约束Fk_Cno,它参照了course表中的主键Cno。
altertablesc
addconstraintFk_snocheck(snolike'[0-9][0-9][0-9][0-9][0-9]')