数据库系统上级实验答案 第二版.docx
- 文档编号:4932004
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:14
- 大小:18.77KB
数据库系统上级实验答案 第二版.docx
《数据库系统上级实验答案 第二版.docx》由会员分享,可在线阅读,更多相关《数据库系统上级实验答案 第二版.docx(14页珍藏版)》请在冰豆网上搜索。
数据库系统上级实验答案第二版
数据库系统及应用上机实验报告1
数据库上机实验报告1
一、实验目的:
理解SQLServer数据库的存储结构,掌握SQLServer数据库的建立方法和维护方法。
二、实验内容:
在SQLServer环境下建立数据库和维护数据库。
三、程序源代码:
--1
CREATEDATABASEtest1
ON
(NAME=test1_dat,
FILENAME='f:
\DB\data\test1dat.mdf',
SIZE=10,
MAXSIZE=50,
FILEGROWTH=5)
LOGON
(NAME=order_log,
FILENAME='f:
\DB\data\test1log.ldf',
SIZE=5MB,
MAXSIZE=25MB,
FILEGROWTH=5MB)
--2
createdatabasetest2
on
primary
(name=test2_dat1,
filename='f:
\DB\data\test2dat1.mdf'),
(name=test2_dat2,
filename='f:
\DB\data\test2dat2.ndf'),
(name=test2_dat3,
filename='f:
\DB\data\test2dat3.ndf')
logon
(name=test2_log1,
filename='f:
\DB\data\test2log1.ldf'),
(name=test2_log2,
filename='f:
\DB\data\test2log2.ldf')
--3
createdatabasetest3
on
primary
(name=test3_dat1,
filename='f:
\DB\data\test3dat1.mdf'),
(name=test3_dat2,
filename='f:
\DB\data\test3dat2.mdf'),
filegroupg2
(name=test3_dat3,
filename='d:
\DB\data\test3dat3.ndf'),
(name=test3_dat4,
filename='d:
\DB\data\test3dat4.ndf'),
filegroupg3
(name=test3_dat5,
filename='e:
\DB\data\test3dat5.ndf'),
(name=test3_dat6,
filename='e:
\DB\data\test3dat6.ndf')
logon
(name=test3_log,
filename='f:
\DB\data\test3log.ldf')
--4
alterdatabasetest1
addfile
(name=test1new_dat,
filename='f:
\DB\data\test1newdat.ndf',
size=5MB)
--5
alterdatabasetest1
modifyfile
(name=test1_dat,
size=15MB)
--6
dropdatabasetest3
四、实验数据、结果分析:
若没有指定size,则默认为1MB,没有指定Maxsize,文件可以增长到磁盘满为止,没有指定Filegrowth,则默认为10%。
五、总结:
CREATEDATABASEdataname创建数据库
ALTERDATABASEdatabase修改数据库
DROPDATABASEdataname删除数据库
数据库系统及应用上机实验报告2
、实验目的:
掌握表和索引的建立方法及表结构的修改方法,并实践DBMS提供的数据完整性功能,加深对数据完整性的理解。
二、实验内容:
建立表,修改表结构,建立索引,数据完整性描述。
三.、程序源代码:
createdatabase订单管理
createtable客户(
客户号char(8)primarykeycheck(客户号like'[A-z]%'),
客户名称varchar(40)notnull,
联系人char(8),
地址varchar(40),
邮政编码char(6)check(邮政编码like'[0-9][0-9][0-9][0-9][0-9][0-9]'),
电话char(12)check(电话like'1[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'))
createtable产品(
产品号char(8)primarykeycheck(产品号like'[A-Z][A-Z]%'),
产品名称varchar(40),
规格说明char(40)constraintuniunique,
单价smallmoneyconstraintdjcheck(单价>0))
createtable订购单(
客户号char(8)notnullforeignkeyreferences客户,
订单号char(8)primarykey,
订购日期datetimedefaultgetdate())
createtable订单名细(
订单号char(8)foreignkeyreferences订购单,
序号tinyint,
产品号char(8)notnullforeignkeyreferences产品,
数量smallintconstraintslcheck(数量>0),
primarykey(订单号,序号))
--修改产品表
--1
altertable产品dropconstraintuni
altertable产品altercolumn规格说明varchar(40)
altertable产品addconstraintuniunique(规格说明)
--2
altertable订购单add完成日期datetimedefaultnull
--3
altertable订单名细dropconstraintsl
altertable订单名细addconstraintslcheck(数量>0and数量<1000)
--建立索引
--1
createindexcus_idxon客户(客户名称)
--2
createuniqueindexgdn_nuion产品(产品名称)
--3创建表时,primarykey隐式地创建了聚集索引,而一个表中只能有一个聚集索引。
createclusteredindexoid_cluson订购单(订单号)--失败
--4
createindexitem_idxon订单名细(订单号,序号,数量desc)
数据库系统及应用上机实验报告3
一、实验目的:
为实验2建立的表设计一组数据进行插入、删除、修改等操作,并体会数据完整性约束的作用,加深对数据完整性及其约束的理解。
二、实验内容:
数据的插入、更新和删除。
三.、程序源代码:
--1、部分记录
insertinto客户values('C001','A公司','小明','北京','123456','143567568457')
insertinto客户values('C002','B公司','小李','上海','234567','146389045634')
insertinto客户(客户号,客户名称)values('C009','J商场')
insertinto产品values('GD001','iphone','4s','5000')
insertinto产品values('GD002','ipad','2g','5500')
insertinto产品(产品号,产品名称)values('GD010','MacPro')
insertinto订购单(客户号,订单号)values('C001','or01')
insertinto订购单(客户号,订单号)values('C001','or02')
insertinto订购单(订单号)values('or19')
insertinto订单名细values('or01','1','GD001','4')
insertinto订单名细values('or01','2','GD001','3')
insertinto订单名细values('or01','3','GD002','6')
insertinto订单名细(订单号,序号,产品号)values('or14','28','GD006')
--2
deletefrom客户where客户号='C001'--受参照完整性约束
deletefrom订购单where订单号='or01'--受参照完整性约束
--3
update订购单set订单号=nullwhere客户号='C001'--受实体完整性约束
update订购单set客户号='C011'where订单号='or04'--受参照完整性约束
update订购单set客户号='C009'where订单号='or07'--更新成功
update订单名细set数量=0where序号='9'--受用户定义完整性约束
--4
update订单名细set数量=数量+10
from订购单
where订购单.订单号=订单名细.订单号and客户号='C002'
--5
deletefrom订单名细
from订购单
where订购单.订单号=订单名细.订单号and客户号='C002'
四、实验数据、结果分析:
--2
在删除客户号为“C002”的记录时无法删除,因为客户表被订购单表参照。
删除订购单号为“or01”的记录时无法删除,因为订单名细表参照订购单表。
--3
第一个更新根据实体完整性约束,订单号是主关键字,不能为空值。
第二个更新根据参照完整性约束,订购单表参照客户表,而客户表中没有客户号为“C011”的客户。
第四个更新根据用户定义完整性约束,数量必须为正整数。
--4
使客户号为C002的订购单的订购数量增加10.
--5
删掉客户号为C002的订单名细记录。
五、总结:
插入:
INSERTINTO<表名>[(<列名>[,<列名>…])]
values(<表达式>[,<表达式>…])
更新:
update<表名>set<列名>=<表达式>[,<列名>=<表达式>…]
[[from<表名>]where<逻辑表达式>]
删除:
DELETEFROM<表名>
[[FROM<表名>]WHERE<逻辑表达式>]
完整性约束影响插入、更新和删除等操作
数据库系统及应用上机实验报告4
一、实验目的:
熟练掌握SQLSELECT语句,能够运用该语句完成各种查询。
二、实验内容:
用SQLSELECT语句完成各种数据查询。
三.、程序源代码:
--1
select*from客户
--2
select客户号from订购单
--3
select*from产品where单价>=5000
--4
select*from产品where单价>5000and产品名称='Macbook'
--5
select*from产品where单价>6000and产品名称in('Macbook','ipad')
--6
selectc.客户名称,c.联系人,c.电话,o.订单号
from客户c,订购单o
whereo.订购日期between'2011-10-30'and'2011-12-1'
andc.客户号=o.客户号
--7
selectdistinct客户名称,联系人,电话
from客户c,产品g,订购单o,订单名细d
where产品名称='iphone'
andg.产品号=d.产品号
andd.订单号=o.订单号
ando.客户号=c.客户号
--8
select*from订单名细
where产品号in(
select产品号
from产品
where产品名称='Macbook')
--9
select*from订购单
where订单号in(
select订单号
from订单名细
where数量>10)
--10
select*from产品where单价=(select单价from产品where规格说明='4s')
--11
select*from产品where单价between1000and5000
--12
select*from客户where客户名称like'%集团'
--13
select*from客户where客户名称notlike'%商场'
--14
select*from产品orderby单价
--15
select*
from产品
orderby产品名称,单价
--16
selectCOUNT(产品号)
from产品
--17
selectSUM(数量)
from订单名细
where产品号=(select产品号
from产品
where产品名称='ipad')
--18
selectSUM(数量*单价)总金额
from产品,订单名细
where产品.产品号=订单名细.产品号
and产品名称='ipodnano'
--19
selectCOUNT(distinct订单号)as订购单个数,AVG(数量*单价)as平均金额
from产品,订单名细
where产品.产品号=订单名细.产品号
--20
select订单号,COUNT(订单号)项目数,SUM(g.单价*o.数量)总金额
from产品g,订单名细o
whereg.产品号=o.产品号
groupby订单号
--21
selecti.订单号,MAX(数量*单价)最高金额,MIN(数量*单价)最低金额
from订购单o,产品g,订单名细i
whereo.订单号=i.订单号
andg.产品号=i.产品号
and产品名称='iphone'
groupbyi.订单号
--22
select订单号,COUNT(*)项目数,AVG(数量*单价)平均金额
from产品g,订单名细i
whereg.产品号=i.产品号
groupby订单号
havingCOUNT(*)>=2
--23
select客户名称,联系人,电话,订单号
from客户c,订购单o
wherec.客户号=o.客户号
and订购日期isnull
--24
select客户名称,联系人,电话,订单号,订购日期
from客户,订购单
where客户.客户号=订购单.客户号
and订购日期>'2011-10-10'
--25
select*
from产品outa
where单价=(selectMAX(单价)
from产品innera
whereouta.产品名称=innera.产品名称)
--26
select客户号
from客户
wherenotexists(
select*
from订购单
where客户.客户号=订购单.客户号)
--27
select*
from客户
whereexists(
select*
from订购单
where客户.客户号=订购单.客户号)
--28
select产品名称
from产品
where单价=any(select单价/2
from产品)
--29
select产品名称
from产品
where单价>all(selectmax(单价)from产品)
--30
--cross
select*from客户crossjoin订购单
where客户.客户号=订购单.客户号
--inner
select*from客户innerjoin订购单
on客户.客户号=订购单.客户号
--left
select客户.*,订单号,订购日期
from客户leftjoin订购单
on客户.客户号=订购单.客户号
--right
select客户.*,订单号,订购日期
from客户rightjoin订购单
on客户.客户号=订购单.客户号
--full
select客户.*,订单号,订购日期
from客户fulljoin订购单
on客户.客户号=订购单.客户号
数据库系统及应用上机实验报告5
一、实验目的:
理解视图的概念,掌握视图的使用方法。
二、实验内容:
定义视图,并在视图上完成查询、插入、更新和删除操作。
三.、程序源代码:
--1
--1)、基于单个表按投影操作定义视图
createviewv_cusas
select客户号,客户名称
from客户
--使用
select*fromv_cus
--2)、基于单个表按选择操作定义视图
createviewv_orderas
select*
from订购单
where客户号='C001'
--使用
select*fromv_order
--3)、基于单个表按选择和投影操作定义视图
createviewv_cussas
select客户名称,联系人,电话
from客户
where客户号='C003'
--使用
select*fromv_cuss
--4)、基于多个表根据连接操作定义视图
createviewv_joinas
select客户.*,订单号,订购日期
from客户join订购单
on客户.客户号=订购单.客户号
--使用
select*fromv_join
--5)、基于多个表根据嵌套查询定义视图
createviewv_itemas
select*from订单名细
where产品号in(
select产品号
from产品
where产品名称='Macbook')
--使用
select*fromv_item
--6)、查定义含有虚字段的视图
createviewv_items(订单号,序号,产品号,数量,总金额)as
selecti.*,i.数量*g.单价
from订单名细i,产品g
wherei.产品号=g.产品号
--使用
select*fromv_items
--2
--在视图上查询
select*fromv_items
--在视图上插入
insertintov_cusvalues('C012','Google')
--在视图上更新
updatev_orderset订购日期='2011-11-29'
--在视图上删除
deletefromv_cus
where客户号='C012'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库系统上级实验答案 第二版 数据库 系统 上级 实验 答案 第二