0


ORACLE与数据库原理实验 实验二 实验数据库的建立(答案全)

实验二 实验数据库的建立

[实验目的]

1. 熟悉和掌握 SQL的 Create Table, Drop Table, Alter Table语句语法;
2. 熟悉和掌握 SQL Plus或 TOAD等开发工具;
3. 熟悉主键,外键,check等完整性约束;
4. 掌握完整性约束的建立,删除,有效化和无效化;熟悉相关的DDL命令。
5. 学会看数据库模型图。

[预备知识]

1.掌握登陆远程数据库方法;
2.掌握至少一种 Oracle PL/SQL开发工具的使用;
3. PL/SQL中 Create Table, Drop Table, Alter Table语句语法。

[实验内容]

1. 建表
a. 按照下面的数据字典,使用 Create Table语句或使用 TOAD的建表工具建立对应的表(只要建立
表名及对应的表项即可),记录建表的 SQL语句。

create table branch(
branch_name varchar2(20) not null,
branch_city varchar2(30) not null,
assets integer
);
create table loan(
loan_number varchar2(10) not null,
branch_name varchar2(20) not null,
amount integer not null
);
create table account(
account_number varchar2(10) not null,
branch_name varchar2(20) not null,
balance integer not null
);
create table customer(
customer_name varchar2(20) not null,
customer_city varchar2(20) ,
customer_street varchar2(30)
);
create table borrower(
customer_name varchar2(20) not null,
loan_number varchar2(10) not null
);
create table depositor(
customer_name varchar2(20) not null,
account_number varchar2(10) not null

);
b.删除实验一建立的表taba;

drop table taba;

c.将customer表中的customer_street列的类型改成varchar2(20)
alter table customer modify customer_street varchar2(20);
d. 将customer表中加入列gender,类型varchar2(1)
alter table customer add gender varchar2(1);

e.将customer表中的列gender删除。
alter table customer drop column gender;

2. 建立主键约束
a. 按图1所示,建立所有表的主键约束。
ALTER TABLE branch
ADD PRIMARY KEY(branch_name) ;
ALTER TABLE loan
ADD PRIMARY KEY(loan_number) ;
ALTER TABLE account
ADD PRIMARY KEY(account_number) ;
ALTER TABLE customer
ADD PRIMARY KEY(customer_name) ;
ALTER TABLE borrower
ADD PRIMARY KEY(customer_name,loan_number) ;
ALTER TABLE depositor
ADD PRIMARY KEY(customer_name,account_number) ;

b. 运行下列SQL语句:
insert into branch values(‘Xiangtan University’,’Xiangtan’,4000000);
insert into branch values(‘Xiangtan University’,’Xiangtan’,5000000);
记录结果并分析原因。
结果:

分析:主码属性的值唯一的,不能重复设置。

3. 建立外键约束
a. 按照图1所示,建立所有的外键约束。
ALTER TABLE borrower
ADD FOREIGN KEY (loan_number) references loan(loan_number);
ALTER TABLE borrower
ADD FOREIGN KEY (customer_name) references customer(customer_name );
ALTER TABLE loan
ADD FOREIGN KEY (branch_name) references branch(branch_name );
ALTER TABLE depositor
ADD FOREIGN KEY (customer_name) references customer(customer_name );
ALTER TABLE depositor
ADD FOREIGN KEY (account_number) references account(account_number);
ALTER TABLE account
ADD FOREIGN KEY (branch_name) references branch(branch_name );

b. 运行以下的两条SQL语句:
insert into loan values(‘L-001’,’Xiangtan University’,1000);
insert into loan values(‘L-002’,’Rain Lake’,2000); 记录结果并分析原因。
结果:

分析:第一个表的外键应可以第二个表的主码上找到。

c. 运行以下的SQL语句: delete branch;
记录结果并分析原因。
结果:

分析:在没有删除子表记录的情况下,删除主表记录,触发了完整性约束错误。

4. unique约束
a. 在loan表上建立一个unique约束,保证amount是唯一的。
alter table loan
add constraint tb_products_u1 unique (amount);

b. 运行以下SQL语句:
insert into loan values(‘L-002’,’Xiangtan University’,1000); 记录结果并分析原因。
结果:

分析:唯一性约束下属性值不可以相同。

c. 使得刚才建立的约束无效化,并再次运行上一条SQL语句,记录结果并分析原因
alter table loan
disable constraint tb_products_u1;
结果:插入成功。
分析:禁用后唯一性约束后属性值可以相同。

d. 删除掉这个约束。
alter table loan
drop constraint tb_products_u1;

5. check约束
a. 在loan表上建立一个check约束,保证amount必须为正数。
alter table loan
add constraint chec check(amount>0);

b. 运行以下SQL语句:
insert into loan values(‘L-003’,’Xiangtan University’,-2000);
记录结果并分析原因。
结果:
原因:amout的值大于0,违反了check约束。


本文转载自: https://blog.csdn.net/m0_51456787/article/details/122656242
版权归原作者 邀风醉明月 所有, 如有侵权,请联系我们删除。

“ORACLE与数据库原理实验 实验二 实验数据库的建立(答案全)”的评论:

还没有评论