2022年SQL数据库实验报告 .pdf
《2022年SQL数据库实验报告 .pdf》由会员分享,可在线阅读,更多相关《2022年SQL数据库实验报告 .pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、西 安 邮 电 大 学数据库课内实验报 告 书学 院 名 称:计算机学院学 生 姓 名:高丹专 业 名 称:计算机科学与技术班级:1106 班学号:04111196(22) 时间:2013.4 2013.5 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 20 页 - - - - - - - - - 实验 2 定义表和数据库完整性一、实验目的1了解 SQL Server 2000的基本数据类型、 空值的概念, 以及表的结构特点。2. 学会使用 T_SQL 语句和企业管理器
2、创建表结构和修改表结构。3. 学会使用 SQL Server 2000提供的数据完整性功能,并在创建表时定义表的数据完整性。通过实验进一步理解数据完整性的概念及分类。二、实验内容用 T_SQL 语句在 Market 数据库中创建客户基本信息表Cuetomers 、货品信息表 Goods 、订单信息表 Orders,它们的定义如下/* 基本表的定义与创建*/ CREATETABLECustomers ( CustomerIDintIDENTITY( 1, 1)PRIMARYKEY, CName varchar( 8)NOT NULL, Addressvarchar( 50 ), Cityvarc
3、har( 10 ), Telvarchar( 20 )UNIQUE , Companyvarchar( 50 ), Birthdaydatetime, TypetinyintDEFAULT 1 ); CREATETABLEGoods ( GoodsIDintCONSTRAINTC1 PRIMARYKEY, GoodsNamevarchar( 20 )NOT NULL, Pricemoney , Decriptionvarchar( 200 ), Storageint, Providervarchar( 50 ), StatustinyintDEFAULT ( 0) ); CREATETABLE
4、Orders ( OrderIDintIDENTITY( 1, 1)CONSTRAINTC2 PRIMARYKEY, GoodsIDintNOT NULLREFERENCES Goods ( GoodsID)ON DELETECASCADE, /* 表级完整性约束条件,参照约束为Goods(GoodID),删除时进行级联删除*/ CustomerIDintNOT NULLFOREIGNKEY( CustomerID) REFERENCES Customers( CustomerID)ON DELETENO ACTION , /* 表级完整性约束条件,参照约束为Customers(Custome
5、rID),删除时不删除参照表中的被引用行*/QuantityintNOT NULLCONSTRAINTC3 CHECK( Quantity 0 ), 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 20 页 - - - - - - - - - OrdersummoneyNOT NULL, OrderDatadatetimeDEFAULT ( getdate() ); 实验 3 表数据的插入、修改和删除一、实验目的掌握使用 T_SQL 语句和企业管理器对数据进行插入、 修改
6、和删除数据的操作,并体会数据完整性约束的作用,加深对数据完整性及其约束的理解。通过本实验,要熟练掌握INSERT 、UPDATE、DELETE 语句的语法和使用方法。二、实验内容(1)向数据库 Market 的各张表中输入一些记录。(2)使用 T_SQL 语句进行插入、修改和删除记录的操作。/* 在 Customers表中已有数据的基础上向各个表中插入数据*/INSERTINTOCustomers( CName, Address, City, Tel , Company , Birthday) VALUES( 王伟 , 长安区 , 西安 , 029005, 邮电大学 , 1995-02-13)
7、 /* 向Goods 表中插入数据*/ INSERTINTOGoods ( GoodsID, GoodsName , Price, Decription, Storage, Provider, Status) VALUES( 0001, 书包 , 45.00, 双肩包 , 20, 舒适 , 1) /* 向Goods 表中插入数据*/ INSERTINTOGoods ( GoodsID, GoodsName , Price, Decription, Storage, Provider, Status) VALUES( 0001, 书包 , 45.00, 双肩包 , 20, 舒适 , 1) /*
8、修改表中的数据*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 20 页 - - - - - - - - - UPDATEGoods/* 将Goods 表中的所有价钱都增加*/ SETPrice=Price+10 ; UPDATEOrders SETQuantity=5 WHERE CustomerID=2; /* 将Orders表中 CustomerID为的客户订单数量修改为*/ UPDATECustomers SETTel =0911536 ,Address= 长
9、安区 WHERE CustomerID=3; 修改后的表:/* 删除表中的一些数据*/ DELETEFROM Orders WHERE CustomerID=2; /* 删除了 CustomerID为的订单记录*/ 删除记录之后的表:实验 4 数据的简单查询和连接查询一、实验目的数据查询时数据库中最基本的操作,也是使用最频繁的操作,因此必须掌握 SQL的查询语句( SELECT 语句)的使用方法。本实验要求掌握简单表的数据查询、数据排序和多表操作时数据连接查询的操作方法。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整
10、理 - - - - - - - 第 4 页,共 20 页 - - - - - - - - - 二、实验内容(1)简单查询操作。该实验包括投影、选择条件表达、数据排序等。在数据库 Market 的客户表 Customers 、货品表 Goods 、订单表 Orders 中完成第 3 章习题 6 中(1)-(4)的查询。(2)连接查询操作。该实验包括等值连接、自然连接、一般连接(内连接 ) 、外连接、左外连接、右外连接和自然连接等。在数据库 Market 的客户表 Customers、货品表 Goods 、订单表 Orders 中完成第 3 章习题 6 中(5) 的查询。(一)简单查询操作1, 查
11、找所有西安客户的信息/* 查询 */ SELECT* FROM Customers WHERE City= 西安 ;/* 查找所有西安客户的信息*/2. 查找所有商品的名称,库存,价格以及表示打折价,按升序排列SELECTGoodsName , Storage, Price, 0.25 * PriceDiscount FromGoods ORDER BY PriceASC;/* 查找所有商品的名称,库存,价格以及表示打折价,按升序排列*/ 3. 查找商品名中包含“ 衣” 的商品编号,名称及价格SELECTGoodsID, GoodsName , Price FromGoods WHERE Go
12、odsNameLIKE% 衣% ;/* 查找商品名中包含“ 衣” 的商品编号,名称及价格*/ 4. 查询库存量大于小于的商品名称,库存和单价SELECTGoodsName , Storage, Price FromGoods WHERE Storage100 AND Storage2 实验 5 数据库的复杂查询一、实验目的进一步掌握 SELECT 语句的使用方法, 通过实验能够熟练地使用SELECT 语句。本实验要求掌握嵌套查询和统计查询的操作方法。二、实验内容在数据库 Market 的客户表 Customers、货品表 Goods 、订单表 Orders 中完成第3 章习题 6 中(6)-(
13、9)的查询。三、运行结果(1)查找订单编号,商品编号,客户编号,按日期对订单分组,显示订货数量不超的订单信息SELECTOrderID, GoodsID, CustomerID FROM Orders WHERE Quantity=30 ( SELECTOrderdata FROM Orders groupbyOrderdata);(7) 查找所有西安客户的订单信息,要求用不相关子查询完成SELECT* FROM Orders WHERE CustomerIDin ( SELECTCustomerID 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -
14、 - - - - - 名师精心整理 - - - - - - - 第 6 页,共 20 页 - - - - - - - - - FROM Customers WHERE City= 西安 );(8) 查找不是上海客户的订单信息SELECT* FROM Orders WHERE CustomerIDin ( SELECTCustomerID FROM Customers WHERE City 上海 ); (9) 查找所有西安客户的相关信息以及他们的订单情况SELECT* FROM Customers, Orders WHERE Customers. CustomerID=Orders. Custo
15、merIDandCity= 西安 ;实验 6 索引和视图一、实验目的(1) 理解索引和视图的概念。(2) 掌握索引的使用方法。(3) 掌握视图的定义和使用方法。二、实验内容在 Market 数据库中,完成第3 章习题 11 中(1) 的建立视图的操作,然后在该视图上完成第 3 章习题 11 中(2) 的查询操作。三、运行结果CREATEVIEWXIAN_ORDER ( OrderID, GoodsName , Quantity, CustomerID, Cname ) AS SELECTOrderID, GoodsName , Quantity, Orders. CustomerID, Cna
16、me FROM Orders, Goods , Customers WHERE Customers. CustomerID=Orders. CustomerIDANDGoods . GoodsID=Orders. OrderIDAND City= 西安 /* 创建西安客户订单的视图*/ SELECT* FROM XIAN_ORDER/* 查找西安客户的订单信息*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 20 页 - - - - - - - - - 实验 7 存储
17、过程一、实验目的理解存储过程的概念,掌握存储过程的使用方法。二、实验内容( 一) 在 Market 数据库中,完成第 4 章习题 5 中(1)-(4)创建存储过程的操作, 并使用 EXCEL 语句调用这些存储过程执行,观察他们的执行过程。( 二) 在 Market 数据库中,进一步完成以下操作。1创建一个存储过程Goods_Orders1,查看任何指定货物的订单情况,包括订单号、订货客户的姓名以及订货数量等( 要使用输入参数 ) 。2. 执行存储过程 Goods_Orders1时,如果没有给出参数, 则系统会报错, 如果希望不给出参数是能查出所有货品的订单,则可以用默认参数值来实现。 为此要求
18、创建另一个存储过程Goods_Orders2来完成此功能。3. 创建一个存储过程 Goods_OrderSum ,来获得某个货品的订单总额( 要使用输入以及输出参数 ) 。三、运行结果( 一)(1) 第 4 章习题 5 中(1)-(4)创建存储过程的操作结果如下/* 为上海客户建立存储过程*/ CREATEproceduresp_shanghai AS SELECT* FROM customersWHERE city= 上海 ; CREATEproceduresp_Goods GoodsIDchar( 20 ) AS SELECTGoods . GoodsID, GoodsName , Pri
19、ce, Provider, Storage, Status FROM Goods/* 创建存储过程sp_Goods,查看制定商品信息,商品编号作为输入参数*/ /* 以客户编号作为输入参数,订单总金额作为输出函数,建立存储过程*/ CREATEproceduresp_goodsum 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 20 页 - - - - - - - - - Cnumberchar( 10 ), Osum intoutput AS SELECTosum=O
20、rdersum FROM Orders WHERE CustomerID=cnumber * 编写存储过程sp_insertGoods,向 Goods中插入一条记录*/CREATEproceduresp_insertGoods GoodsIDint, GoodsNamevarchar( 20 ), Pricemoney , DecriptionVARCHAR( 200 ), Storageint, ProviderVARCHAR( 50 ),StatusTINYINT AS insertintoGoods values ( GoodsID , GoodsName , Price, Decrip
21、tion, Storage, Provider, Status); / 创建一个存储过程Goods_Orders1,查看任何指定货物的订单情况,包括订单号、订货客户的姓名以及订货数量等( 要使用输入参数)*/CREATEprocedureGoods_Orders1 GoodsIDint, OrderIDintoutput, CName varchar( 20 )output, Quantityintoutput, OrderSummoneyoutput, Orderdatadatetimeoutput AS SELECTOrderID, CName, Quantity, OrderSum, O
22、rderdata FROM Orders, Customers 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 20 页 - - - - - - - - - WHERE Customers. CustomerID=Orders. CustomerIDandGoodsID=GoodsID ; /*1. 执行存储过程 Goods_Orders1时,如果没有给出参数,则系统会报错,如果希望不给出参数是能查出所有货品的订单,则可以用默认参数值来实现。为此要求创建另一个存储过程Go
23、ods_Orders2来完成此功能CREATEprocedureGoods_Orders2 GoodsIDint=NULL AS IFGoodsIDisNULL BEGIN SELECTOrderID, CName, Quantity, OrderSum, Orderdata FROM Orders, Customers WHERE Customers. CustomerID=Orders. CustomerIDEND ELSE BEGIN SELECTOrderID, CName, Quantity, OrderSum, Orderdata FROM Orders, Customers WH
24、ERE Customers. CustomerID=Orders. CustomerIDandGoodsID=GoodsIDEND/*3.创建一个存储过程Goods_OrderSum,来获得某个货品的订单总额( 要使用输入以及输出参数 )*/ CREATEprocedureGoods_OrderSum GoodsNamevarchar( 20 ), OrderSummoneyoutput AS 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 20 页 - - - - -
25、 - - - - SELECTOrderSum FROM Orders, Goods WHERE Goods . GoodsID=Orders. GoodsIDandGoodsName =GoodsName ; 实验 8 触发器一、实验目的学习触发器的使用,体会触发器执行的时机,加深对触发器功能和作用的理解。二、实验内容(1) 在 Market 数据库中,完成第4 章习题 5 中(5)-(9)创建触发器的操作,然后在相关的表上执行INSERT 、UPDATE 或 DALETE 语句,观察他们的执行结果。三、运行结果名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年SQL数据库实验报告 2022 SQL 数据库 实验 报告
限制150内