实验二 实验数据库的建立

  • [实验目的]
  • [预备知识]
  • [实验内容]

[实验目的]

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约束。

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

  1. 《数据库原理与应用》实验二

    题目来源学校课后作业,禁商业用途,仅用于课业学习 <数据库原理与应用>实验二 一.实验目的及要求 1.掌握SQL查询语言的使用. 2.掌握SQL流程控制语句的使用. 3.要求独立完成,并记 ...

  2. 《数据库原理与应用》实验一

    题目来源学校课后作业,禁商业用途,仅用于课业学习 <数据库原理与应用>实验一 一.实验目的及要求 1.掌握MySQL系统的数据库创建方式. 2.掌握MySQL系统的数据表的创建方式. 3. ...

  3. 通信使用matlab三元码实验报告,Matlab仿真DSBSC信号与双极性不归零码通信原理实验报告二实验...

    Matlab仿真DSBSC信号与双极性不归零码通信原理实验报告二实验 Matlab 仿真 DSB-SC 信号与双极性不归零码通信原理实验报告二实验题目:Matlab 仿真 DSB-SC 信号与双极性不 ...

  4. 数据库原理(十 二)- 逻辑结构设计

    数据库原理(十 二)- 逻辑结构设计 前言 E-R图向关系模型的转换 数据模型的优化 设计用户子模式 前言 概念结构是独立于任何一种数据模型的信息结构,逻辑结构设计的任务就是概念结构设计阶段设计好的基 ...

  5. 【数据库原理及应用】经典题库附答案(14章全)——第十二章:数据库技术新发展

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

  6. 【数据库原理及应用】经典题库附答案(14章全)——第二章:关系数据库知识

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

  7. 【数据库原理及应用】经典题库附答案(14章全)——第十四章:分布式数据库系统

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

  8. 【数据库原理及应用】经典题库附答案(14章全)——第十三章:面向对象程数据库系统

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

  9. 【数据库原理及应用】经典题库附答案(14章全)——第十章:数据库完整性

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

  10. 【数据库原理及应用】经典题库附答案(14章全)——第九章:数据库安全性

    [数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...

最新文章

  1. 基本数据类型和引用数据类型作为参数时候的问题
  2. 工程优化作业——成功失败法和黄金分割法
  3. 极速搭建一个个人博客网站
  4. 扩展内容(线程的同步方法)
  5. ubuntu18.10终端的方块改成竖线
  6. 深井软岩巷道群支护技术与应用_引领支护创新,促进行业发展
  7. 【clickhouse】Port 9000 is for clickhouse-client program
  8. IronRuby 发布第一个版本
  9. Unix 激荡 50 年:驱动 Android、iOS 的操作系统是如何从失败开始的?
  10. Scrapy相关命令
  11. php 5.6 mcrypt,mcrypt在Windows / IIS上的PHP 5.6中不起作用
  12. 万恶的流氓首页~~我要干掉你
  13. 运放参数——压摆率(SR)
  14. 自制jlink-ob
  15. 物联网APP开发的好处有哪些
  16. Unity中传送带的实现
  17. Python语言零基础入门教程(十一)
  18. 红黑树、b+树、b树、mysql索引详细剖析
  19. 《刻意学习》读后感心得体会3000字左右
  20. windows驱动程序

热门文章

  1. ubuntu 安装 TFTP server
  2. 轮询机制php,JS事件轮询机制讲解
  3. 小白月赛 72(3/6)
  4. Git与Github的使用(ubuntu)
  5. 计算机网络性能指标:速率、带宽、吞吐量、时延、时延带宽积、RTT、利用率
  6. 转载删减:Jupyter Notebook快捷键
  7. OPPOR8207_官方线刷包_救砖包_解账户锁
  8. 【数字信号处理】卷积和乘法系列2之AM调制、幅度谱和相位谱(含MATLAB代码)
  9. 转:上午还在写Bug,下午突然“被离职”,咋整?
  10. OpenGL特点 翻译自openGL.org 的文档