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-表的操作(主键,外键,序列)的主要内容,如果未能解决你的问题,请参考以下文章