select * from user_objects where object_type='TABLE';
--删除contact表,包括删除与其相关的约束
drop table contact cascade constraints
--创建contact表
create table contact(
id number(6) not null primary key
,first_name varchar2(20) not null
,last_name varchar2(20) not null
,birth_date Date
--,constraint pk_contact primary key(id) --指定主主键
);
drop sequence contact_seq;
--创建表contact的自增序列
create sequence contact_seq
start with 1
increment by 1
nomaxvalue
nocycle
nocache
drop trigger contact_trigger
--创建表contact自增序列的触发器
create or replace trigger contact_trigger
before insert on contact
for each row
begin
select contact_seq.nextval into:new.id from sys.dual;
end;
insert into contact(first_name,last_name,birth_date) values('Clarence','Ho',to_date('1980-07-30','yyyy-mm-dd'));
insert into contact(first_name,last_name,birth_date) values('Scott','Tiger',to_date('1990-11-02','yyyy-mm-dd'));
insert into contact(first_name,last_name,birth_date) values('John','Smith',to_date('1964-02-28','yyyy-mm-dd'));
--删除contact_tel表
drop table contact_tel cascade constraints;
--创建contact_tel表
create table contact_tel(
id number(6) not null primary key
,contact_id number(6) not null
--,contact_id number not null references contact(id)
,tel_type varchar2(20) not null
,tel_number varchar2(20) not null
--,constraint pk_contact_tel primary key(id) --主键
,constraint fk_contact_tel foreign key(contact_id) references contact(id) --外键
);
drop sequence contact_tel_seq;
--创建表contact_tel的自增序列
create sequence contact_tel_seq
increment by 1
start with 1
nomaxvalue
nocycle
nocache
drop trigger contact_tel_trigger
--创建表contact_tel自增序列的触发器
create or replace trigger contact_tel_trigger
before insert on contact_tel
for each row
begin
select contact_tel_seq.nextval into:new.id from dual;
end;
insert into contact_tel(contact_id,tel_type,tel_number) values (1,'Mobile','1234567890');
insert into contact_tel(contact_id,tel_type,tel_number) values (1,'Home','2234567890');
insert into contact_tel(contact_id,tel_type,tel_number) values (2,'Home','3234567890');
--以下测试主从表的外键约束是否生效
insert into contact_tel(contact_id,tel_type,tel_number) values (4,'Home','4234567890');
select * from contact;
select * from contact_tel;
分享到:
相关推荐
在本次Oracle建表练习中,我们将会重点讨论建表时使用的主键(Primary Key)和外键(Foreign Key)概念。 首先,我们来详细了解一下主键的概念。主键是数据库表中每一行记录的唯一标识,它保证了表中的每条记录都能...
### Oracle 设置主外键及主键序列自动增长 在Oracle数据库管理系统中,为了确保数据的一致性和完整性,经常需要设置主键(Primary Key)和外键(Foreign Key)。此外,为了方便管理和操作,通常还会使用序列...
标题"excel2003 生成oracle 建表语句"涉及到一个实用工具,它允许用户利用Microsoft Excel 2003来创建Oracle数据库的建表语句。这个工具基于Excel的宏功能,使得非编程背景的用户也能相对轻松地生成SQL脚本,这对于...
oracle建表空间建用户
9. **触发器(Trigger)**:Oracle还支持触发器,这是一种特殊的存储过程,会在特定的数据库操作(如INSERT, UPDATE, DELETE)发生时自动执行。 10. **存储过程(Stored Procedure)**:对于重复性的复杂操作,可以...
Oracle 建表开发手册 Oracle 建表开发手册是数据库开发中的一份重要文件,旨在指导开发人员正确地创建数据库表结构,以确保数据的一致性和完整性。下面是 Oracle 建表开发手册中的知识点摘要: 原子性约束 原子...
Oracle建表语句Oracle建表语句
oracle向mysql建表语句的迁移。 直接表结构的生成sql脚本
为了确保数据完整性和一致性,你还可以添加约束条件,如主键(PRIMARY KEY)、唯一键(UNIQUE)、外键(FOREIGN KEY)等。此外,考虑性能和空间优化,可以设置非空(NOT NULL)约束,或者对某些字段进行索引(INDEX...
在数据库设计过程中,创建表格是基础工作之一,"Oracle建表工具"就是为了解决这个问题而出现的。这个工具能够帮助用户通过Excel文件来定义实体,进而生成符合规范的Oracle数据库表,包括添加备注和设置主键等关键...
在Oracle数据库管理中,批量生成表、触发器和序列是一项常见的任务,特别是在系统初始化或数据迁移时。这个压缩包文件“oracle快速批量生成表和触发器和序列.zip”显然是为了帮助用户快速完成这类操作。下面将详细...
oracle建表创建代码表名用户权限以及类容。
在Oracle数据库中,触发器(Triggers)是一种存储过程,它们自动执行,当特定的数据库事件发生时,如INSERT、UPDATE或DELETE操作。调试Oracle触发器是开发和维护数据库应用程序时的重要步骤,可以帮助我们找出潜在的...
oracle 增加序列 触发器 全过程 sql文件只需更换表名
### Oracle通过触发器实现序列自增 在Oracle数据库中,序列是一种非常实用的对象,它可以用于自动产生唯一的数值。本文将详细介绍如何通过触发器与序列相结合的方式,在Oracle数据库中实现记录的自增功能。 #### ...
oracle建表语句,怎么建表空间,表空间的用户名密码。整理自己查看的。
完整性展示:DEMO提供了从基础建表到复杂约束(如外键、自增主键)等实际生产场景所需的完整SQL语句。 学习价值:对于初学者或者对Oracle数据库不熟悉的开发者来说,这是一个很好的实践教程,可以直接参照执行并...
### 二、Oracle主外键查询方法 #### 1. 查询所有约束 在Oracle中,可以通过`all_constraints`视图来查看所有的约束信息。此视图包含了所有表的所有约束类型(如主键、外键等),以及约束的名称、类型、表名等信息。...
Oracle数据库在设计关系型数据库时,常常需要使用到自增序列和触发器来实现自动增长的主键。自增序列可以确保数据的唯一性,而触发器则可以在特定事件(如INSERT、UPDATE或DELETE)发生时执行一些额外的操作。本...
Oracle 中创建表、序列、自增字段、添加注释、添加记录、添加触发器、提交的知识点总结 Oracle 中创建表是指在 Oracle 数据库中创建一个新的表结构,以存储特定的数据。在创建表时,需要指定表的名称、字段名称、...