sql server数据库实验代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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职工(职工号,经理,工资)

相关文档
最新文档