数据库原理及应用崔巍书后上机实验.docx

上传人:b****7 文档编号:25293357 上传时间:2023-06-07 格式:DOCX 页数:19 大小:24.75KB
下载 相关 举报
数据库原理及应用崔巍书后上机实验.docx_第1页
第1页 / 共19页
数据库原理及应用崔巍书后上机实验.docx_第2页
第2页 / 共19页
数据库原理及应用崔巍书后上机实验.docx_第3页
第3页 / 共19页
数据库原理及应用崔巍书后上机实验.docx_第4页
第4页 / 共19页
数据库原理及应用崔巍书后上机实验.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

数据库原理及应用崔巍书后上机实验.docx

《数据库原理及应用崔巍书后上机实验.docx》由会员分享,可在线阅读,更多相关《数据库原理及应用崔巍书后上机实验.docx(19页珍藏版)》请在冰豆网上搜索。

数据库原理及应用崔巍书后上机实验.docx

数据库原理及应用崔巍书后上机实验

集团标准化工作小组#Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

 

数据库原理及应用崔巍书后上机实验

数据库上机实验报告1

一、实验目的:

理解SQLServer数据库的存储结构,掌握SQLServer数据库的建立方法和维护方法。

二、实验内容:

在SQLServer环境下建立数据库和维护数据库。

三、程序源代码:

--1

CREATEDATABASEtest1

ON

(NAME=test1_dat,

FILENAME='f:

\DB\data\',

SIZE=10,

MAXSIZE=50,

FILEGROWTH=5)

LOGON

(NAME=order_log,

FILENAME='f:

\DB\data\',

SIZE=5MB,

MAXSIZE=25MB,

FILEGROWTH=5MB)

--2

createdatabasetest2

on

primary

(name=test2_dat1,

filename='f:

\DB\data\'),

(name=test2_dat2,

filename='f:

\DB\data\'),

(name=test2_dat3,

filename='f:

\DB\data\')

logon

(name=test2_log1,

filename='f:

\DB\data\'),

(name=test2_log2,

filename='f:

\DB\data\')

--3

createdatabasetest3

on

primary

(name=test3_dat1,

filename='f:

\DB\data\'),

(name=test3_dat2,

filename='f:

\DB\data\'),

filegroupg2

(name=test3_dat3,

filename='d:

\DB\data\'),

(name=test3_dat4,

filename='d:

\DB\data\'),

filegroupg3

(name=test3_dat5,

filename='e:

\DB\data\'),

(name=test3_dat6,

filename='e:

\DB\data\')

logon

(name=test3_log,

filename='f:

\DB\data\')

--4

alterdatabasetest1

addfile

(name=test1new_dat,

filename='f:

\DB\data\',

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('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'

数据库系统及应用上机实验报告7

一、实验目的:

理解存储过程的概念,掌握存储过程的使用方法,加深对客户/服务器机制的理解。

二、实验内容:

存储过程的建立和执行。

三.、程序源代码:

--1、查询单价范围在X元到Y元内的产品信息

createprocsp_getgoods

@price1money,@price2money

as

select*

from产品

where单价>@price1and单价<@price2

if@@ERROR=0

return0

else

return-1

--执行

declare@statusint

execute@status=sp_getgoods1000,6000

print@status

--2、查询在某年某月某日之后签订的订购单的客户信息

createprocsp_or_cus

@datesdatetime

as

select客户名称,联系人,电话,订单号,订购日期

from客户,订购单

where客户.客户号=订购单.客户号

and订购日期>@dates

if@@ERROR=0

return0

else

return-1

--执行

declare@status1int

execute@status1=sp_or_cus'2011-10-27'

print@status1

--3、将某产品的订购日期统一修改为一个指定日期

createprocsp_upd_date

@gdnamevarchar(40),@odatedatetime

as

update订购单

set订购日期=@odate

where订单号in(

select订单号

from订单名细

where产品号in(

select产品号

from产品

where产品名称=@gdname))

if@@ERROR=0

return0

else

return-1

--执行

declare@status2int

execute@status2=sp_upd_date'iphone','2011-10-23'

print@status2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1