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约束。
ORACLE与数据库原理实验 实验二 实验数据库的建立(答案全)相关推荐
- 《数据库原理与应用》实验二
题目来源学校课后作业,禁商业用途,仅用于课业学习 <数据库原理与应用>实验二 一.实验目的及要求 1.掌握SQL查询语言的使用. 2.掌握SQL流程控制语句的使用. 3.要求独立完成,并记 ...
- 《数据库原理与应用》实验一
题目来源学校课后作业,禁商业用途,仅用于课业学习 <数据库原理与应用>实验一 一.实验目的及要求 1.掌握MySQL系统的数据库创建方式. 2.掌握MySQL系统的数据表的创建方式. 3. ...
- 通信使用matlab三元码实验报告,Matlab仿真DSBSC信号与双极性不归零码通信原理实验报告二实验...
Matlab仿真DSBSC信号与双极性不归零码通信原理实验报告二实验 Matlab 仿真 DSB-SC 信号与双极性不归零码通信原理实验报告二实验题目:Matlab 仿真 DSB-SC 信号与双极性不 ...
- 数据库原理(十 二)- 逻辑结构设计
数据库原理(十 二)- 逻辑结构设计 前言 E-R图向关系模型的转换 数据模型的优化 设计用户子模式 前言 概念结构是独立于任何一种数据模型的信息结构,逻辑结构设计的任务就是概念结构设计阶段设计好的基 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第十二章:数据库技术新发展
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第二章:关系数据库知识
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第十四章:分布式数据库系统
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第十三章:面向对象程数据库系统
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第十章:数据库完整性
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第九章:数据库安全性
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
最新文章
- 基本数据类型和引用数据类型作为参数时候的问题
- 工程优化作业——成功失败法和黄金分割法
- 极速搭建一个个人博客网站
- 扩展内容(线程的同步方法)
- ubuntu18.10终端的方块改成竖线
- 深井软岩巷道群支护技术与应用_引领支护创新,促进行业发展
- 【clickhouse】Port 9000 is for clickhouse-client program
- IronRuby 发布第一个版本
- Unix 激荡 50 年:驱动 Android、iOS 的操作系统是如何从失败开始的?
- Scrapy相关命令
- php 5.6 mcrypt,mcrypt在Windows / IIS上的PHP 5.6中不起作用
- 万恶的流氓首页~~我要干掉你
- 运放参数——压摆率(SR)
- 自制jlink-ob
- 物联网APP开发的好处有哪些
- Unity中传送带的实现
- Python语言零基础入门教程(十一)
- 红黑树、b+树、b树、mysql索引详细剖析
- 《刻意学习》读后感心得体会3000字左右
- windows驱动程序
热门文章
- ubuntu 安装 TFTP server
- 轮询机制php,JS事件轮询机制讲解
- 小白月赛 72(3/6)
- Git与Github的使用(ubuntu)
- 计算机网络性能指标:速率、带宽、吞吐量、时延、时延带宽积、RTT、利用率
- 转载删减:Jupyter Notebook快捷键
- OPPOR8207_官方线刷包_救砖包_解账户锁
- 【数字信号处理】卷积和乘法系列2之AM调制、幅度谱和相位谱(含MATLAB代码)
- 转:上午还在写Bug,下午突然“被离职”,咋整?
- OpenGL特点 翻译自openGL.org 的文档