ORACLE常用sql语句

在学习Oracle过程中,学习到了一些常用的SQL语句,现在整理一下,供大家参考和学习

1、SELECT TABLE(查看表信息)

--当前用户
SELECT TABLE_NAME,TABLESPACE_NAME FROM USER_TABLES;
--所有用户
SELECT TABLE_NAME,TABLESPACE_NAME FROM ALL_TABLES;

2、ADD CONSTRAINT(增加约束)
ALTER TABLE TABLE_NAME ADD CONSTRAINT CONSTRAINT_NAME PRIMARY KEY(COLUMN_NAME);
ALTER TABLE TABLE_NAME ADD CONSTRAINT CONSTRAINT_NAME UNIQUE(COLUMN_NAME);

3、DROP CONSTRAINT(删除约束)
ALTER TABLE TABLE_NAME DROP CONSTRAINT CONSTRAINT_NAME;

4、SELECT CONSTRAINT(查询约束)
SELECT CU.CONSTRAINT_NAME,CU.TABLE_NAME,CU.COLUMN_NAME 
FROM USER_CONS_COLUMNS CU, USER_CONSTRAINTS AU 
WHERE CU.CONSTRAINT_NAME = AU.CONSTRAINT_NAME AND AU.CONSTRAINT_TYPE = 'P';

SELECT CU.CONSTRAINT_NAME,CU.TABLE_NAME,CU.COLUMN_NAME 
FROM USER_CONS_COLUMNS CU, USER_CONSTRAINTS AU 
WHERE CU.CONSTRAINT_NAME = AU.CONSTRAINT_NAME AND AU.CONSTRAINT_TYPE = 'U';

5、CREATE SEQ(创建序列)
CREATE SEQUENCE SEQ_NAME
INCREMENT BY 1 -- 每次加几个
START WITH 1 -- 从1开始计数
NOMAXVALUE -- 不设置最大值
NOCYCLE -- 一直累加,不循环
CACHE 10;

6、DROP SEQ(删除序列)
DROP SEQUENCE SEQ_NAME 

7、SELECT SEQ(查询序列)
SELECT SEQUENCE_NAME FROM USER_SEQUENCES;

8、CREATE TRIGGER(为sequence自增创建触发器)
CREATE OR REPLACE TRIGGER TRI_NAME
BEFORE INSERT ON TABLE_NAME
FOR EACH ROW
BEGIN
 :NEW.COLUMN_NAME:=SEQ_NAME.NEXTVAL;
END;

9、RENAME NAME (重命名)
ALTER TABLE TABLE_NAME RENAME COLUMN OLD_COLUMN_NAME TO NEW_COLUMN_NAME;
ALTER TABLE TABLE_NAME RENAME TO NEW_COLUMN_NAME;

10、CREATE JOB(创建触发器)
BEGIN
  SYS.DBMS_SCHEDULER.CREATE_JOB(JOB_NAME            => 'EP_DAY_JD_SALE',
                                JOB_TYPE            => 'STORED_PROCEDURE',
                                --PROCEDURE_NAME
                                JOB_ACTION          => 'P_DAY_JD_SALE',
                                START_DATE          => TO_DATE('18-11-2014 03:00:00', 'DD-MM-YYYY HH24:MI:SS'),
                                REPEAT_INTERVAL     => 'FREQ=DAILY;INTERVAL=1',
                                END_DATE            => TO_DATE(NULL),
                                JOB_CLASS           => 'DEFAULT_JOB_CLASS',
                                ENABLED             => FALSE,
                                AUTO_DROP           => TRUE,
                                COMMENTS            => '');
END;

11、CREATE PROCEDURE(创建存储过程)
CREATE OR REPLACE PROCEDURE PRO_NAME(PARAMETER IN OUT DATA_TYPE)
IS
--保存表中记录的尽量使用COL%TYPE,这样可以避免因数据结构调整而不断修改存储过程内容
V_PARAM1 OWNER.TABLE_NAME.COL%TYPE;
V_COUNT NUMBER(2,0);
BEGIN
--将表中记录保存到一个变量时,为了避免值为null,可以使用MAX(COL)或MIN(COL)
SELECT MAX(COL) INTO V_PARAM1 FROM TABLE_NAME WHERE CONDITION;

--只是为了判断是否存在记录,可以在条件后面加上ROWNUM<=1,可以避免查询所消耗的时间
SELECT COUNT(*) INTO V_COUNT FROM TABLE_NAME WHERE CONDITION AND ROWNUM<=1;
IF COUNT>0 THEN
DO SOMETHING;
ELSE 
DO OTHER THINGS;
END IF;

END PRO_NAME;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
changefilter.sql oracle的连接数查看和连接用户的查看.sql Sun30新建oracle用户.sql user_job.sql xaview.sql 修改分区索引.SQL 修改数据库核心字符集.txt 僵死进程查询.sql 创建ORACLE表空间.sql 回滚段等待.SQL 在数据库中建JOB.sql 外连接.SQL 外部例程.SQL 建6节点回滚段.SQL 建回滚段.SQL 建立一个与现存数据库相同但不含数据的空库.sql 扩展超过100M查询.sql 整理表空间碎片.sql 新建表.sql 显示数据文件信息.sql 查插入表的性能.sql 查看session正在执行什么SQL.sql 查看session正在等待何种系统资源.sql 查看哪些session正在使用哪些回滚段.sql 查看某个进程正在执行什么SQL语句.sql 查看用户表所占空间的大小.sql 查看系统SGA区状态.sql 查看系统中使用了哪些设备文件.sql 查看系统中每个表空间的使用情况.sql 查看系统中每个表空间的大小.sql 查看系统联接数.sql 查看系统锁.sql 查看表空间使用情况.sql 查看进程占用回滚段的情况.sql 查看那些数据库对象被修改过.sql 用oupput的ora过程.sql 用户命令查询.sql 用户进程查询.sql 监控数据库性能的SQL.sql 看user_job.sql 索引表清除sql生成.sql 索引表空间使用情况查询.sql 索引表空间整理.sql 统计.sql 获取数据库版本信息.sql 表空间使用情况.txt 表空间使用查询.sql 表空间剩余空间查看.sql 表空间回收.sql 过滤表清除sql生成.sql 进程使用回滚段查询.sql 锁表查询.sql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值