数据库原理与应用课程实验指导书(附答案)(2) 下载本文

on delete no action on update no action

(2)利用SQL语句建立CPXSB与XSS表之间的参照关系,当对主表XSS表进行更新和删除操作时,

从表CPXSB采用CASCADE(级联)方式,写出其过程。

alter table CPXSB

add constraint XSS_CPXSB_FK foreign key (客户编号) references XSS(客户编号) on delete cascade on update cascade

3、域完整性的实现

(1)在CP表的价格列上定义大于等于0的检查(CHECK)约束。

alter table CP

add constraint 价格_CK check (价格>0)

(2)定义一个大于等于0的规则check_kcl,并将其绑定到CP表的库存量列,然后解除绑定,删除该规则,请写出相关SQL语句。 create rule check_kcl as @kcl>=0 sp_bindrule 'check_kcl','CP.库存量' sp_unbindrule 'CP.库存量' drop rule check_kcl

4、综合训练

创建一个“学生档案”数据库,并用CREATE TABLE在该数据库中创建“人事”表和“成绩”两个表,

其中“人事”表包括学号、姓名、性别、电话号码、家庭住址字段组成。“成绩”表包括学号、选修课程名称、成绩三个字段。

分别在“人事”表的学号字段设置主键约束,在“成绩”表的学号字段设置外键约束,在成绩字段设置大于等于0小于等于100的检查约束,

在家庭住址字段设置惟一约束,在性别字段设置默认值为“男”。 create database 学生档案 on (

name='学生档案_data',

filename='c:\\sql\\data\\学生档案_data.mdf' )

log on

(

name='学生档案_log',

filename='c:\\sql\\log\\学生档案_data.ldf' )

create table 人事 (

学号 char(8) primary key, 姓名 char(16),

性别 char(2) default '男', 电话号码 char(12),

家庭住址 char(50) unique )

create table 成绩 (

学号 char(8) foreign key references 人事(学号), 选修课程名称 char(16),

成绩 numeric(9) check(成绩>=0 and 成绩<=100) )

实验十三

对于CPXS数据库,创建如下存储过程: 1、无参存储过程

编写一无参存储过程用于查询每个客户购买产品的情况(包括客户编号、产品编号、客户名称、产品名称、价格、购买日期、购买数量),然后调用该存储过程。 create procedure gmqk as

select XSS.客户编号,客户名称,CP.产品编号,产品名称,价格,销售日期 as '购买日期',数量 as'购买数量'

from CP,XSS,CPXSB

where CP.产品编号=CPXSB.产品编号 and XSS.客户编号=CPXSB.客户编号

exec gmqk

2、带有参数的存储过程

编写一加密存储过程,查询指定客户购买产品的情况。并调用该存储过程查询客户编号为“000002”的客户购买情况。

create procedure gmqk1 @客户编号 char(6) with encryption as