数据库原理及应用-崔巍书后上机实验_第1页
数据库原理及应用-崔巍书后上机实验_第2页
数据库原理及应用-崔巍书后上机实验_第3页
数据库原理及应用-崔巍书后上机实验_第4页
数据库原理及应用-崔巍书后上机实验_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数 据 库 上 机 实 验 报 告 1一、实验目的:理解SQLServer数据库的存储结构,掌握SQLServer数据库的建立方法和维护方法。二、实验内容:在 SQLServer环境下建立数据库和维护数据库。三、程序源代码:--1CREATEDATABASEtest1ON(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)--2createdatabasetest2onprimary(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')--3createdatabasetest3onprimary(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')--4alterdatabasetest1addfile(name=test1new_dat,filename='f:\DB\data\test1newdat.ndf',size=5MB)--5alterdatabasetest1modifyfile(name=test1_dat,size=15MB)--6dropdatabasetest3四、实验数据、结果分析:若没有指定size,则默认为1MB,没有指定Maxsize,文件可以增长到磁盘满为止,没有指定Filegrowth,则默认为10%。五、总结:CREATEDATABASEdataname创建数据库ALTERDATABASEdatabase修改数据库DROPDATABASEdataname删除数据库数据库系统及应用 上机实验报告2一、实验目的:掌握表和索引的建立方法及表结构的修改方法,并实践DBMS提供的数据完整性功能,加深对数据完整性的理解。二、实验内容:建立表,修改表结构,建立索引,数据完整性描述。三.、程序源代码:createdatabase 订单管理createtable

