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

上传人:b****1 文档编号:7745 上传时间:2023-04-28 格式:DOCX 页数:19 大小:43.35KB
下载 相关 举报
数据库原理与应用崔巍书后上机实验.docx_第1页
第1页 / 共19页
数据库原理与应用崔巍书后上机实验.docx_第2页
第2页 / 共19页
数据库原理与应用崔巍书后上机实验.docx_第3页
第3页 / 共19页
数据库原理与应用崔巍书后上机实验.docx_第4页
第4页 / 共19页
数据库原理与应用崔巍书后上机实验.docx_第5页
第5页 / 共19页
数据库原理与应用崔巍书后上机实验.docx_第6页
第6页 / 共19页
数据库原理与应用崔巍书后上机实验.docx_第7页
第7页 / 共19页
数据库原理与应用崔巍书后上机实验.docx_第8页
第8页 / 共19页
数据库原理与应用崔巍书后上机实验.docx_第9页
第9页 / 共19页
数据库原理与应用崔巍书后上机实验.docx_第10页
第10页 / 共19页
数据库原理与应用崔巍书后上机实验.docx_第11页
第11页 / 共19页
数据库原理与应用崔巍书后上机实验.docx_第12页
第12页 / 共19页
数据库原理与应用崔巍书后上机实验.docx_第13页
第13页 / 共19页
数据库原理与应用崔巍书后上机实验.docx_第14页
第14页 / 共19页
数据库原理与应用崔巍书后上机实验.docx_第15页
第15页 / 共19页
数据库原理与应用崔巍书后上机实验.docx_第16页
第16页 / 共19页
数据库原理与应用崔巍书后上机实验.docx_第17页
第17页 / 共19页
数据库原理与应用崔巍书后上机实验.docx_第18页
第18页 / 共19页
数据库原理与应用崔巍书后上机实验.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

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

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

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

数据库 上机实验报告1

一、实验目的:

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

二、实验内容:

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

三、程序源代码:

--1

CREATE DATABASE test1

ON 

(NAME=test1_dat,

  FILENAME='f:

\DB\data\test1dat.mdf',

  SIZE=10,

  MAXSIZE=50,

  FILEGROWTH=5)

LOG ON

(NAME=order_log,

  FILENAME='f:

\DB\data\test1log.ldf',

  SIZE=5MB,

  MAXSIZE=25MB,

  FILEGROWTH=5MB) 

--2

create database test2

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

log on

(name=test2_log1,

filename='f:

\DB\data\test2log1.ldf'),

(name=test2_log2,

filename='f:

\DB\data\test2log2.ldf')

--3

create database test3

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

log on

(name=test3_log,

filename='f:

\DB\data\test3log.ldf')

--4

alter database test1

add file

(name=test1new_dat,

filename='f:

\DB\data\test1newdat.ndf',

size=5MB)

--5

alter database test1

modify file

(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 uni unique,

单价 smallmoney constraint 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 default null

--3

alter table 订单名细 drop constraint sl

alter table 订单名细 add constraint sl check(数量>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_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-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2