数据库实验报告三
完整性约束
1、实验目的
1. 熟悉主键,外键, check等完整性约束;
2. 掌握完整性约束的建立,删除,有效化和无效化;
3. 熟悉相关的DDL    命令。
4. 学会看数据库模型图。
2、实验内容
1. 主键约束
a 按图1所示, 建立所有表的主键约束。
b 运行下列SQL语句:
insert into branch values(Xiangtan University,Xiangtan,4000000);
insert into branch values(Xiangtan University,Xiangtan,5000000);
记录结果并分析原因。
2. 外键约束
a. 按照图1所示,建立所有的外键约束。
b. 运行以下的两条SQL语句:
insert into loan values(L-001,Xiangtan University,1000);
insert into loan values(L-002,Rain Lake,2000);
记录结果并分析原因。
c 运行以下的SQL语句:
delete branch;
记录结果并分析原因。
3. unique约束
a. loan表上建立一个unique约束,保证amount是唯一的。
b. 运行以下SQL语句:
insert into loan values(L-002,Xiangtan University,2000);
记录结果并分析原因。
c. 使得刚才建立的约束无效化,并再次运行上一条SQL语句,记录结果并分析原因。
d. 删除掉这个约束。
4. check约束
a. loan表上建立一个check约束,保证创建唯一约束sql语句amount必须为正数。
b. 运行以下SQL语句:
insert into loan values(L-003,Xiangtan University,-2000);
记录结果并分析原因。
3、实验结果
1、建立所有表的主键约束。
ALTER  TABLE  account 
ADD  CONSTRAINT  APK_num  PRIMARY  KEY (account_number);
ALTER  TABLE  borrower 
ADD  CONSTRAINT  BCU_name  PRIMARY  KEY (customer_name,loan_number);
ALTER  TABLE branch ADD CONSTRAINT BH_name PRIMARY KEY (branch_name);
ALTER  TABLE customer ADD CONSTRAINT CC_name PRIMARY KEY (customer_name);
ALTER  TABLE depositor ADD CONSTRAINT DC_name PRIMARY KEY (customer_name,account_number);
ALTER  TABLE loan ADD CONSTRAINT LL_num PRIMARY KEY (loan_number);
2、运行下列SQL语句:
insert into branch values(Xiangtan University,Xiangtan,4000000);
insert into branch values(Xiangtan University,Xiangtan,5000000);
脚本:
1 已插入
在行 2 上开始执行命令时出错:
insert into branch values('Xiangtan University','Xiangtan',5000000)
错误报告:
SQL 错误: ORA-00001: 违反唯一约束条件 (2013960833.BH_NAME)
00001. 00000 -  "unique constraint (%s.%s) violated"