您的位置:首页 > 数据库 > Oracle

oracle 数据库表字段添加、修改、删除等DDL操作

2018-03-21 13:48 686 查看

oracle 数据库表字段添加、修改、删除等操作

1. 创建表

-- Create table
create table TB_PERMISSION_ORGANIZATION
(
id           VARCHAR2(150) not null,
parent_id    VARCHAR2(150),
name         VARCHAR2(200) not null,
org_code     VARCHAR2(200) not null,
org_type     NUMBER(2) default 0,
create_date  date  not null,
update_date  date  NOT null,
is_delete    NUMBER default 0 not NULL
);
alter table TB_PERMISSION_ORGANIZATION add constraint PK_TB_PERMISSION_ORGANIZATION primary key (ID);
alter table TB_PERMISSION_ORGANIZATION  add constraint UNIQUE_ORG_CODE unique (ORG_CODE);
COMMIT;

-- Create table
create table TB_PERMISSION_USER
(
id             NUMBER(10) not null,
login_name      VARCHAR2(200) not null,
password        VARCHAR2(200) not null,
name            VARCHAR2(50),
phone           VARCHAR2(20),
email           VARCHAR2(100),
address         VARCHAR2(500),
describe        VARCHAR2(1000),
organization_id VARCHAR2(150),
create_date     date not null,
update_date     date NOT NULL,
is_delete       NUMBER default 0 not NULL
);
-- Add comments to the columns
comment on column TB_PERMISSION_USER.login_name is '登录名称';
comment on column TB_PERMISSION_USER.is_delete is '是否删除0:未删除  1 已删除';
-- Create/Recreate primary, unique and foreign key constraints
alter table TB_PERMISSION_USER add constraint PK_TB_PERMISSION_USER primary key (ID);
alter table TB_PERMISSION_USER  add constraint UNIQUE_TB_PERMISSION_USER unique (login_NAME);
alter table TB_PERMISSION_USER add constraint FK_TB_PERMISSION_USER_ORG foreign key (ORGANIZATION_ID)  references TB_PERMISSION_ORGANIZATION (ID) on delete cascade;
COMMIT;


以 tb_permission_user 表示例,且表里都存在数据。

2. 添加字段

语法:alter table tablename add (column datatype [default value][null/not null],….);
说明:alter table 表名 add (字段名 字段类型 默认值 是否为空);
举例:ALTER TABLE tb_permission_user ADD(english_name Varchar2(100) DEFAULT 'admin' NOT NULL);


3. 删除字段

语法:alter table tablename drop (column);
说明:alter table 表名 drop column 字段名;
举例:ALTER TABLE tb_permission_user DROP COLUMN english_name;


4. 修改字段

1. 修改字段名称

**

语法:alter table tablename rename column name to name1;

说明:alter table 表名rename column 原字段名 to 更改后的字段名;

举例:ALTER TABLE tb_permission_user RENAME COLUMN NAME TO ch_name;

2. 修改字段类型/长度

语法:alter table tablename modify (column datatype [default value][null/not null],….);

说明:alter table 表名 modify (字段名 字段类型 默认值 是否为空);

表中无数据,则不管改为什么字段类型,均可直接执行

举例:ALTER TABLE tb_permission_user MODIFY (address VARCHAR2(1000));

表中存在数据

举例:将tb_permission_user表的主键id(number(10)–>id(varchar2(100)))

--新增主键临时列id_temp
ALTER TABLE tb_permission_user ADD(id_temp VARCHAR2(100));
--将原id的值复制到id_temp
UPDATE tb_permission_user SET id_temp = ID;
--删除原主键id列
ALTER TABLE tb_permission_user DROP COLUMN ID;
--修改列id_temp为主键id列
ALTER TABLE tb_permission_user RENAME COLUMN id_temp TO ID;
--添加id原有的主键约束
ALTER TABLE tb_permission_user ADD CONSTRAINT PK_TB_PERMISSION_USER PRIMARY KEY (ID);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