首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Oracle 表空間與表結構查詢速查:從用戶表到系統視圖的完整 SQL 指南

     編輯:Oracle 資料庫基礎

高頻查詢 SQL 清單

1. 查看表結構

DESC 表名;
-- 或
SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH, NULLABLE, DATA_DEFAULT
FROM USER_TAB_COLUMNS WHERE TABLE_NAME = UPPER('表名');

2. 當前用戶擁有的表

SELECT TABLE_NAME FROM USER_TABLES;

3. 當前用戶可訪問的所有表(含其他用戶授權)

SELECT OWNER, TABLE_NAME FROM ALL_TABLES;

4. 數據庫中所有表(含系統表,需 DBA 權限)

SELECT OWNER, TABLE_NAME FROM DBA_TABLES;

5. 綜合視圖:TAB / DBA_OBJECTS / CAT

-- TAB:當前用戶表/視圖/同義詞/序列簡覽
SELECT * FROM TAB;

-- DBA_OBJECTS:所有對象元數據(需 DBA)
SELECT OWNER, OBJECT_NAME, OBJECT_TYPE, CREATED, LAST_DDL_TIME
FROM DBA_OBJECTS WHERE OBJECT_TYPE = 'TABLE';

-- CAT:當前用戶表/視圖/同義詞別名
SELECT * FROM CAT;

進階:表空間使用情況查詢

-- 表空間總量/已用/剩餘/使用率
SELECT TBS.TABLESPACE_NAME,
       ROUND(TBS.TOTAL_MB,2) TOTAL_MB,
       ROUND(TBS.TOTAL_MB - NVL(FRS.FREE_MB,0),2) USED_MB,
       ROUND(NVL(FRS.FREE_MB,0),2) FREE_MB,
       ROUND((TBS.TOTAL_MB - NVL(FRS.FREE_MB,0))/TBS.TOTAL_MB*100,2) PCT_USED
FROM (SELECT TABLESPACE_NAME, SUM(BYTES)/1024/1024 TOTAL_MB
      FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) TBS,
     (SELECT TABLESPACE_NAME, SUM(BYTES)/1024/1024 FREE_MB
      FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) FRS
WHERE TBS.TABLESPACE_NAME = FRS.TABLESPACE_NAME(+)
ORDER BY PCT_USED DESC;

權限說明

  • USER_* 視圖:無需特權,僅見當前用戶對象。
  • ALL_* 視圖:見當前用戶擁有+被授權對象。
  • DBA_* 視圖:需 SELECT ANY DICTIONARY 或 DBA 角色,見全庫對象。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved