SQL数据库实验报告Word文档格式.docx

上传人:b****4 文档编号:6718670 上传时间:2023-05-07 格式:DOCX 页数:27 大小:585.02KB
下载 相关 举报
SQL数据库实验报告Word文档格式.docx_第1页
第1页 / 共27页
SQL数据库实验报告Word文档格式.docx_第2页
第2页 / 共27页
SQL数据库实验报告Word文档格式.docx_第3页
第3页 / 共27页
SQL数据库实验报告Word文档格式.docx_第4页
第4页 / 共27页
SQL数据库实验报告Word文档格式.docx_第5页
第5页 / 共27页
SQL数据库实验报告Word文档格式.docx_第6页
第6页 / 共27页
SQL数据库实验报告Word文档格式.docx_第7页
第7页 / 共27页
SQL数据库实验报告Word文档格式.docx_第8页
第8页 / 共27页
SQL数据库实验报告Word文档格式.docx_第9页
第9页 / 共27页
SQL数据库实验报告Word文档格式.docx_第10页
第10页 / 共27页
SQL数据库实验报告Word文档格式.docx_第11页
第11页 / 共27页
SQL数据库实验报告Word文档格式.docx_第12页
第12页 / 共27页
SQL数据库实验报告Word文档格式.docx_第13页
第13页 / 共27页
SQL数据库实验报告Word文档格式.docx_第14页
第14页 / 共27页
SQL数据库实验报告Word文档格式.docx_第15页
第15页 / 共27页
SQL数据库实验报告Word文档格式.docx_第16页
第16页 / 共27页
SQL数据库实验报告Word文档格式.docx_第17页
第17页 / 共27页
SQL数据库实验报告Word文档格式.docx_第18页
第18页 / 共27页
SQL数据库实验报告Word文档格式.docx_第19页
第19页 / 共27页
SQL数据库实验报告Word文档格式.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

SQL数据库实验报告Word文档格式.docx

《SQL数据库实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《SQL数据库实验报告Word文档格式.docx(27页珍藏版)》请在冰点文库上搜索。

SQL数据库实验报告Word文档格式.docx

CREATETABLECustomers

CustomerIDintIDENTITY(1,1)PRIMARYKEY,

CNamevarchar(8)NOTNULL,

Addressvarchar(50),

Cityvarchar(10),

Telvarchar(20)UNIQUE,

Companyvarchar(50),

Birthdaydatetime,

TypetinyintDEFAULT1

);

CREATETABLEGoods

GoodsIDintCONSTRAINTC1PRIMARYKEY,

GoodsNamevarchar(20)NOTNULL,

Pricemoney,

Decriptionvarchar(200),

Storageint,

Providervarchar(50),

StatustinyintDEFAULT(0)

CREATETABLEOrders

OrderIDintIDENTITY(1,1)CONSTRAINTC2PRIMARYKEY,

GoodsIDintNOTNULLREFERENCESGoods(GoodsID)ONDELETECASCADE,

*表级完整性约束条件,参照约束为Goods(GoodID),删除时进行级联删除*

CustomerIDintNOTNULLFOREIGNKEY(CustomerID)

REFERENCESCustomers(CustomerID)ONDELETENOACTION,

*表级完整性约束条件,参照约束为Customers(CustomerID),删除时不删除参照表中的被引用行*

QuantityintNOTNULLCONSTRAINTC3CHECK(Quantity>

0),

OrdersummoneyNOTNULL,

OrderDatadatetimeDEFAULT(getdate())

实验3表数据的插入、修改和删除

掌握使用T_SQL语句和企业管理器对数据进行插入、修改和删除数据的操作,并体会数据完整性约束的作用,加深对数据完整性及其约束的理解。

通过本实验,要熟练掌握INSERT、UPDATE、DELETE语句的语法和使用方法。

(1)向数据库Market的各张表中输入一些记录。

(2)使用T_SQL语句进行插入、修改和删除记录的操作。

*在Customers表中已有数据的基础上向各个表中插入数据*

INSERTINTOCustomers(CName,Address,City,Tel,Company,Birthday)

