linux cpu占用率如何看
306
2022-09-02
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约束。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~