实验四 约束和存储过程

实验四 约束和存储过程

ID:39577513

大小:262.50 KB

页数:10页

时间:2019-07-06

实验四  约束和存储过程_第1页
实验四  约束和存储过程_第2页
实验四  约束和存储过程_第3页
实验四  约束和存储过程_第4页
实验四  约束和存储过程_第5页
资源描述:

《实验四 约束和存储过程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验四约束和存储过程一、实验目的和要求1、掌握使用Transact_SQL语句创建、删除约束的方法。2、掌握使用Transact_SQL语句创建、修改、删除、查看存储过程的方法。二、实验内容和步骤1、现有一个商店的数据库,记录客户及其购物情况,由以下四个关系组成:1)客户表Customer:存储客户信息,包括客户号CustomerID、客户姓名Cname、地址Address、电子邮件Email、性别Gender、身份证号CardID、电话号码TelCode。2)商品表Goods:存储商品信息,包括商品号GoodsID、商品名称GoodsName、单价UnitPric

2、e、商品类别Category。3)订单表Orders:存储客户与订单之间的关系,包括订单号、客户号、下单日期。4)订单商品表OrderGoods:存储每个订单中包含的商品信息,包括订单号、商品号、商品数量。(1)请用SQL语句建表,并在定义中进行如下声明:每个表的主外键;客户的姓名不能为null;电子邮件中必须唯一,且必须包含@和.;客户的性别必须是男或者女,默认为男;商品单价必须大于0;购买数量必须在到0之间30;(2)设置商品表Goods的“商品名字段不能为空”。(3)设置客户表Customer的“身份证号不能重复”。(4)设置客户表Customer的“客户的住

3、址只能是海淀、朝阳和东城。”(5)设置Orders的下单日期默认值为当前日期。(5)设置OrderGoods与Customer、Goods之间的参照完整性约束的删除和更新的方式为级联删除和级联更新。(6)在该数据库中创建一个存储过程GetTotalPrice,实现根据客户名,查找该客户的订单总额。(本题为选作。提示:该题中涉及到游标的知识,我们将结合触发器介绍游标,有余力的同学可以先自行查阅资料)2、在学生成绩数据库中,根据要求创建存储过程。(1)创建名为PrSno的存储过程,根据学生学号,查询该生的选课情况,其中包括学生学号、姓名、性别、课程号、课程名和成绩。执行

4、该存储过程,查询学号为“99001”的选课学生情况。(2)创建存储过程PrCourseName。根据课程名,查询课程名和该课程的平均成绩。如果执行时,没有带参数,则显示以“数据”开头的课程信息。(3)创建名为PrSno2的存储过程,查询某同学所有课程成绩。如果存在不及格课程,则将该门课程的成绩修改为60分;否则显示所有课程成绩。(4)创建名为PrSno3的存储过程。参数是学号,输出信息是指定学号的选课门数、平均分、最高分、最低分。并执行该存储过程,输出学号为‘99001’的相关信息。3、已知用户表(用户名,用户密码)。请创建该表,并编写一个实现用户注册的存储过程。当

5、用户名不存在时,注册成功,存储过程返回0;当用户名已存在,注册失败,存储过程返回1。一、实验环境1.Windows7+SQL二、调试过程三、实验结果一、总结通过此次实验:1.本人熟悉了check,unique,default等约束的使用;2.了解了ondeletecascade级联删除和onupdatecascade级联更新3.知道创建存储过程的基本结构和语法4.在实验过程中部分细节的调试也使我对代码的把握及语义的实现有了更深的认识二、附录--客户表CustomercreatetableCustomer(CustomerIDintprimarykey,--主键Cna

6、mevarchar(20)notnull,--客户的姓名不能为nullAddressvarchar(50)check(Address='海淀'orAddress='朝阳'orAddress='东城'),--客户的住址只能是海淀、朝阳和东城Emailvarchar(50)check(Emaillike'%@%.%'),--电子邮件中必须唯一,且必须包含@和.Genderchar(2)check(Gender='男'orGender='女')default'男',--客户的性别必须是男或者女,默认为男CardIDintunique,--身份证号不能重复TelCodein

7、t)--商品表GoodscreatetableGoods(GoodsIDintprimarykey,--商品号,主键GoodsNamevarchar(20)notnull,--商品名字段不能为空UnitPricemoneycheck(UnitPrice>0),--商品单价必须大于Categoryvarchar(20)--商品类别)--订单表OrderscreatetableOrders(OrderIDintprimarykey,--订单号,主键CustomerIDintforeignkeyreferencesCustomer(CustomerID)ondelet

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。