客户(客户号char(8)primarykeycheck(客户名称varchar(40)notnull,联系人char(8),地址varchar(40),邮政编码char(6)check( 邮政编码

客户号like'[A-z]%'),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(订单号,序号))修改产品表--1altertable

产品

dropconstraintunialtertablealtertable

产品产品

altercolumn 规格说明varchar(40)addconstraintuniunique( 规格说明)--2altertable

订购单

add

完成日期

datetimedefaultnull--3altertable

订单名细

dropconstraintslaltertable

订单名细

addconstraintslcheck(

数量>0and

数量<1000)建立索引--1createindexcus_idxon 客户(客户名称)--2createuniqueindexgdn_nuion 产品(产品名称)--3创建表时,primarykey 隐式地创建了聚集索引,而一个表中只能有一个聚集索引。createclusteredindexoid_cluson 订购单(订单号)-- 失败--4createindexitem_idxon 订单名细(订单号,序号,数量desc)数据库系统及应用 上机实验报告3一、实验目的:为实验2建立的表设计一组数据进行插入、删除、修改等操作,并体会数据完整性约束的作用,加深对数据完整性及其约束的理解。二、实验内容:数据的插入、更新和删除。.、程序源代码:--1、部分记录insertinto 客户(客户号,客户名称)values('C009','Jinsertinto 产品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')--2deletefrom客户where客户号='C001'--受参照完整性约束deletefrom订购单where订单号='or01'--受参照完整性约束--3update订购单set订单号=nullwhere客户号='C001'-- 受实体完整性约束update订购单set客户号='C011'where订单号='or04'-- 受参照完整性约束update订购单set客户号='C009'where订单号='or07'-- 更新成功update订单名细set数量=0where序号='9'-- 受用户定义完整性约束--4update订单名细set数量=数量+10from订购单where订购单.订单号=订单名细.订单号and客户号='C002'--5deletefrom 订单名细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语句完成各种数据查询。三.、程序源代码:--1select*from客户--2select客户号from订购单--3select*from产品where单价>=5000--4select*from产品where单价>5000and产品名称='Macbook'--5select*from产品where单价>6000and产品名称in('Macbook','ipad')--6selectc.客户名称,c.联系人,c.电话,o.订单号from客户c,订购单owhereo.订购日期between'2011-10-30'and'2011-12-1'andc.客户号=o.客户号--7selectdistinct客户名称,联系人,电话from客户c,产品g,订购单o,订单名细dwhere产品名称='iphone'andg.产品号=d.产品号andd.订单号=o.订单号ando.客户号=c.客户号--8select*from订单名细where产品号in(select产品号from产品where产品名称='Macbook')--9select*from订购单where订单号in(select订单号from订单名细where数量>10)--10select*from产品where单价=(select单价from产品where规格说明='4s')--11select*from产品where单价between1000and5000--12select*from客户where客户名称like'%集团'--13select*from 客户where 客户名称--14select*from 产品orderby 单价--15select*from产品

notlike'%

商场'orderby 产品名称,单价--16selectCOUNT(产品号)from产品--17selectSUM(数量)from订单名细where产品号=(select 产品号from产品where产品名称

='ipad')--18selectSUM(数量*单价)总金额from产品,订单名细where产品.产品号=订单名细.产品号and产品名称='ipodnano'--19selectCOUNT(distinct订单号)as订购单个数,AVG(数量*单价)as平均金额from产品,订单名细where产品.产品号=订单名细.产品号--20select订单号,COUNT(订单号)项目数,SUM(g.单价*o.数量)总金额from产品g,订单名细owhereg.产品号=o.产品号groupby 订单号--21selecti. 订单号,MAX(数量*单价)最高金额,MIN(数量*单价) 最低金额from订购单o,产品g,订单名细iwhereo.订单号=i.订单号andg.产品号=i.产品号and产品名称='iphone'groupbyi. 订单号--22select 订单号,COUNT(*)项目数,AVG(数量*单价)平均金额from产品g,订单名细iwhereg.产品号=i.产品号groupby 订单号havingCOUNT(*)>=2--23select 客户名称,联系人,电话,订单号from客户c,订购单owherec.客户号=o.客户号and订购日期isnull--24select客户名称,联系人,电话,订单号,订购日期from客户,订购单where客户.客户号=订购单.客户号and订购日期>'2011-10-10'--25select*from产品outawhere单价=(selectMAX(单价)from产品innerawhereouta.产品名称=innera.产品名称)--26select客户号from客户wherenotexists(select*from订购单where客户.客户号=订购单.客户号)--27select*from客户whereexists(select*from订购单where客户.客户号=订购单.客户号)--28select产品名称from产品where单价=any(select单价/2from产品)--29select产品名称from产品where单价>all(selectmax(单价)from产品)--30--crossselect*from客户crossjoin订购单where客户.客户号=订购单.客户号--innerselect*from客户innerjoin订购单on客户.客户号=订购单.客户号--leftselect客户.*,订单号,订购日期from客户leftjoin订购单on客户.客户号=订购单.客户号--rightselect 客户.*,订单号,订购日期from客户rightjoin 订购单on客户.客户号=订购单.客户号--fullselect 客户.*,订单号,订购日期from客户fulljoin 订购单on客户.客户号=订购单.客户号数据库系统及应用 上机实验报告5一、实验目的:理解视图的概念,掌握视图的使用方法。二、实验内容:定义视图,并在视图上完成查询、插入、更新和删除操作。.、程序源代码:--1--1)、基于单个表按投影操作定义视图createviewv_cusasselect客户号,客户名称from客户--使用select*fromv_cus--2)、基于单个表按选择操作定义视图createviewv_orderasselect*from订购单where客户号='C001'使用select*fromv_order--3)、基于单个表按选择和投影操作定义视图createviewv_cussasselect 客户名称,联系人,电话from客户where客户号='C003'使用select*fromv_cuss--4)、基于多个表根据连接操作定义视图createviewv_joinasselect 客户.*,订单号,订购日期from客户join 订购单on客户.客户号=订购单.客户号使用select*fromv_join--5)、基于多个表根据嵌套查询定义视图createviewv_itemasselect*from 订单名细where产品号in(select 产品号from产品where产品名称='Macbook')--使用select*fromv_item--6)、查定义含有虚字段的视图createviewv_items( 订单号,序号,产品号,数量,总金额)asselecti.*,i. 数量*g.单价from订单名细i, 产品gwherei. 产品号=g.产品号--使用select*fromv_items--2--在视图上查询select*fromv_items--在视图上插入insertintov_cusvalues('C012','Google')--在视图上更新updatev_orderset 订购日期='2011-11-29'--在视图上删除deletefromv_cusw

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论