数据库应用与设计 课后实验 实验一到实验五 代码加截图.docx
- 文档编号:8895629
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:73
- 大小:2.95MB
数据库应用与设计 课后实验 实验一到实验五 代码加截图.docx
《数据库应用与设计 课后实验 实验一到实验五 代码加截图.docx》由会员分享,可在线阅读,更多相关《数据库应用与设计 课后实验 实验一到实验五 代码加截图.docx(73页珍藏版)》请在冰豆网上搜索。
数据库应用与设计课后实验实验一到实验五代码加截图
实验一建立数据库
实验名称:
建立数据库
实验内容:
在SQLServer环境下建立数据库和维护数据库。
实验目的:
理解SQLServer数据库的存储结构,掌握SQLServer数据库的建立方法和维护方法。
实验方法:
在SQLServer环境下用CREATEDATABASE命令建立数据库(注意:
需要是系统管理员用户,或者被指定dbcreator固定服务器角色的成员,或者被显式地授予CREATEDATABASE权限,有关权限的内容请课文5.2节)
实验要求:
1、根据上体要求创建如下3个数据库:
a)创建数据库test1(使用一个数据文件和一个日志文件),要求指定一个数据文件、一个事务日志文件,并把它们安排在不同的硬盘上。
b)创建数据库test2(使用多个数据文件和多个日志文件),要求使用3个数据文件和两个事务日志文件,主数据文件是列表中的第一个文件或者用关键字PRIMARY指定(文件扩展名:
主数据文件使用.mdf,次数据文件使用.ndf,事务日志文件使用.ldf)。
c)创建数据库test3(使用文件组),要求使用3个文件组(含主文件组,默认的文件组),每个文件组包含两个数据文件,并且每个文件组要安排在不同的硬盘上。
2、修改建立的test1数据库,为之添加一个5MB大小的新数据文件。
3、修改建立的test2数据库,将其中的主数据文件增加5MB的存储空间。
4、删除建立的数据库test1。
相关命令
建立数据库的命令是CREATEDATABASE,其常用格式是(命令解释参见课文2.4.2节):
CREATEDATABASEdatabase_name
ON
[,FILEGROUPfilegroup_name
[LOGON
修改数据库的命令是ALTERDATABASE,其常用格式是(命令解释参见SQLServer联机帮助):
ALTERDATABASEdatabase
{ADDFILE
|ADDLOGFILE
|MODIFYFILE
|MODIFYNAME=new_dbname
}
删除数据库的命令是DROPDATABASE,其格式是:
DROPDATABASEdatabase_name
实验操作:
1)代码:
createdatabasetest1
ON
(name=test1,
FILENAME='F:
\date\test1.mdf',
SIZE=10,
MAXSIZE=50,
FILEGROWTH=5)
LOGON
(NAME=test1_log,
FILENAME='E:
\date\test1.ldf',
SIZE=5MB,
MAXSIZE=25MB,
FILEGROwTH=5MB)
实验一1.1图
2)代码
createdatabasetest2
on
(name=dat11,
filename='F:
\date\dat11.mdf',
size=10mb,
maxsize=100mb,
filegrowth=10%),
(name=dat22,
filename='F:
\date\dat22.ndf',
size=10mb,
maxsize=100mb,
filegrowth=10%),
(name=dat33,
filename='F:
\date\dat33.ndf',
size=10mb,
maxsize=100mb,
filegrowth=10%)
logon
(name='log1',
filename='F:
\date\log1.ldf',
size=10mb,
maxsize=100mb,
filegrowth=5mb),
(name=log2,
filename='F:
\date\log2.ldf',
size=10mb,
filegrowth=10%)
实验一1.2图
maxsize=100mb,
(3)代码:
createdatabasetest3
onprimary
(name=dab1,
filename='F:
\data\dab1.mld',
size=5mb,
maxsize=10mb,
filegrowth=1mb),
filegroupfg11
(name=dab2,
filename='F:
\data\dab2.nld',
size=1mb,
maxsize=10mb,
filegrowth=1mb),
filegroupfg22
(name=dat1,
filename='E:
\date\dat1.nld',
size=1mb,
maxsize=10mb,
filegrowth=1mb),
(name=dat2,
filename='E:
\date\dat2.nld',size=1mb,
maxsize=10mb,
filegrowth=1mb),
filegroupfg33
(name=da1,
filename='G:
\data\da1.nld',
size=1mb,
maxsize=10mb,
filegrowth=1mb),
(name=da2,实验一1.3图
filename='G:
\data\da2.nld',
size=1mb,
maxsize=10mb,
filegrowth=1mb)
2代码:
alterdatabasetest1
addfile
(name=te,
filename='F:
\data\te.mld',
size=5mb,
maxsize=100mb,
filegrowth=5mb)
实验一2图
3代码:
alterdatabasetest2
modifyfile
(name=dat11,
filename='F:
\data\dat11.mid',
maxsize=105mb)
实验一3图
4:
代码:
drop databasetest1
实验一4图
实验二建立表和定义完整性约束
实验名称:
建立模式、表和定义完整性约束
实验内容:
在实验一建立的数据库的基础上,参照下图和下表建立表并定义完整性约束。
面积
图1订货数据库
表1订货数据库字段和约束说明
表名
字段名
字段类型
关键字
约束说明
仓库
仓库号
6个字符
是
城市
10个字符
唯一,不允许空值
面积
数值
大于等于50
职工
职工号
8个字符
是
主键不为空值
经理
参照仓库的仓库号,允许空值。
工资
货币
大于等于1000,小于等于10000
供应商
供应商号
4个字符
是
供应商名
16个字符
地址
30个字符
订购单
职工号
参照职工表的职工号,不允许空值
供应商号
参照供应商表的供应商号,允许空值
订购单号
6个字符
是
订购日期
日期
默认是当前日期
金额
货币
默认空值
订购单明细
订购单号
是
参照订购单表的订购单号,不允许空值
序号
2位数字
是
产品名称
20个字符
单价
货币
大于0,默认空值
数量
整数
大于0,不允许空值
实验目的:
熟练掌握表的建立和数据完整性速描定义方法,实践DBMS提供的数据完整性功能,加深对数据完整性的理解。
实验方法:
在实验一建立数据库的基础上用CREATESCHEMA命令建立模式,用CREATETABLE命令建立表并定义数据完整性约束(注意:
需要有CREATESCHEMA和CREATETABLE的权限,或者其他具有相应权限的身份,有关权限的内容请参见课文5.2节),用ALTERTABLE命令修改表结构。
实验要求:
1、用CREATESCHEMA命令建立模式(自己命名模式名称)。
2、在定义的模式下参照图1和表1使用CREATETABLE命令建立表并定义完整性约束。
3、使用ALTERTABLE命令按如下要求修改表结构:
a)为订购单增加一个新的字段“完成日期”,类型为日期时间型,默认是空值。
b)为订单明细表的“数量”字段重新定义约束:
大于0、小于等于1000的正整数,不允许为空值。
c)将供应商表的供应商名字段的类型修改为varchar(30)。
相关命令
CREATESCHEMA命令的基本格式是(详细解释参见课文第3.3.1节):
CREATESCHEMAschema_name
CREATETABLE命令的基本格式是(详细解释参见课文第3.3.2节):
CREATETABLE[schema_name].table_name
({
[
其中列定义(column_definition)的基本格式是:
Column_name
[CONSTRAINTconstraint_name]
{{PRIMARYKEY|UNIQUE}|FOREIGNKEY(column[,...n])
REFERENCESreferenced_table_name[(ref_column[,...n])]
[ONDELETE{NOACTION|CASCADE|SETNULL|SETDEFAULT}]
[ONUPDATE{NOACTION|CASCADE|SETNULL|SETDEFAULT}]
|CHECK(logical_expression)
}
如果需要还可以定义计算列(computed_column_definition)和表级约束(table_constraint)。
ALTERTABLE命令的基本格式是(详细解释参见课文3.3.2节):
ALTERTABLE[schema_name.]table_name
{ALTERCOLUMNcolumn_name
|ADD
|DROP[CONSTRAINT]constraint_name|COLUMNcolumn_name}
实验操作:
1代码:
createschemakun
、
2代码:
1)createtablekun.仓库
(仓库号char(6)primarykey,
城市char(10),
面积char(10)check(面积in('>=50')))
2)createtablekun.职工
(职工号char(8)primarykey,
仓库号char(6)foreignkeyreferenceskun.仓库,
工资moneycheck(工资in('between1000and10000')))
3)createtablekun.供应商
(供应商号char(4)primarykey,
供应商名char(16),
地址char(30))
4)createtablekun.订购单
(职工号char(8)foreignkeyreferenceskun.职工,
供应商号char(4)foreignkeyreferenceskun.供应商,
订单号char(6)primarykey,
订购日期datetimedefault11/2/2013,
金额money)
5)
createtablekun.订购单明细
(订购单号char(6)foreignkeyreferenceskun.订购单,
序号char(4),
产品名称char(20),
单价moneycheck(单价>0)null,
数量intcheck(数量>0)notnull,
primarykey(订购单号,序号))
3:
代码
1)altertablekun.订购单
add完成日期datetimenull
2)altertablekun.订购单明细
addconstraint数量check(数量between0and1000)
实验三数据操作和完整性约束的作用
实验名称:
数据操作笔完整性约束的作用
实验内容:
在实验二的基础上完成数据的插入操作,然后进行部分修改和删除操作,在这些操作中体会数据完整性约束的作用。
实验目的:
熟练掌握SQL的INSERT,UPDATE和DELETE命令,深刻理解数据完整性约束的作用以及约束时机。
实验方法:
在实验二的基础上首先用INSERT命令插入各个表的记录,然后使用UPDATE和DELETE命令对部分记录进行修改和删除操作。
实验要求:
1、自行设计各个表的记录,其中仓库表至少5条记录,职工表至少10条记录、供应商表至少5条记录,订购单表至少20条记录,订购单明细表至少50条记录。
2、使用INSERT命令完成记录的插入操作,要求分别设计若干违反实体完整性、参照完整性和用户定义完整性约束的插入操作,并分析原因。
3、设计若干删除操作,体会执行删除操作时检查参照完整性规则的效果(要求涉及拒绝删除、空值删除和级联删除等不同的处理方式)。
4、设计若干更新操作,体会执行更新操作时检查实体完整性规则、参照完整性规则和用户定义完整性规则的效果。
5、将x城市仓库的职工的工资提高10%。
6、用UPDATE语句完成订购单表金额字段的计算(提示:
某张订购单的金额为该订购单所有订购项目(订购单明细)单价乘以数量的总和)。
7、设计2~3个删除操作,它需要另外一个表中的数据作为删除条件(例如,按指定的供应商名称删除订购单记录)。
8、在实验报告中给出具体的记录和设计的操作,并针对各种数据完整性检查,给出具体的分析和讨论。
相关命令
SQL的插入语句是INSERT,常用格式如下:
INSERTINTO[schema_name.]table_name[(column_list)]
VALUES({expression|DEFAULT|NULL}[,...n])
SQL的删除语句是DELETE,常用格式如下:
DELETE[FROM][schema_name.]table_name
[WHERE
SQL更新记录的语句是UPDATE,常用格式如下:
UPDATE[schema_name.]table_name
SETcolumn_name={expression|DEFAULT|NULL}[,...n]
[WHERE
其中,DELETE和UPDATE语句的WHERE子句可以嵌套子查询,从而完成若干其他表中记录或字段值的条件的删除或修改操作。
实验操作:
1:
代码
1)仓库记录:
insertintokun.仓库(仓库号,城市,面积)
values(0001,'新圩',500)
insertintokun.仓库(仓库号,城市,面积)values(0002,'新圩',600)
insertintokun.仓库(仓库号,城市,面积)values(0003,'新圩',700)
insertintokun.仓库(仓库号,城市,面积)values(0004,'新圩',500)
insertintokun.仓库(仓库号,城市,面积)values(0005,'新圩',500)
insertintokun.仓库(仓库号,城市,面积)values(0006,'新圩',800)
2)职工记录:
insertintokun.职工(职工号,仓库号,工资)
values(99,1,2000)
insertintokun.职工(职工号,仓库号,工资)values(98,2,3000)
insertintokun.职工(职工号,仓库号,工资)values(97,3,3000)
insertintokun.职工(职工号,仓库号,工资)values(96,4,3000)
insertintokun.职工(职工号,仓库号,工资)values(95,5,3000)
insertintokun.职工(职工号,仓库号,工资)values(94,6,3000)
insertintokun.职工(职工号,仓库号,工资)values(93,7,3000)
insertintokun.职工(职工号,仓库号,工资)values(92,8,3000)
insertintokun.职工(职工号,仓库号,工资)values(91,9,3000)
insertintokun.职工(职工号,仓库号,工资)values(90,10,3000)
insertintokun.职工(职工号,仓库号,工资)values(89,11,3000)
3)供应商记录
insertintokun.供应商(供应商号,供应商名,地址)
values(10,'梦华','阿拉斯加')
insertintokun.供应商(供应商号,供应商名,地址)values(11,'梦华','阿拉斯加')
insertintokun.供应商(供应商号,供应商名,地址)values(12,'梦华','阿拉斯加')
insertintokun.供应商(供应商号,供应商名,地址)values(14,'梦华','阿拉斯加')
insertintokun.供应商(供应商号,供应商名,地址)values(15,'梦华','阿拉斯加')
insertintokun.供应商(供应商号,供应商名,地址)values(16,'梦华','阿拉斯加')
订购单记录
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)
values(15,98,74,'1/1/2013',1000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16,97,98,'1/1/2013',2000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16,96,97,'1/1/2013',2000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16,95,96,'1/1/2013',2000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16,94,95,'1/1/2013',2000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16,93,94,'1/1/2013',2000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16,92,93,'1/1/2013',2000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16,91,92,'1/1/2013',2000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16,90,91,'1/1/2013',2000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16,89,90,'1/1/2013',2000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16,88,88,'1/1/2013',2000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16,87,87,'1/1/2013',2000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16,86,86,'1/1/2013',2000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16,85,85,'1/1/2013',2000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16,84,84,'1/1/2013',2000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16,83,83,'1/1/2013',2000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16,82,82,'1/1/2013',2000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16,81,81,'1/1/2013',2000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16,80,78,'1/1/2013',2000,'1/1/2013')
insertintokun.订购单(职工号,供应商号,订单号,订购日期,金额,完成日期)values(16
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库应用与设计 课后实验 实验一到实验五 代码加截图 数据库 应用 设计 课后 实验 代码 截图