Oracle操作表和字段的SQL语句

Oracle操作表和字段的SQL语句

一、建表/添加主键/表与列添加注释/创建序列 SQL

-- Create table (创建表) 
create table 表名 (
      字段名1 字段类型 默认值 是否为空 ,
      字段名2 字段类型 默认值 是否为空,
      字段名3 字段类型 默认值 是否为空
);

-- Create/Recreate primary, unique and foreign key constraints 
-- 创建/重新创建主键、唯一键和外键约束 
alter table 表名
  add constraint 键名 primary key (字段);

-- Add comments to the table (向表中添加注释) 
comment on table 表名 is '品种表';
  
-- Add comments to the columns (向列中添加注释)
comment on column 表名.列名 is '注释内容';

-- Create sequence (创建序列)
-- 创建序列的SQL公式语句建议专门查找讲解~ 暂未开始详细记录

实例:创建一个品种表

-- Create table
create table ITEM(
      SID					NUMBER(15) not null,
      ITEM_ID				VARCHAR2(50) not null,
      ITEM_TYPE				NUMBER(2),
      ITEM_NAME				VARCHAR2(512),
      VERSION				NUMBER,
      DEL_FLG				NUMBER(1) default 0,
      CREATED_BY			VARCHAR2(50),
      CREATED_DT			DATE,
      UPDATED_BY            VARCHAR2(50),
      UPDATED_DT            DATE
);

-- Create/Recreate primary, unique and foreign key constraints 
alter table goods
  add constraint pk_goods primary key (id);

-- Add comments to the table 
comment on table ITEM is '品种表';
  
-- Add comments to the columns 
comment on column ITEM.ITEM_ID is '物品ID,唯一,生成规则:分类+序列号';
comment on column ITEM.ITEM_TYPE
  is '品种类型
1 医耗 
2 药品
3 跟台';

-- Create sequence 
create sequence SEQ_ITEM 
minvalue 1000000000
maxvalue 9999999999
start with 1000000000
increment by 1
cache 20;

二、修改表 SQL

-- 修改表名
rename 旧表名 to 新表名;
rename ITEM to ITEM_NEW;

-- 添加新字段:
alter table 表名 add (字段名 字段类型 默认值 是否为空);
alter table ITEM add (ITEM_MODEL VARCHAR2(2048));
alter table ITEM add (STATUS NUMBER(1) default '0' not null);
-- 修改字段:
alter table 表名 modify (字段名 字段类型 默认值 是否为空);
alter table ITEM modify (ITEM_MODEL VARCHAR2(520));
-- 修改字段名:
alter table 表名 rename column 列名 to 新列名;
alter table ITEM rename column STATUS to STATUS_NEW;
-- 删除字段:
alter table 表名 drop column 字段名;
alter table ITEM drop column STATUS;

修改字段类型时,原字段有数据,且新类型与新类型不同,或长度不符,执行时会弹出:
“ORA-01439:要更改数据类型,则要修改的列必须为空”
解决方法:

-- 修改原字段名
alter table tb rename column 原字段 to 新字段名(随意改); 

-- 增加一个和原字段名同名的字段 
alter table tb add 同名字段 要改的字段类型; 

-- 将原字段数据更新到增加的字段 
update tb set 新加的同名字段=trim(原字段(新字段名)); 

-- 更新完,删除原字段
alter table tb drop column 原字段(新字段名); 

三、删除表

-- delete后面添加where条件,可删除单条或多条数据,不删除表结构;不添加where条件则会删除所有数据
delete from 表名 where 条件;

-- truncate是一次性删掉所有数据,不删除表结构
truncate table 表名;

-- drop删除所有数据,会删除表结构
drop table 表名;

以下是本文参考文档链接,感谢!
CSDN-丿灬岁月如歌灬Oracle修改字段数据类型

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丶清杉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值