目录
常用SQL大全
Oracle登录命令
sqlplus 用户名/密码@10.10.10.10:1521/orcl
查看当前用户的所有表
select table_name from tabs;
Oracle查询前5条数据
WHERE ROWNUM <= N(抽出记录数) ORDER BY ROWNUM ASC
Oracle查询指定用户下的所有表
select TABLE_NAME from all_tables a where a.OWNER = upper('数据库用户名');
Oracle查看数据库名称
select name from v$database;
Oracle查看实例名称(sid实例名)
select instance_name from v$instance;
Oracle查看服务名称
show parameter serive_name;
Oracle导出查询结果
spool /user/result.txt(导出路径)
select phone from t_mt where state_true='0';(查询sql)
spool off
Oracle怎样查询表中的top10条记录
select * from test where rownum <=10;
Oracle查看账号密码过期时间
select username,expiry_date from dba_users where username in ('用户名');
Oracle查看当前用户的索引
select * from user_part_indexes;
Oracle查看连接窜
show parameter name;
Oracle查看某条sql耗时
set timing on;(再输入查询的SQL)
Oracle查询默认的密码保存时间
SELECT PROFILE,RESOURCE_NAME,RESOURCE_TYPE,LIMIT FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
Oracle查看已建的索引
SELECT count(0) FROM ALL_INDEXES WHERE TABLE_NAME='索引名称';
Oracle 查看表空间大小及使用率
SELECT UPPER(F.TABLESPACE_NAME),D.TOT_GROOTTE_MB,D.TOT_GROOTTE_MB,F.TOTAL_BYTES,TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100, 2),'990.99'), F.TOTAL_BYTES, F.MAX_BYTES FROM (SELECT TABLESPACE_NAME,ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES FROM SYS.DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F,(SELECT DD.TABLESPACE_NAME,ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB FROM SYS.DBA_DATA_FILES DD GROUP BY DD.TABLESPACE_NAME) D WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME ORDER BY 4 DESC;
修改表字段长度
#alter table...modify
alter table 表名 modify col_name varchar2(60);
#修改多个列
alter table 表名 modify (col_name varchar(60),col_name1 varchar2(60));
存储过程
Oracle查看存储过程
select text from all_source where name = '存储过程名称';
SELECT text
FROM user_source
WHERE NAME = 'Procedure Name'
ORDER BY line;--其中Procedure Name为存储过程名字,需要全部用大写英文。
PLSQL查看存储过程
#切换SQL窗口,输入:view+存储过程名称
view HEPAYHIS.CCGIM
分区
删除指定分区
#只会清空分区数据,不会删除分区
alter table 表名 truncate partition分区名 (推荐使用)
#连数据分区一起删除清空
alter table 表名 drop partition 分区名; (慎用)
查看某一分区的数据量
#select .....partition(分区名);
select count(*) from 表名 partition(分区名);
查看某表分区明细
SELECT PARTITION_NAME
FROM ALL_TAB_PARTITIONS t
WHERE t.TABLE_OWNER = '用户名'
and substr(t.PARTITION_NAME, 3, 4) in ('截图分区账期')
and t.table_name in ('表名');