【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触发器,一般情况下,序列和触发器是同时使用的)
上一篇: Map去除空的key或者value值