sql server数据库实验代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重庆交通大学
学生实验报告
实验课程名称数据库应用与设计
开课实验室xxxxxxxxx
学院xxx 年级2011 专业班xxxx
学生姓名xxxxxx 学号xxxxxx
开课时间2013 至2014 学年第 2 学期
实验2 建立表和定义完整性约束
实验名称
建立模式、表和定义完整性约束
实验内容
实验目的
熟练掌握表的建立和数据完整性速描定义方法,实践DBMS提供的数据完整性功能,加深对数据完整性的理解。
实验方法
在实验一建立数据库的基础上用CREATE SCHEMA命令建立模式,用CREATE TABLE命令建立表并定义数据完整性约束,用ALTER TABLE命令修改表结构。
实验要求
1、用CREATE SCHEMA命令建立模式(自己命名模式名称)。
2、在定义的模式下参照图1和表1使用CREATE TABLE命令建立表并定义完整性约束。
3、使用ALTER TABLE命令按如下要求修改表结构:
a)为订购单增加一个新的字段“完成日期”,类型为日期时间型,默认是空值。
b)为订单明细表的“数量”字段重新定义约束:大于0、小于等于1000的正整数,不允许为空值。
c) 将供应商表的供应商名字段的类型修改为varchar(30)。
实验步骤
create table仓库
(仓库号nchar(6)primary key
check(仓库号like'[A-Z][A-Z][0-9][0-9][0-9][0-9]'),
城市nchar(10)not null unique,
面积float check(面积>=50));
create table职工
(职工号nchar(8)primary key check(职工号like'____[0-9][0-9]'),
仓库号as convert(nchar(6),substring(职工号,1,6))persisted not null foreign key references仓库(仓库号),
经理nchar(8)foreign key references职工(职工号),
工资money check(工资>=1000 and工资<=10000));
create table供应商
(供应商号nchar(4)primary key
check(供应商号like'S[0-9][0-9][0-9]'),
供应商名nchar(16),
地址nchar(30));
create table订购单
(职工号nchar(8)not null foreign key references职工(职工号),
供应商名nchar(16),订购单号nchar(6)primary key check(订购单号
like'OR[0-9][0-9][0-9][0-9]'),
订购日期datetime default getdate(),
金额money default null);
create table订购单明细
(订购单号nchar(6)not null foreign key references订购单(订购单号),
序号tinyint,
primary key(订购单号,序号),
产品名称nchar(20),
单价money default null check(单价>0),
数量int not null check(数量>0));
create trigger dgdmx on订购单明细
after insert
as begin
declare @订购单号nchar(6)select @订购单号=订购单号from inserted
update订购单set金额=(select sum(单价*数量)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、在实验报告中给出具体的记录和设计的操作,并针对各种数据完整性检查,给出具体的分析和讨论。
实验步骤
insert into仓库(仓库号,城市,面积)
values('GH1111','重庆',99);
insert into仓库(仓库号,城市,面积)
values('GH2222','北京',199);
insert into仓库(仓库号,城市,面积)
values('GH3333','上海',299);
insert into仓库(仓库号,城市,面积)
values('GH4444','厦门',399);
insert into仓库(仓库号,城市,面积)
values('GH5555','杭州',499);
insert into职工(职工号,经理,工资)
values('GH111111','GH111111',9999);
insert into职工(职工号,经理,工资)
values('GH111122','GH111122',9999);
insert into职工(职工号,经理,工资)
values('GH222211','GH222211',9999);
insert into职工(职工号,经理,工资)
values('GH222222','GH222222',9999);
insert into职工(职工号,经理,工资)
values('GH333311','GH333311',9999);
insert into职工(职工号,经理,工资)
values('GH333322','GH333322',9999);
insert into职工(职工号,经理,工资)