课程:数据库技术实验一建立数据库实验名称:建立数据库实验内容:在SQL Server环境下建立数据库和维护数据库。
实验目的:理解SQL Server数据库的存储结构,掌握SQL Server数据库的建立方法和维护方法。
实验方法:在SQL Server环境下用CREATE DATABASE命令建立数据库(注意:需要是系统管理员用户,或者被指定dbcreator固定服务器角色的成员,或者被显式地授予CREATE DATABASE权限,有关权限的内容请课文5.2节)实验要求:1、根据上体要求创建如下3个数据库:a)创建数据库test1(使用一个数据文件和一个日志文件),要求指定一个数据文件、一个事务日志文件,并把它们安排在不同的硬盘上。
b)创建数据库test2(使用多个数据文件和多个日志文件),要求使用3个数据文件和两个事务日志文件,主数据文件是列表中的第一个文件或者用关键字PRIMARY指定(文件扩展名:主数据文件使用.mdf,次数据文件使用.ndf,事务日志文件使用.ldf)。
c)创建数据库test3(使用文件组),要求使用3个文件组(含主文件组,默认的文件组),每个文件组包含两个数据文件,并且每个文件组要安排在不同的硬盘上。
2、修改建立的test1数据库,为之添加一个5MB大小的新数据文件。
3、修改建立的test2数据库,将其中的主数据文件增加5MB的存储空间。
4、删除建立的数据库test1。
实验步骤:1.1(1)分别在D盘和F盘新建一个SQL server的文件夹(2)点击新建查询(3)输入如下代码create database tese1on(name=tese1,filename='D:\SQL server,mdf',size=10,maxsize=50,filegrowth=5)log on(name=tese1_log,filename='F:\SQL server.ldf',size=5mb,maxsize=25mb,filegrowth=5mb)然后点击执行1.2(1)在E盘新建SQL server文件夹并在这个文件夹中新建两个名为test2和test2_1的文件夹(2)点击新建查询(3)输入如下代码create database test2on primary(name=test2_1,filename='E:\SQL server\test2.mdf',size=5,maxsize=20,filegrowth=5),(name=test2_2,filename='E:\SQL server\test2.ndf',size=5,maxsize=20,filegrowth=5),(name=test2_3,filename='E:\SQL server\test2_1.ndf',size=5,maxsize=20,filegrowth=5)log on(name=test2_1_log,filename='E:\SQL server\test2.ldf',size=5mb,maxsize=20mb,filegrowth=5mb),(name=test2_2_log,filename='E:\SQL server\test2_1.ldf',size=5mb,maxsize=20mb,filegrowth=5mb)1.3(1)分别在E D F盘新建SQL server文件夹并在这三个文件夹分别新建两个名为test3和test3_1的文件夹(2)创建的自定义文件组:test3Group1和test3Group2。
(3)输入如下代码CREATE DATABASE test3ON PRIMARY(NAME= test3_1,FILENAME='F:\SQL server\test3.mdf',SIZE= 10,MAXSIZE= 50,FILEGROWTH= 5 ),(NAME= test3_2,FILENAME='F:\SQL server\test3_1.ndf', SIZE= 10,MAXSIZE= 50,FILEGROWTH= 5 ),FILEGROUP test3Group1(NAME= test3_1Group1,FILENAME='E:\SQL server\test3.ndf',SIZE= 10,MAXSIZE= 50,FILEGROWTH= 5 ),(NAME= test3_2Group1,FILENAME='E:\SQL server\test3_1.ndf', SIZE= 10,MAXSIZE= 50,FILEGROWTH= 5 ),FILEGROUP test3Group2(NAME= test3_1Group2,FILENAME='D:\SQL server\test3.ndf',SIZE= 10,MAXSIZE= 50,FILEGROWTH= 5 ),(NAME= test3_2Group2,FILENAME='D:\SQL server\test3_1.ndf', SIZE= 10,MAXSIZE= 50,FILEGROWTH= 5 )LOG ON(NAME= Sales_log,FILENAME='F:\SQL server\test3.ldf',SIZE= 5MB,MAXSIZE= 25MB,FILEGROWTH= 5MB )2(1)使用add添加(2)输入如下代码ALTER DATABASE tese1ADD FILE(NAME= Tese1_1,FILENAME='D:\SQL server.ndf',SIZE = 5, MAXSIZE = 20, FILEGROWTH = 5)3(1)使用modify 实现(2)输入如下代码alter database test2 modify file (name =test2_1, size =10)4(1)使用drop 实现 (2)输入如下代码drop database tese1实验二 建立表和定义完整性约束 实验名称:建立模式 表和定义完整性约束实验内容:在实验一建立的数据库的基础上,参照下图和下表建立表并定义完整性约束。
图1 订货数据库表1 订货数据库字段和约束说明供应商实验目的:熟练掌握表的建立和数据完整性速描定义方法,实践DBMS提供的数据完整性功能,加深对数据完整性的理解。
实验方法:在实验一建立数据库的基础上用CREATE SCHEMA命令建立模式,用CREATE TABLE 命令建立表并定义数据完整性约束(注意:需要有CREATE SCHEMA和CREATE TABLE的权限,或者其他具有相应权限的身份,有关权限的内容请参见课文5.2节),用ALTER TABLE命令修改表结构。
实验要求:1、用CREATE SCHEMA命令建立模式(自己命名模式名称)。
2、在定义的模式下参照图1和表1使用CREATE TABLE命令建立表并定义完整性约束。
3、使用ALTER TABLE命令按如下要求修改表结构:a)为订购单增加一个新的字段“完成日期”,类型为日期时间型,默认是空值。
b)为订单明细表的“数量”字段重新定义约束:大于0、小于等于1000的正整数,不允许为空值。
c)将供应商表的供应商名字段的类型修改为varchar(30)。
实验步骤:1.建立模式:use test2gocreate schema test22建表(1)仓库表use test2gocreate table仓库(仓库号char(6)primary key check(仓库号like'[A-Z][A-Z][0-9][0-9][0-9][0-9]'collate Chinese_PRC_BIN),城市char(10)unique not null,面积numeric check(面积>='50'))(2)职工表use test2gocreate table职工(仓库号char(6)foreign key references仓库(仓库号)check(仓库号like'[A-Z][A-Z][0-9][0-9][0-9][0-9]'collate Chinese_PRC_BIN),职工号char(8)primary key check(职工号like'[A-Z][A-Z][0-9][0-9][0-9][0-9][0-9][0-9]'collateChinese_PRC_BIN),工资money check(工资between 1000 and 10000)null)(3)供应商表use test2gocreate table供应商(供应商号char(4)primary key check(供应商号like'[S][0-9][0-9][0-9]' collate Chinese_PRC_BIN),供应商名char(16),地址char(30))(4)订购单表use test2gocreate table订购单(职工号char(8)foreign key references职工(职工号)not null,供应商号char(4)foreign key references供应商(供应商号)null,订购单号char(6)primary key check(订购单号like'[O][R][0-9][0-9][0-9][0-9]'collate Chinese_PRC_BIN),订购日期datetime default getdate(),金额money default null)(5)订购单明细表use test2gocreate table订购单明细(订购单号char(6)foreign key references订购单(订购单号),序号char(6)primary key,产品名称char(20),单价money check(单价>'0')default null,数量int check(数量>'0')not null)3.修改(1)为订购单增加一个新的字段“完成日期”,类型为日期时间型,默认是空值use test2goalter table订购单add完成日期datetime default null(2)为订单明细表的“数量”字段重新定义约束:大于0、小于等于1000的正整数,不允许为空值use test2goalter table订购单明细add check(数量between 0 and 1000)(3)将供应商表的供应商名字段的类型修改为varchar(30)use test2goalter table供应商alter column供应商名varchar(30)实验三数据操作和完整性约束的作用实验名称:数据操作笔完整性约束的作用实验内容:在实验二的基础上完成数据的插入操作,然后进行部分修改和删除操作,在这些操作中体会数据完整性约束的作用。