Oracle常用查询

-- 创建ORACLE SEQUENCE
CREATE SEQUENCE SEQ_TEST
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
NOCYCLE --达到最大值后不循环
CACHE 50 --缓存 提高性能 

-- 查询SEQUENCE
SELECT SEQ_TEST.NEXTVAL FROM DUAL;
SELECT SEQ_TEST.CURRVALFROM DUAL;

-- 表重命名
RENAME TEST1 TO TEST2;

-- 增加字段
ALTER TABLE TEST2 ADD ADDRESS VARCHAR2(40);
ALTER TABLE TEST2 ADD NOTE VARCHAR2(40);

-- 查看表结构
SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME='TEST2';
SELECT * FROM USER_TAB_COLUMNS WHERE TABLE_NAME='CLASSES';

-- 删除表
DROP TABLE CLASSES

-- 插入数据
INSERT INTO TEST2 VALUES(1,'301','4#4','CE');

-- 查询数据
SELECT * FROM TEST2;

--删除数据
DELETE FROM TEST2 WHERE ID=5;

-- 查询数据库的启动模式,在SYSDBA角色中使用
SELECT OPEN_MODE FROM V$DATABASE;

-- 查询控制文件
SELECT NAME FROM V$CONTROLFILE;

-- 查询SGA情况
SELECT NAME, BYTES FROM SYS.V_$SGASTAT ORDER BY NAME ASC

-- 查询有哪些数据库实例在运行
SELECT INST_NAME FROM V$ACTIVE_INSTANCES;

-- 查看连接数,修改连接数
SHOW PARAMETER PROCESSES;
ALTER SYSTEM SET PROCESSES=300 SCOPE=SPFILE;

-- 查询数据库当前进程的连接数:
SELECT COUNT(*) FROM V$PROCESS;

-- 查看数据库当前会话的连接数:
SELECT COUNT(*) FROM V$SESSION;

-- 查看数据库的并发连接数:
SELECT COUNT(*) FROM V$SESSION WHERE STATUS='ACTIVE';

-- 查看当前数据库建立的会话情况:
SELECT SID,SERIAL#,USERNAME,PROGRAM,MACHINE,STATUS FROM V$SESSION;

-- 查询数据库允许的最大连接数:
SELECT VALUE FROM V$PARAMETER WHERE NAME = 'PROCESSES';

-- 查看最近执行的SQL语句
SELECT * FROM V$SQL

-- 查看最近所作的操作
SELECT * FROM V$SQLAREA

--查询当前数据库的名称
SELECT NAME FROM V$DATABASE;

-- 查询当前实例名
SELECT INSTANCE_NAME FROM V$INSTANCE;

-- 创建用户并设置密码
ALTER USER TEST IDENTIFIED BY 123456;

-- 给用户授权
GRANT CREATE SESSION,CREATE TABLE,UNLIMITED TABLESPACE TO TEST;

-- 创建表空间
--WINDOWS:
CREATE TABLESPACE ABC DATAFILE 'G:DBDATATBSPABC.DBF' SIZE 3000M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;
CREATE TEMPORARY TABLESPACE ABC_TMP TEMPFILE 'G:DBDATATBSPABC_TMP.DBF' SIZE 1000M AUTOEXTEND ON;
--LINUX:
CREATE TABLESPACE ABC DATAFILE '/VAR/ORACLE/USER01/ORADATA/ABC.DBF' SIZE 30000M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;
CREATE TEMPORARY TABLESPACE ABC_TEMP TEMPFILE '/VAR/ORACLE/USER01/ORADATA/ABC_TEMP_01.DBF' SIZE 1000M AUTOEXTEND ON;

-- 将表空间分配给用户
ALTER USER TEST DEFAULT TABLESPACE DATA_TEST;

-- 查询数据库信息
SELECT BANNER FROM SYS.V_$VERSION;

-- 查询表名注释
SELECT B.COMMENTS AS 注释 FROMUSER_TAB_COMMENTS B WHERE B.TABLE_NAME='TEST'

-- 查询全部数据表结构
SELECT*FROM USER_TAB_COLUMNS WHERE TABLE_NAME = UPPER('TEST');

-- 查询一个用户下的表
SELECT COUNT(*) FROM USER_TABLES;
SELECT COUNT(0) FROM DBA_OBJECTS WHERE OWNER = 'TEST' AND OBJECT_TYPE IN ('TABLE','VIEW') GROUP BY OBJECT_TYPE

-- 创建视图
CREATE VIEW V_ABC AS
SELECT * FROM ABC WHERE ROWNUM <100
SELECT * FROM V_ABC
-- 新建视图用户 VIEW_01 并赋予SELECT_CATALOG_ROLE角色 和 改视图的SELECT权限 ,在SYSTEM PRIVILEGE中需要CREATE SESSION权限用于登录
-- 登录 VIEW_01 用户 并查询U1用户的视图
SELECT * FROM U1.V_ABC

--查询主键
SELECT COL.COLUMN_NAME
FROM USER_CONSTRAINTS CON, USER_CONS_COLUMNS COL
WHERE CON.CONSTRAINT_NAME = COL.CONSTRAINT_NAME
AND CON.CONSTRAINT_TYPE = 'P'
AND COL.TABLE_NAME = 'TEST';--数据表名要大写

--导出、导入数据库
EXP USER01/PWD@ORCL FILE=/HOME/ORACLE/USER01.DMP FULL=Y
EXP USER01/PWD@ORCL FILE=/HOME/ORACLE/USER01.DMP OWNER=USER01
IMP GCSJ/PWD FILE=GCSJ.DMP FULL=Y

--1、 将数据库TEST完全导出,用户名SYSTEM 密码MANAGER 导出到D:DAOCHU.DMP中
EXP SYSTEM/MANAGER@TEST FILE=D:DAOCHU.DMP FULL=Y
--2、 将数据库中SYSTEM用户与SYS用户的表导出
EXP SYSTEM/MANAGER@TEST FILE=D:TEST1.DMP OWNER=(TEST1,TEST2)

--查询表空间文件和表空间名。
SELECT FILE_NAME,TABLESPACE_NAME FROM DBA_DATA_FILES;

--三表关联查询
SELECT C.PPP, A.WDD, B.AWD
FROM TEST1 A
JOIN TEST2 B ON A.ID = B.ID
 AND ID = 1
JOIN TEST3 C ON B.CCC = C.CCC;
原文地址:https://www.cnblogs.com/Tiago/p/6062520.html