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 表名;

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

### 如何在 Oracle 数据库中使用 SQL 语句新增字段 #### 单字段新增 对于单个字段的添加,可以采用如下语法: ```sql ALTER TABLE 名 ADD 字段名 类型; ``` 例如,在名为 `test1` 的中添加一个名为 `name` 的字段,其类型为 `varchar2(30)` 并设置默认值为‘无名氏’且不允许为空,则使用的命令应为: ```sql alter table test1 add (name varchar2(30) default '无名氏' not null)[^2]; ``` 另外一种方式是不带括号的形式来定义新的列属性: ```sql ALTER TABLE test1 ADD name CLOB[^3]; ``` 这里展示了两种不同的数据类型的例子:固定长度字符串 (`VARCHAR2`) 大对象 (`CLOB`)。 #### 多字段新增 当需要一次性向同一张内加入多个新字段时,可以通过一条 `ALTER TABLE ... ADD (...)` 命令完成操作。下面是一个实例,它说明了怎样在一个叫做 `T_XXXXXX_XXXX` 的格里增加四个不同用途的新列,并分别为这些列加上描述性的注释: ```sql -- 同时添加多个字段 ALTER TABLE T_XXXXXX_XXXX ADD ( TEST1 VARCHAR2(255), TEST2 VARCHAR2(255), TEST3 VARCHAR2(2000), TEST4 VARCHAR2(2000) ); -- 对各个字段添加解释性备注 COMMENT ON COLUMN T_XXXXXX_XXXX.TEST1 IS '如果控制点是扣罚类型的时候:扣罚金额'; COMMENT ON COLUMN T_XXXXXX_XXXX.TEST2 IS '控制点源端数据编号'; COMMENT ON COLUMN T_XXXXXX_XXXX.TEST3 IS '协办人'; COMMENT ON COLUMN T_XXXXXX_XXXX.TEST4 IS '协办部门'[^4]; ``` 以上就是针对 Oracle 数据库执行添加单一或多个字段操作方法及其相应的 SQL 语句格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

丶清杉

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

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

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

打赏作者

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

抵扣说明:

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

余额充值