VALUES('

王伟'

'

长安区'

西安'

029005'

邮电大学'

'

*向Goods表中插入数据*

INSERTINTOGoods(GoodsID,GoodsName,Price,Decription,Storage,Provider,Status)

0001'

书包'

45.00,'

双肩包'

20'

舒适'

1'

*修改表中的数据*

UPDATEGoods*将Goods表中的所有价钱都增加*

SETPrice=Price+10;

UPDATEOrders

SETQuantity=5

WHERECustomerID=2;

*将Orders表中CustomerID为的客户订单数量修改为*

UPDATECustomers

SETTel=,Address='

WHERECustomerID=3;

修改后的表:

*删除表中的一些数据*

DELETEFROMOrders

*删除了CustomerID为的订单记录*

删除记录之后的表:

实验4数据的简单查询和连接查询

数据查询时数据库中最基本的操作,也是使用最频繁的操作,因此必须掌握SQL的查询语句(SELECT语句)的使用方法。

本实验要求掌握简单表的数据查询、数据排序和多表操作时数据连接查询的操作方法。

(1)简单查询操作。

该实验包括投影、选择条件表达、数据排序等。

在数据库Market的客户表Customers、货品表Goods、订单表Orders中完成第3章习题6中

(1)-(4)的查询。

(2)连接查询操作。

该实验包括等值连接、自然连接、一般连接(内连接)、外连接、左外连接、右外连接和自然连接等。

在数据库Market的客户表Customers、货品表Goods、订单表Orders中完成第3章习题6中(5)的查询。

(一)简单查询操作

1,查找所有西安客户的信息

*查询*

SELECT*

FROMCustomers

WHERECity='

;

*查找所有西安客户的信息*

2.查找所有商品的名称,库存,价格以及表示打折价,按升序排列

SELECTGoodsName,Storage,Price,0.25*PriceDiscount

FromGoods

ORDERBYPriceASC;

*查找所有商品的名称,库存,价格以及表示打折价,按升序排列*

3.查找商品名中包含“衣”的商品编号,名称及价格

SELECTGoodsID,GoodsName,Price

WHEREGoodsNameLIKE'

%衣%'

*查找商品名中包含“衣”的商品编号,名称及价格*

4.查询库存量大于小于的商品名称,库存和单价

SELECTGoodsName,Storage,Price

WHEREStorage>

100ANDStorage<

500;

*查询库存量大于小于的商品名称,库存和单价*

(二)连接查询操作

查找2011年1月1日至2012年1月1日期间,订货金额大于2的所有订单的客户姓名,商品名称,单价,订货数量和订货金额

*连接查询*

SELECTGoodsname,Cname,Price,Quantity,Ordersum

FROMCustomers,Goods,Orders

WHERECustomers.CustomerID=Orders.CustomerIDand

Goods.GoodsID=Orders.OrderIDand

Orderdatabetween'

'

and'

andQuantity>

2

实验5数据库的复杂查询

进一步掌握SELECT语句的使用方法,通过实验能够熟练地使用SELECT语句。

本实验要求掌握嵌套查询和统计查询的操作方法。

在数据库Market的客户表Customers、货品表Goods、订单表Orders中完成第3章习题6中(6)-(9)的查询。

三、运行结果

(1)查找订单编号,商品编号,客户编号,按日期对订单分组,显示订货数量不超的订单信息

SELECTOrderID,GoodsID,CustomerID

FROMOrders

WHEREQuantity<

=30

(SELECTOrderdata

groupbyOrderdata);

(7)查找所有西安客户的订单信息,要求用不相关子查询完成

WHERECustomerIDin

(SELECTCustomerID

(8)查找不是上海客户的订单信息

WHERECity<

>

上海'

(9)查找所有西安客户的相关信息以及他们的订单情况

FROMCustomers,Orders

WHERECustomers.CustomerID=Orders.CustomerIDandCity='

实验6索引和视图

(1)理解索引和视图的概念。

(2)掌握索引的使用方法。

(3)掌握视图的定义和使用方法。

在Market数据库中,完成第3章习题11中

(1)的建立视图的操作,然后在该视图上完成第3章习题11中

(2)的查询操作。

CREATEVIEWXIAN_ORDER(OrderID,GoodsName,Quantity,CustomerID,Cname)

AS

SELECTOrderID,GoodsName,Quantity,Orders.CustomerID,Cname

FROMOrders,Goods,Customers

WHERECustomers.CustomerID=Orders.CustomerIDANDGoods.GoodsID=Orders.OrderIDANDCity='

*创建西安客户订单的视图*

FROMXIAN_ORDER*查找西安客户的订单信息*

实验7存储过程

理解存储过程的概念,掌握存储过程的使用方法。

(一)在Market数据库中,完成第4章习题5中

(1)-(4)创建存储过程的操作,并使用EXCEL语句调用这些存储过程执行,观察他们的执行过程。

(二)在Market数据库中,进一步完成以下操作。

1.创建一个存储过程Goods_Orders1,查看任何指定货物的订单情况,包括订单号、订货客户的姓名以及订货数量等(要使用输入参数)。

2.执行存储过程Goods_Orders1时,如果没有给出参数,则系统会报错,如果希望不给出参数是能查出所有货品的订单,则可以用默认参数值来实现。

为此要求创建另一个存储过程Goods_Orders2来完成此功能。

3.创建一个存储过程Goods_OrderSum,来获得某个货品的订单总额(要使用输入以及输出参数)。

(一)

(1)第4章习题5中

(1)-(4)创建存储过程的操作结果如下

*为上海客户建立存储过程*

CREATEproceduresp_shanghai

FROMcustomers

WHEREcity='

CREATEproceduresp_Goods

@GoodsIDchar(20)

ASSELECTGoods.GoodsID,GoodsName,Price,Provider,Storage,Status

FROMGoods

*创建存储过程sp_Goods,查看制定商品信息,商品编号作为输入参数*

*以客户编号作为输入参数,订单总金额作为输出函数,建立存储过程*

CREATEproceduresp_goodsum

@Cnumberchar(10),

@Osumintoutput

SELECT@osum=Ordersum

WHERECustomerID=@cnumber

*编写存储过程sp_insertGoods,向Goods中插入一条记录*

CREATEproceduresp_insertGoods

@GoodsIDvarchar(20)VARCHAR(200)VARCHAR(50),@StatusTINYINT

insertintoGoods

values(@@@@Status);

创建一个存储过程Goods_Orders1,查看任何指定货物的订单情况,包括订单号、订货客户的姓名以及订货数量等(要使用输入参数)*

CREATEprocedureGoods_Orders1

@GoodsIDint,

@OrderIDintvarchar(20)intmoneydatetimeoutput

SELECTOrderID,CName,Quantity,OrderSum,Orderdata

FROMOrders,Customers

WHERECustomers.CustomerID=Orders.CustomerIDandGoodsID=@GoodsID;

*1.

.执行存储过程Goods_Orders1时,如果没有给出参数,则系统会报错,如果希望不给出参数是能查出所有货品的订单,

则可以用默认参数值来实现。

为此要求创建另一个存储过程Goods_Orders2来完成此功能

CREATEprocedureGoods_Orders2

@GoodsIDint=NULL

IF@GoodsIDisNULL

BEGIN

SELECTOrderID,CName,Quantity,OrderSum,Orderdata

FROMOrders,Customers

WHERECustomers.CustomerID=Orders.CustomerID

END

ELSE

WHERECustomers.CustomerID=Orders.CustomerIDandGoodsID=@GoodsID

END

*3.创建一个存储过程Goods_OrderSum,来获得某个货品的订单总额(要使用输入以及输出参数)*

CREATEprocedureGoods_OrderSum

@GoodsNamevarchar(20),

@OrderSummoneyoutput

SELECTOrderSum

FROMOrders,Goods

WHEREGoods.GoodsID=Orders.GoodsIDandGoodsName=@GoodsName;

实验8触发器

学习触发器的使用,体会触发器执行的时机,加深对触发器功能和作用的理解。

(1)在Market数据库中,完成第4章习题5中(5)-(9)创建触发器的操作,然后在相关的表上执行INSERT、UPDATE或DALETE语句,观察他们的执行结果。

五.代码设计技巧及体会

首先,我觉得自己使用SQL就比较生疏,刚开始不是很了解,可是通过几次上机试验后对于程序运行环境有了进一步的了解,为写代码和使用SQL打下了基础,第一次写了这么多的语句,遇到了很多困难,有些在书上找不到,需要自己认真思考,根据书上的例子进行变通,不会的时候就请教了老师或者同学,解决了一大部分的问题,自己对于SQL语句也有更进一步的了解,到后来能够自己去写代码而不用参考教材,这其中真的学到了不少东西,不足的地方还是有的,有一小部分的问题还等待在日后的学习中去解决。

源代码:

惠敏'

海淀区'

北京'

010001'

中国农业大学'

王二小'

浦东新区'

021001'

上海商学院'

周颖'

临潼区'

029006'

西安科技大学'

吴起'

槐荫区'

山东'

058436'

山东师范'

0002'

水杯'

32.00,'

塑料'

322'

特百惠'

0003'

上衣'

100.22,'

长款'

18'

春季适用'

0004'

风衣'

128.22,'

28'

秋季适用'

0005'

短裤'

56.88,'

超短'

50'

夏季适用'

*向Orders表中插入数据,其中有错误数据的测试*

INSERTINTOOrders(GoodsID,CustomerID,Quantity,Ordersum,OrderData)

4'

2'

3'

5'

10'

INSERTINTOOrders(GoodsID,CustomerID,Quantity,Ordersum,OrderData)*该语句错误,应为赋给OrderID的值没有参照表Orders*

0006'

UPDATEGoods*将Goods表中的所有价钱都增加10*

SETQua

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

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2023 冰点文库 网站版权所有

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