欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Oracle】热门SQL汇总(持续更新中......)

程序员文章站 2022-07-08 17:22:37
...
转载请注明出处:)

--重命名字段名
alter table 表名 rename column 旧字段名 to 新字段名;

--更改表描述
comment on table 表名 is ' 描述 ';

--更改字段描述
comment on column 表名.字段名 is ' 描述 ';

--新增字段
alter table 表名 add(字段名 数据类型  默认值  可否为空);
--alter table 表名 add(字段名 varchar2(2) default 1 null);
--alter table 表名 add(字段名 number(32) default 1 no null);
--alter table 表名 add(字段名 varchar2(2) null);

--设置主键constraint
alter table 表名 add constraint 命名(PK_T_表名_字段名 ) primary key (  作为主键ID的字段名  );

--重命名主键constraint名
alter table 表名 rename constraint 旧主键命名 to 新主键命名;

--示例:新增字段
alter table 表名 add(字段名 varchar2(2) default 1 null);
comment on column 表名.字段名 is ' 描述 ';

--示例:更改字段
alter table 表名 modify(字段名 varchar2(2) default 1 null);
alter table 表名 rename column 旧字段名 to 新字段名 ;
comment on column 表名.字段名 is ' 描述 ';

--示例:删除字段
alter table 表名 drop column 字段名;

--示例:强制更改数据类型(提示需清空、无法直接更改、无法缩减长度等情况)
--1.修改原字段名name为name_tmp
alter table 表名 rename column "id" to "id_temp";
--2.增加一个和原字段名同名的字段name
alter table 表名 add "id" NUMBER(32);
--3.将原字段name_tmp数据更新到增加的字段name
update 表名 set "id"=CAST("id_temp" AS NUMBER(32));
--4.删除原有的列
ALTER TABLE 表名 DROP COLUMN "id_temp";
--5.设置新列属性,设置为非空
ALTER TABLE 表名 MODIFY ("id" NUMBER(32) NOT NULL);
--6.重建主键,因为原有的已经被删除,原有的ID列有索引的也需要重建
ALTER TABLE 表名 ADD CONSTRAINT PK_SYS_SMSGATE PRIMARY KEY ("id");

--示例:创建序列(建议序列一对一,多个表使用同一个序列时,各个表主键ID不会连续)
--1.删除序列
drop sequence SEQUENCE_ROLE;
--2.创建序列
create sequence SEQUENCE_ROLE   
increment by 1   --每次加几个
start with 1   --从1开始计数 
nomaxvalue   -- 不设置最大值 minvalue 1 maxvalue 9
nocycle    --一直累加,不循环
nocache  --不建缓冲区  cache 20; 一般不采用缓存
;

--示例:创建触发器(创建自增id触发器,一般情况下,序列和触发器是同时使用的)


相关标签: SQL