数据库原理及应用崔巍书后Word文档下载推荐.docx
《数据库原理及应用崔巍书后Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用崔巍书后Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。
test3
(name=test3_dat1,
\DB\data\test3dat1.mdf'
(name=test3_dat2,
\DB\data\test3dat2.mdf'
filegroupg2
(name=test3_dat3,
d:
\DB\data\test3dat3.ndf'
(name=test3_dat4,
\DB\data\test3dat4.ndf'
filegroupg3
(name=test3_dat5,
e:
\DB\data\test3dat5.ndf'
(name=test3_dat6,
\DB\data\test3dat6.ndf'
(name=test3_log,
\DB\data\test3log.ldf'
--4
alter
add
file
(name=test1new_dat,
\DB\data\test1newdat.ndf'
size=5MB)
--5
modify
(name=test1_dat,
size=15MB)
--6
dropdatabasetest3
四、实验数据、结果分析:
若没有指定size,则默认为1MB,没有指定Maxsize,文件可以增长到磁盘满为止,没有指定Filegrowth,则默认为10%。
五、总结:
CREATEDATABASEdataname
创建数据库
ALTERDATABASEdatabase
修改数据库
DROPDATABASEdataname
删除数据库
数据库系统及应用上机实验报告2
掌握表和索引的建立方法及表结构的修改方法,并实践DBMS提供的数据完整性功能,加深对数据完整性的理解。
建立表,修改表结构,建立索引,数据完整性描述。
三.、程序源代码:
订单管理
table
客户(
客户号
char(8)
primary
key
check(客户号
like
'
[A-z]%'
客户名称
varchar(40)
not
null,
联系人
char(8),
地址
varchar(40),
邮政编码
char(6)
check(邮政编码
[0-9][0-9][0-9][0-9][0-9][0-9]'
电话
char(12)
check(电话
1[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
))
create
产品(
产品号
check(产品号
[A-Z][A-Z]%'
产品名称
规格说明
char(40)
constraint
uni
unique,
单价
smallmoney
dj
check(单价>
0))
table
订购单(
no
tnull
foreign
references
客户,
订单号
key,
订购日期
datetime
default
getdate())
订单名细(
订购单,
序号
tinyint,
null
产品,
数量
smallin
tconstraint
sl
check(数量>
0),
primarykey(订单号,序号))
--修改产品表
alter
产品drop
uni
产品alter
column
varchar(40)
产品add
unique
(规格说明)
订购单
完成日期
null
订单名细
drop
sl
add
0and
数量<
1000)
--建立索引
index
cus_idx
on
客户(客户名称)
unique
gdn_nui
产品(产品名称)
--3
创建表时,primarykey
隐式地创建了聚集索引,而一个表中只能有一个聚集索引。
clustered
oid_clus
订购单(订单号)
--失败
item_idx
订单名细(订单号,序号,数量
desc)
数据库系统及应用上机实验报告3
为实验2建立的表设计一组数据进行插入、删除、修改等操作,并体会数据完整性约束的作用,加深对数据完整性及其约束的理解。
数据的插入、更新和删除。
--1、部分记录
insert
into
客户
values('
C001'
'
A公司'
小明'
北京'
123456'
143567568457'
C002'
B公司'
小李'
上海'
234567'
146389045634'
客户(客户号,客户名称)
C009'
J商场'
产品
GD001'
iphone'
4s'
5000'
GD002'
ipad'
2g'
5500'
产品(产品号,产品名称)
GD010'
MacPro'
订购单(客户号,订单号)
or01'
or02'
订购单(订单号)
or19'
1'
4'
2'
3'
6'
订单名细(订单号,序号,产品号)
or14'
28'
GD006'
delete
from
where
客户号='
--受参照完整性约束
from订购单
订单号='
update
订购单
set
订单号=null
--受实体完整性约束
C011'
or04'
or07'
--更新成功
订单名细
数量=0
where序号='
9'
--受用户定义完整性约束
数量=数量+10
订购单
订购单.订单号=订单名细.订单号
and
订单名细
在删除客户号为“C002”的记录时无法删除,因为客户表被订购单表参照。
删除订购单号为“or01”的记录时无法删除,因为订单名细表参照订购单表。
第一个更新根据实体完整性约束,订单号是主关键字,不能为空值。
第二个更新根据参照完整性约束,订购单表参照客户表,而客户表中没有客户号为“C011”的客户。
第四个更新根据用户定义完整性约束,数量必须为正整数。
使客户号为C002的订购单的订购数量增加10.
删掉客户号为C002的订单名细记录。
插入:
INSERTINTO<
表名>
[(<
列名>
[,<
…])]
values(<
表达式>
…])
更新:
update<
set<
=<
…]
[[from<
]where<
逻辑表达式>
]
删除:
DELETEFROM<
[[FROM<
]WHERE<
完整性约束影响插入、更新和删除等操作
数据库系统及应用上机实验报告4
熟练掌握SQLSELECT语句,能够运用该语句完成各种查询。
用SQLSELECT语句完成各种数据查询。
select*from客户
select客户号from订购单
select*from产品where单价>
=5000
5000and产品名称='
Macbook'
6000and产品名称in('
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产品名称='
andg.产品号=d.产品号
andd.订单号=o.订单号
ando.客户号=c.客户号
--8
select*from订单名细
where产品号in(
select产品号
from产品
--9
select*from订购单
where订单号in(
select订单号
from订单名细
where数量>
10)
--10
select*from产品where单价=(select单价from产品where规格说明='
--11
select*from产品where单价between1000and5000
--12
select*from客户where客户名称like'
%集团'
--13
select*from客户where客户名称notlike'
%商场'
--14
select*from产品orderby单价
--15
select*
orderby产品名称,单价
--16
selectCOUNT(产品号)
--17
selectSUM(数量)
where产品号=(select产品号
--18
selectSUM(数量*单价)总金额
from产品,订单名细
where产品.产品号=订单名细.产品号
and产品名称='
ipodnano'
--19
selectCOUNT(distinct订单号)as订购单个数,AVG(数量*单价)as平均金额
--20
select订单号,COUNT(订单号)项目数,SUM(g.单价*o.数量)总金额
from产品g,订单名细o
whereg.产品号=o.产品号
groupby订单号
--21
selecti.订单号,MAX(数量*单价)最高金额,MIN(数量*单价)最低金额
from订购单o,产品g,订单名细i
whereo.订单号=i.订单号
andg.产品号=i.产品号
groupbyi.订单号
--22
select订单号,COUNT(*)项目数,AVG(数量*单价)平均金额
from产品g,订单名细i
whereg.产品号=i.产品号
havingCOUNT(*)>
=2
--23
select客户名称,联系人,电话,订单号
wherec.客户号=o.客户号
and订购日期isnull
--24
select客户名称,联系人,电话,订单号,订购日期
from客户,订购单
where客户.客户号=订购单.客户号
and订购日期>
2011-10-10'
--25
from产品outa
where单价=(selectMAX(单价)
from产品innera
whereouta.产品名称=innera.产品名称)
--26
select客户号
from客户
wherenotexists(
from订购单
where客户.客户号=订购单.客户号)
--27
whereexists(
--28
select产品名称
where单价=any(select单价/2
from产品)
--29
where单价>
all(selectmax(单价)from产品)
--30
--cross
select*from客户crossjoin订购单
--inner
select*from客户innerjoin订购单
on客户.客户号=订购单.客户号
--left
select客户.*,订单号,订购日期
from客户leftjoin订购单
--right
from客户rightjoin订购单
--full
from客户fulljoin订购单
数据库系统及应用上机实验报告5
理解视图的概念,掌握视图的使用方法。
定义视图,并在视图上完成查询、插入、更新和删除操作。
--1)、基于单个表按投影操作定义视图
createviewv_cusas
select客户号,客户名称
--使用
select*fromv_cus
--2)、基于单个表按选择操作定义视图
createviewv_orderas
where客户号='
select*fromv_order
--3)、基于单个表按选择和投影操作定义视图
createviewv_cussas
select客户名称,联系人,电话
C003'
select*fromv_cuss
--4)、基于多个表根据连接操作定义视图
createviewv_joinas
from客户join订购单
select*fromv_join
--5)、基于多个表根据嵌套查询定义视图
createviewv_itemas
select*fromv_item
--6)、查定义含有虚字段的视图
createviewv_items(订单号,序号,产品号,数量,总金额)as
selecti.*,i.数量*g.单价
from订单名细i,产品g
wherei.产品号=g.产品号
select*fromv_items
--在视图上查询
--在视图上插入
insertintov_cusvalues('
C012'
Google'
--在视图上更新
updatev_orderset订购日期='
2011-11-29'
--在视图上删除
deletefromv_cus
数据库系统及应用上机实验报告7
理解存储过程的概念,掌握存储过程的使用方法,加深对客户/服务器机制的理解。
存储过程的建立和执行。
--1、查询单价范围在X元到Y元内的产品信息
createprocsp_getgoods
@price1money,@price2money
as
where单价>
@price1and单价<
@price2
if@@ERROR=0
return0
else
return-1
--执行
declare@statusint
execute@status=sp_getgoods1000,6000
print@status
--2、查询在某年某月某日之后签订的订购单的客户信息
createprocsp_or_cus
@datesdatetime
@dates
declare@status1int
execute@status1=sp_or_cus'
2011-10-27'
print@status1
--3、将某产品的订购日期统一修改为一个指定日期
createprocsp_upd_date
@gdnamevarchar(40),@odatedatetime
update订购单
set订购日期=@odate
where产品名称=@gdname))
declare@status2int
execute@status2=sp_upd_date'
2011-10-23'
print@status2