数据库原理及应用崔巍书后上机实验.docx
- 文档编号:15607216
- 上传时间:2023-07-06
- 格式:DOCX
- 页数:22
- 大小:21.68KB
数据库原理及应用崔巍书后上机实验.docx
《数据库原理及应用崔巍书后上机实验.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用崔巍书后上机实验.docx(22页珍藏版)》请在冰点文库上搜索。
数据库原理及应用崔巍书后上机实验
数据库上机实验报告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提供的数据完整性功能,加深对数据完整性的理解。
二、实验内容:
建立表,修改表结构,建立索引,数据完整性描述。
三.、程序源代码:
create
database
订单管理
create
table客户(
客户号
char(8)
primary
key
check(客户号
like
'[A-z]%'),
客户名称
varchar(40)not
null,
联系人
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]'))
create
table
产品(
产品号
char(8)
primary
key
check(产品号
like
'[A-Z][A-Z]%'),
产品名称
varchar(40),
规格说明
char(40)
constraint
uniunique,
单价
smallmoneyconstraint
dj
check(单价>0))
create
table
订购单(
客户号
char(8)
no
tnull
foreign
key
references
客户,
订单号
char(8)
primary
key,
订购日期datetime
default
getdate())
create
table
订单名细(
订单号
char(8)
foreign
key
references
订购单,
序号
tinyint,
产品号
char(8)
not
null
foreign
key
references
产品,
数量
smallin
tconstraint
sl
check(数量>0),
primarykey(订单号,序号))
--修改产品表
--1
alter
table
产品drop
constraint
uni
alter
table
产品alter
column
规格说明
varchar(40)
alter
table
产品add
constraint
uni
unique
(规格说明)
--2
alter
table
订购单
add
完成日期
datetime
defaultnull
--3
alter
table
订单名细
drop
constraint
sl
alter
table
订单名细
add
constraint
slcheck(数量>0and
数量<1000)
--建立索引
--1
create
index
cus_idx
on客户(客户名称)
--2
create
unique
index
gdn_nui
on
产品(产品名称)
--3
创建表时,primarykey
隐式地创建了聚集索引,而一个表中只能有一个聚集索引。
create
clustered
index
oid_clus
on订购单(订单号)
--失败
--4
create
index
item_idx
on
订单名细(订单号,序号,数量
desc)
数据库系统及应用上机实验报告3
一、实验目的:
为实验2建立的表设计一组数据进行插入、删除、修改等操作,并体会数据完整性约束的作用,加深对数据完整性及其约束的理解。
二、实验内容:
数据的插入、更新和删除。
三.、程序源代码:
--1、部分记录
insert
into
客户
values('C001','A
公司','
小明','
北京','123456','143567568457')
insert
into
客户
values('C002','B
公司','
小李','
上海','234567','146389045634')
insert
into
客户(客户号,客户名称)
values('C009','J
商场')
insert
into
产品
values('GD001','iphone','4s','5000')
insert
into
产品
values('GD002','ipad','2g','5500')
insert
into
产品(产品号,产品名称)
values('GD010','MacPro')
insert
into
订购单(客户号,订单号)values('C001','or01')
insert
into
订购单(客户号,订单号)values('C001','or02')
insert
into
订购单(订单号)values('or19')
insert
into
订单名细
values('or01','1','GD001','4')
insert
into
订单名细
values('or01','2','GD001','3')
insert
into
订单名细values('or01','3','GD002','6')
insert
into
订单名细(订单号,序号,产品号)
values('or14','28','GD006')
--2
delete
from
客户
where
客户号='C001'
--受参照完整性约束
delete
from订购单
where
订单号='or01'
--受参照完整性约束
--3
update
订购单
set
订单号=null
where客户号='C001'
--受实体完整性约束
update
订购单
set
客户号='C011'
where
订单号='or04'--
受参照完整性约束
update
订购单
set
客户号='C009'
where
订单号='or07'
--更新成功
update
订单名细
set
数量=0
where序号='9'
--受用户定义完整性约束
--4
update
订单名细
set
数量=数量+10
from
订购单
where
订购单.订单号=订单名细.订单号
and
客户号='C002'
--5
delete
from
订单名细
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_cu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 应用 崔巍 书后 上机 实验