Oracle 创建视图、修改表的约束 创建级联删除触发器、存储过程
1、创建视图
创建航班表的视图,用于查询航班表的所有信息
create or replace view F_view
as
select * from Flight;
创建机票表的视图,用于查询机票表的所有信息
create or replace view T_view
as
select * from Ticket;
创建用户表的视图,用于查询用户表的所有信息
create or replace view C_view
as
select * from Client;
2、修改表的约束
修改Ticket表的外键约束,允许它们取空值
alter table Ticket modify TFid varchar2(10) null;
alter table Ticket modify TCerNumber varchar2(10) null;
(这里请注意一下,oracle里修改表的约束用了关键词modify 而SqlServser数据库里修改表的列的约束用的还是alter,具体的你们可以去百度)
3、创建级联删除触发器
创建航班触发器 用于删除机票表中外键引用航班表主键时对应的那条记录
create or replace trigger F_trigger
after delete
on Flight
for each row
begin
delete from Ticket where Ticket.TFid =:old.Fid;
end F_trigger;
创建用户触发器,用于删除机票表中外键引用用户表主键时对应的那条记录
create or replace trigger C_trigger
after delete
on Client
for each row
begin
delete from Ticket where Ticket.TCerNumber =:old.CerNumber ;
end C_trigger;
4、创建存储过程
4.1 创建增加存储过程
增加航班信息的存储过程
create or replace procedure inF(F_Fid in varchar,F_Fname in varchar,F_CabLevel in varchar,F_CabQuantity in Number)as
begin
insert into flight(Fid,Fname,CabLevel,CabQuantity)
values(F_Fid,F_Fname,F_CabLevel,F_CabQuantity);
commit;
end;
增加机票信息的存储过程
create or replace procedure inTi(T_Tid in varchar,T_Tprice in Number,T_Discount in number,T_Presell in varchar,T_Salesman in varchar)as
begin
insert into ticket(Tid,Tprice,Discount,Presell,Salesman)
values(T_Tid,T_Tprice,T_Discount,T_Presell,Salesman);
end;
增加用户信息的存储过程
create or replace procedure inC(C_CerNumber in varchar ,C_Cname in varchar,C_Csex in varchar,C_Phone in Number, C_CerType in varchar,C_PayMethod in varchar)as
begin
insert into Client(CerNumber ,Cname ,Csex,Phone , CerType,PayMethod)
values(C_CerNumber ,C_Cname ,C_Csex,Phone , C_CerType ,C_PayMethod);
end;
4.2 创建更新存储过程
更新航班信息存储过程
create or replace procedure upF(F_Fid in varchar,F_Fname in varchar,F_CabLevel in varchar,F_CabQuantity in Number)as
begin
update Flight set Fname = F_Fname,CabLevel =F_CabLevel,CabQuantity = F_CabQuantity
where Fid = F_Fid;
commit;
end;
更新机票信息存储过程
create or replace procedure upT(T_Tid in varchar, T_Tprice in NUMBER,T_Discount in number,T_Presell in varchar,T_Salesman in varchar)as
begin
update Ticket set Tprice = T_Tprice,Discount=T_Discount,Presell=T_Presell,Salesman=T_Salesman
where Tid = T_Tid;
commit;
end;
更新用户信息存储过程
create or replace procedure upC(T_CerNumber in varchar, T_Cname in varchar,T_Csex in varchar,T_Phone in Number, T_CerType in varchar,T_PayMethod in varchar)as
begin
update Client set Cname = T_Cname,Csex=T_Csex,Phone=T_Phone,CerType=T_CerType,PayMethod =T_PayMethod
where CerNumber = T_CerNumber;
commit;
end;
4.3创建删除存储过程
删除航班信息存储过程
create or replace procedure delF1(Fid in varchar,Fname in varchar)as
begin
delete from Flight where Fid = Fid and Fname=Fname;
commit;
end;
删除机票信息存储过程
create or replace procedure delT1(Tid in varchar,Tprice in NUMBER)as
begin
delete from Ticket where Tid=Tid and Tprice=Tprice;
commit;
end;
删除用户信息存储过程
create or replace procedure delC1(CerNumber in varchar,Cname in varchar)as
begin
delete from Client where CerNumber = CerNumber and Cname=Cname;
commit;
end;
注意:这里我必须说一下增加、更新它们俩和删除的有点不一样,不晓得你们发现没,但是在VS2012中测试都是没有错的。必须说一下存储过程创建过程中定义的变量名最好不要和表中数据的字段名相同,否则会优先当做字段名对待。按道理来说,删除存储过程中的变量(当时只写了一个,以主键为基础来删除字段)一开始是和表的字段名相同,所得结果是错的(本来要删除一条记录,测试结果却删除了整条记录),但我在原来的基础上,再加一个变量,却又没有出错了,虽然我也不明白他为啥在变量名与字段名相同的情况下删除成功了,但这肯定不可取,建议变量尽量不要和字段名相同
Oracle 创建视图、修改表的约束 创建级联删除触发器、存储过程相关推荐
- oracle在线的表名修改,oracle中如何修改表名
当原来的数据所在表不想被删除的时候我们就需要重新创建一个一个相同表名的表,但是为了更好的区分,因此我们就需要修改表名,那么你知道在oracle中如何修改表名吗?现在我们一起去看看吧. answer1: ...
- c语言实现创建学生成绩表,实现插入、删除和统计等管理功能。
c语言实现创建学生成绩表,实现插入.删除和统计等管理功能. #include <stdio.h> #include <stdlib.h> #include <malloc ...
- ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL、DBA必备)
ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL.DBA必备) 文章目录 ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL.DBA必备) 前 ...
- SQLServer表内自关联级联删除
今天处理SQLServer级联删除遇到了很蛋疼的事. SQLServer 不支持表内自关联级联删除,而MySql和Oracle却支持. 貌似原因是SQLServer 会产生循环级联,就不给这样弄.所以 ...
- 如何手动修改oracle表空间,ORACLE数据库创建和修改表空间
-建立表空间(oracle中的tablespace(表空间)) CREATE TABLESPACE data01 DATAFILE 'D:\oracle\ora92\oradata\db\DATA01 ...
- MySQL授权修改表结构_MySQL创建修改表结构
一.数据库的概述 1.什么是数据库 DB,DataBase 数据库:依照某种数据模型进行组织并存放到存储器的数据集合 DBMS,DataBase Management System 数据库管理系统:用 ...
- oracle表修改语句,Oracle的常用修改表及字段的语句
单行注释:-- 多行注释:/* */ Oracle中修改表结构 增加字段 ALTER TABLE table_name ADD column_name data_type; 删除字段 ALTET TA ...
- mysql创建视图语法_MySQL教程91-MySQL创建视图
创建视图是指在已经存在的 MySQL 数据库表上建立视图.视图可以建立在一张表中,也可以建立在多张表中. 基本语法 可以使用 CREATE VIEW 语句来创建视图. 语法格式如下: CREATE V ...
- Oracle dba_tablespace_usage_metrics 视图 查看表空间 说明
一.DBA_TABLESPACE_USAGE_METRICS 视图的理论说明 群里一朋友说使用dba_tablespace_usage_metrics 视图查看表空间的结果不正确,如下: dba_ta ...
最新文章
- 操作系统常用词典(三)
- r语言和python-R语言和Python哪个适合生物信息学?
- Excel单元格里面提取或去掉某些字符
- 标签体系、用户分群、用户画像「玩味」解读,你沦为形式主义了吗?
- 项目管理过程组(5)与知识领域(10)
- Android单元测试 - 几个重要问题
- python发邮件有什么意思_python发邮件要装什么
- Android小测验感受
- 【转】WPF从我炫系统5---基本控件的用法
- 自己闲来无事做的工作日志WEB程序(VB.NET)
- 最全数据结构详述: List VS IEnumerable VS IQueryable VS ICollection VS IDictionary
- (已更新)短视频去水印解析客户端小程序源代码
- static Splitterwnd hide and show --by wyj
- 别再用PS啦!用Excel轻松实现更换证件照背景颜色!
- 计算机操作系统的加密与恢复,当在 Windows中设置 FIPS 兼容策略时,BitLocker 的恢复密码Windows...
- android自定义打电话界面,两种Android打电话实现方法
- 拼多多登陆 JS 密码字段加密解析
- 用C语言编程实现拓扑排序,拓扑排序(一)之 C语言详解
- 有了这 15 款编程游戏,谁都可以学编程!
- 计算机无符号是啥,计算机编程中的无符号是什么