sql-server数据库实验代码

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

重庆交通大学学生实验报告实验课程名称数据库应用与设计开课实验室xxxxxxxxx学院xxx年级2011专业班xxxx学生姓名xxxxxx学号xxxxxx开课时间2013至2014学年第2学期总成绩教师签名实验2建立表和定义完整性约束实验名称建立模式、表和定义完整性约束实验内容在实验一建立的数据库的基础上,参照下图和下表建立表并定义完整性约束。仓库号城市面积仓库职工号经理工资职工供应商订购单订购单明细表名字段名字段类型关键字约束说明仓库仓库号6个字符是前2位为英文,后4位为数字字符城市10个字符唯一,不允许为空面积数值大于等于50职工职工号8个字符是前6位参照仓库表的仓库号,后2位为数字字符经理参照职工号,说明该职工的经理是谁,允许空值工资货币大于等于1000,小于等于10000供应商供应商号4个字符是首位为大写字母S,后三位为数字字符供应商名16个字符地址30个字符订购单职工号参照职工表得职工号,不允许空值供应商号参照供应商表得供应商号,允许空值订购单号6个字符是前2位为英文大写字母OR,后四位为数字字符订购日期日期默认为当前日期金额货币默认空值,根据订购单明细的单价和数量计算订购单订购单号是参照订购单表的订购单号,不允许空值序号2位数字是产品名称20个字符供应商号供应商名地址职工号供应商号订购单号订购日期金额订购单号序号产品名称单价数量明细单价货币大于0,默认空值数量整数大于0,不允许空值实验目的熟练掌握表的建立和数据完整性速描定义方法,实践DBMS提供的数据完整性功能,加深对数据完整性的理解。实验方法在实验一建立数据库的基础上用CREATESCHEMA命令建立模式,用CREATETABLE命令建立表并定义数据完整性约束,用ALTERTABLE命令修改表结构。实验要求1、用CREATESCHEMA命令建立模式(自己命名模式名称)。2、在定义的模式下参照图1和表1使用CREATETABLE命令建立表并定义完整性约束。3、使用ALTERTABLE命令按如下要求修改表结构:a)为订购单增加一个新的字段“完成日期”,类型为日期时间型,默认是空值。b)为订单明细表的“数量”字段重新定义约束:大于0、小于等于1000的正整数,不允许为空值。c)将供应商表的供应商名字段的类型修改为varchar(30)。实验步骤createtable仓库(仓库号nchar(6)primarykeycheck(仓库号like'[A-Z][A-Z][0-9][0-9][0-9][0-9]'),城市nchar(10)notnullunique,面积floatcheck(面积=50));createtable职工(职工号nchar(8)primarykeycheck(职工号like'____[0-9][0-9]'),仓库号asconvert(nchar(6),substring(职工号,1,6))persistednotnullforeignkeyreferences仓库(仓库号),经理nchar(8)foreignkeyreferences职工(职工号),工资moneycheck(工资=1000and工资=10000));createtable供应商(供应商号nchar(4)primarykeycheck(供应商号like'S[0-9][0-9][0-9]'),供应商名nchar(16),地址nchar(30));createtable订购单(职工号nchar(8)notnullforeignkeyreferences职工(职工号),供应商名nchar(16),订购单号nchar(6)primarykeycheck(订购单号like'OR[0-9][0-9][0-9][0-9]'),订购日期datetimedefaultgetdate(),金额moneydefaultnull);createtable订购单明细(订购单号nchar(6)notnullforeignkeyreferences订购单(订购单号),序号tinyint,primarykey(订购单号,序号),产品名称nchar(20),单价moneydefaultnullcheck(单价0),数量intnotnullcheck(数量0));createtriggerdgdmxon订购单明细afterinsertasbegindeclare@订购单号nchar(6)select@订购单号=订购单号frominsertedupdate订购单set金额=(selectsum(单价*数量)from订购单明细where订购单号=@订购单号)where订购单号=@订购单号end实验3数据操作和完整性约束的作用实验名称数据操作笔完整性约束的作用实验内容在实验二的基础上完成数据的插入操作,然后进行部分修改和删除操作,在这些操作中体会数据完整性约束的作用。实验目的熟练掌握SQL的INSERT,UPDATE和DELETE命令,深刻理解数据完整性约束的作用以及约束时机。实验方法在实验二的基础上首先用INSERT命令插入各个表的记录,然后使用UPDATE和DELETE命令对部分记录进行修改和删除操作。实验要求1、自行设计各个表的记录,其中仓库表至少5条记录,职工表至少10条记录、供应商表至少5条记录,订购单表至少20条记录,订购单明细表至少50条记录。2、使用INSERT命令完成记录的插入操作,要求分别设计若干违反实体完整性、参照完整性和用户定义完整性约束的插入操作,并分析原因。3、设计若干删除操作,体会执行删除操作时检查参照完整性规则的效果(要求涉及拒绝删除、空值删除和级联删除等不同的处理方式)。4、设计若干更新操作,体会执行更新操作时检查实体完整性规则、参照完整性规则和用户定义完整性规则的效果。5、将x城市仓库的职工的工资提高10%。6、用UPDATE语句完成订购单表金额字段的计算(提示:某张订购单的金额为该订购单所有订购项目(订购单明细)单价乘以数量的总和)。7、设计2~3个删除操作,它需要另外一个表中的数据作为删除条件(例如,按指定的供应商名称删除订购单记录)。8、在实验报告中给出具体的记录和设计的操作,并针对各种数据完整性检查,给出具体的分析和讨论。实验步骤insertinto仓库(仓库号,城市,面积)values('GH1111','重庆',99);insertinto仓库(仓库号,城市,面积)values('GH2222','北京',199);insertinto仓库(仓库号,城市,面积)values('GH3333','上海',299);insertinto仓库(仓库号,城市,面积)values('GH4444','厦门',399);insertinto仓库(仓库号,城市,面积)values('GH5555','杭州',499);insertinto职工(职工号,经理,工资)values('GH111111','GH111111',9999);insertinto职工(职工号,经理,工资)values('GH111122','GH111122',9999);insertinto职工(职工号,经理,工资)values('GH222211','GH222211',9999);insertinto职工(职工号,经理,工资)values('GH222222','GH222222',9999);insertinto职工(职工号,经理,工资)values('GH333311','GH333311',9999);insertinto职工(职工号,经理,工资)values('GH333322','GH333322',9999);insertinto职工(职工号,经理,工资)values('GH444411','GH444411',9999);insertinto职工(职工号,经理,工资)values('GH444422','GH444422',9999);insertinto职工(职工号,经理,工资)values('GH555511','GH555511',9999);insertinto职工(职工号,经理,工资)values('GH555522','GH555522',9999);insertinto供应商(供应商号,供应商名,地址)values('S111','高回报','杭州');insertinto供应商(供应商号,供应商名,地址)values('S222','高回报','杭州');insertinto供应商(供应商号,供应商名,地址)values('S333','高回报','杭州');insertinto供应商(供应商号,供应商名,地址)values('S444','高回报','杭州');insertinto供应商(供应商号,供应商名,地址)values('S555','高回报','杭州');insertinto订购单(职工号,供应商号,订购单号)values('GH111111','S111','OR1111');insertinto订购单(职工号,供应商号,订购单号)values('GH111111','S111','OR1112');insertinto订购单(职工号,供应商号,订购单号)values('GH111122','S111','OR1113');insertinto订购单(职工号,供应商号,订购单号)values('GH111122','S111','OR1114');insertinto订购单(职工号,供应商号,订购单号)values('GH222211','S222','OR2222');insertinto订购单(职工号,供应商号,订购单号)values('GH222211','S222','OR2221');insertinto订购单(职工号,供应商号,订购单号)values('GH222222','S222','OR2223');insertinto订购单(职工号,供应商号,订购单号)values('GH222222','S222','OR2224');insertinto订购单(职工号,供应商号,订购单号)values('GH333311','S333','OR3333');insertinto订购单(职工号,供应商号,订购单号)values('GH333311','S333','OR3331');insertinto订购单(职工号,供应商号,订购单号)values('GH333322','S333','OR3332');insertinto订购单(职工号,供应商号,订购单号)values('GH333322','S333','OR3334');insertinto订购单(职工号,供应商号,订购单号)values('GH444411','S444','OR4444');insertinto订购单(职工号,供应商号,订购单号)values('GH444411','S444','OR4441');insertinto订购单(职工号,供应商号,订购单号)values('GH444422','S444','OR4442');insertinto订购单(职工号,供应商号,订购单号)values('GH444422','S444','OR4443');insertinto订购单(职工号,供应商号,订购单号)values('GH555511','S555','OR5555');insertinto订购单(职工号,供应商号,订购单号)values('GH555511','S555','OR5551');insertinto订购单(职工号,供应商号,订购单号)values('GH555522','S555','OR5552');insertinto订购单(职工号,供应商号,订购单号)values('GH555522','S555','OR5553');insertinto订购单明细(订购单号,序号,产品名称,单价,数量)values('OR1111','01','哈根达斯',

1 / 19
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功