ORACLE学习04-表的操作(主键,外键,序列)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE学习04-表的操作(主键,外键,序列)相关的知识,希望对你有一定的参考价值。

一、创建表

格式:
create table 表名(
  字段    字段类型    能否为空,
  ... ...
);
comment on column/字段 is 注释;
例子:
create table COMPANY 
(
   COM_ID               INTEGER                        not null,
   COM_NAME             VARCHAR2(32)                   null,
   COM_ADDRESS          VARCHAR2(100)                  null
);
二、创建主键/外键

1,创建表的同时创建主键约束

无命名
create table test1
(
id int primary key not null,
name varchar2(20)
)
----------------------
有命名
create table test2
(
id int ,
name varchar2(20),
constraint ixd_id primary key(id)
);
----------------------
select 
    user_ind_columns.index_name,   --查询索引名称
    user_ind_columns.column_name,  --查询索引字段名称
    user_ind_columns.column_position,--索引中的列或属性的位置
    user_indexes.uniqueness         --约束
from user_ind_columns, user_indexes  -- 保存索引名称,对应的表和列的表/系统视图存放是索引名称的表
where user_ind_columns.index_name = user_indexes.index_name     
and user_ind_columns.table_name = test2;
2,alter语句创建主键

 alter table COMPANY add constraint PK_ COMPANY  primary key(COM_ID);

3,修改主键约束
禁用/启用主键
alter table jack disable primary key; -- 禁用
alter table jack enable primary key;  -- 启用
------------------------------------------------
重命名主键
alter table jack rename constraint pk_id to pk_jack_id;
4,删除表中已有主键

无命名
先利用user_cons_columns表查得主键名:
select owner,constraint_name,table_name,column_name from user_cons_columns where table_name = JACK;
select table_name,index_name from user_indexes where table_name=JACK;
alter table jack drop constraint SYS_C0011105;
--------------------------------------------
有命名
select owner,constraint_name,table_name,column_name from user_cons_columns where table_name = JACK;
alter table jack drop constraint IXD_ID;
5,向表中添加外键约束 

alter table test1 add constraint fk_name foreign key(test1_out_id) references test2(test2_id)
6,删除外键约束

alter table test1 drop constraint test1_out_id;
三、序列操作

1,创建序列

create sequence emp_sequence --序列名
increment by 1         -- 每次加几个
start with 1           -- 从1开始计数,初始值
nomaxvalue/maxvalue n/minvalue n             -- 不设置最大值/最大/最小
nocycle/cycle               -- 一直累加,不循环/循环
cache 10/nocache;      --缓存几个值,默认20 
2, 修改序列

alter sequence 序列名
[increment by n]
[{maxvalue/ minvalue n|nomaxvalue}]
[{cycle|nocycle}]
[{cache n|nocache}];
不能修改序列的初始值
3,删除序列

drop sequence 序列名;

四、其他操作

alter table test rename to test1--修改表名
alter table test rename column name to name1 --修改表列名
alter table test modify name1 number(20) --修改字段类型
alter table test add address varchar2(40) --添加表列
alter table test drop column name --删除表列

练习:
-- 添加字段
alter table company add  phone varchar2(12);
-- 修改字段类型
alter table company modify phone number(12);
-- 修改字段名称
alter table company rename column phone to aaa;
-- 删除字段
alter table company drop column aaa;

 

以上是关于ORACLE学习04-表的操作(主键,外键,序列)的主要内容,如果未能解决你的问题,请参考以下文章

oracle中 主键和外键是啥意思?啥地方采用呢?

oracle中 主键和外键是啥意思?啥地方采用呢?

Oracle 获取表的主键外键以及唯一约束条件

ORACLE: 查询(看)表的主键外键唯一性约束和索引

oracle建表的时候同时创建主键,外键,注释,约束,索引

Oracle:对表的CREATEALTERINSERTRENAMEDELETE操作练习以及主外键约束