关于Oracle的各种操作持续汇总

增删改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
增加所有
INSERT INTO 表名 VALUES(序列名.NEXTVAL,'值1','值2','值3','值4','值5');

指定增加
INSERT INTO 表名(字段1,字段2) VALUES('值1','值2');

指定删除
DELETE FROM 表名 WHERE 字段1='值1';

删除所有
DELETE FROM 表名;

指定更新
UPDATE 表名 SET 字段1='值1',字段2='值2' WHERE 字段3='值3';

序列的创建

1
2
3
4
5
6
CREATE SEQUENCE SEQ_TEST
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE
NOCACHE;
  • SEQ_TEST序列名
  • INCREMENT BY序列的变化值.这里为1.所以它的下个值会加1.如果这里为2的话.它的下个值会加2.如果为-2的话.它的下个值会-2.
  • START WITH序列的初始值.这里设置为1.默认也为1
  • NOMAXVALUE序列的最大值.默认无最大值 NOMAXVALUE
  • NOCYCLE不循环. 默认也是NOCYCLE
  • NOCACHE缓存的序列个数.默认20.这里设置为不缓存

创建快捷方法:CREATE SEQUENCE 序列名;

查询序列

1
2
3
4
5
SELECT 序列名.CURRVAL 当前序列值 FROM DUAL;
SELECT SEQ_B_DATADISPOSE_ENTERING_MU.CURRVAL 当前序列值 FROM DUAL;

SELECT 序列名.NEXTVAL 下一个序列值 FROM DUAL;
SELECT SEQ_B_DATADISPOSE_ENTERING_MU.NEXTVAL 下一个序列值 FROM DUAL;

删除序列

1
DROP SEQUENCE 序列名;

查询所有储存过程 触发器 序列 视图

1
2
3
4
5
6
7
8
9
SELECT OBJECT_NAME 储存过程名 FROM USER_OBJECTS WHERE OBJECT_TYPE='PROCEDURE';

SELECT OBJECT_NAME 触发器名 FROM USER_OBJECTS WHERE OBJECT_TYPE='TRIGGER';

SELECT OBJECT_NAME 序列名 FROM USER_OBJECTS WHERE OBJECT_TYPE='CURSOR';

SELECT OBJECT_NAME 视图名 FROM USER_OBJECTS WHERE OBJECT_TYPE='VIEW';

SELECT OBJECT_NAME 表名 FROM USER_OBJECTS WHERE OBJECT_TYPE='TABLE';

修改 字段信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
修改表名
ALTER TABLE 原表名 RENAME TO 新表名;

修改字段名
ALTER TABLE 表名 RENAME COLUMN 原字段名 TO 新字段名;

添加字段
ALTER TABLE 表名 ADD (字段名 VARCHAR2(255) NOT NULL);

删除字段
ALTER TABLE 表名 DROP COLUMN 字段名;
修改表注释
COMMENT ON TABLE 表名 IS '要修改的注释';

修改字段注释
COMMENT ON COLUMN 表名.字段名 IS '要修改的注释';

查看表注释

1
2
查询YXDP_B_ACTUAL_FLIGHT_TOTAL中所有字段的注释
SELECT * FROM USER_COL_COMMENTS WHERE TABLE_NAME='YXDP_B_ACTUAL_FLIGHT_TOTAL';

DELETE删除,数据找回方法

1
2
3
4
5
这里查找的数据是2019-05-14的数据,
SELECT * FROM 表名 AS OF TIMESTAMP TO_TIMESTAMP('2019-05-14','yyyy-mm-dd')

把删除的表2数据 重新恢复到表1
INSERT INTO 表名1(SELECT * FROM 表名2 AS OF TIMESTAMP TO_TIMESTAMP('2019-05-14','yyyy-mm-dd '));