ORACLE学习04-表的操作(主键,外键,序列)
时间:2021-07-01 10:21:17
帮助过:42人阅读
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-表的操作(主键,外键,序列)
标签: