-- 語句1
SELECT * FROM tab;
-- 語句2
SELECT table_name FROM user_tables;
| 維度 | tab | user_tables |
|---|---|---|
| 對象類型 | 同義詞/視圖(指向SYS.TAB$) | 數據字典視圖(標準接口) |
| 返回範圍 | 當前用戶擁有的表、視圖、同義詞、簇 | 僅當前用戶擁有的表 |
| 列信息 | TNAME, TABTYPE, CLUSTERID | TABLE_NAME, TABLESPACE_NAME, ... 40+列 |
| 標準化程度 | Oracle專有,舊版本兼容 | 符合SQL標準信息模式 |
| 性能 | 較快(較少列) | 稍慢(豐富元數據) |
-- tab 輸出
TNAME TABTYPE CLUSTERID
---------- ------- ----------
EMP TABLE
DEPT TABLE
V_EMP_DEPT VIEW
SYN_EMP SYNONYM
-- user_tables 輸出
TABLE_NAME TABLESPACE_NAME ...
---------- --------------- ---
EMP USERS ...
DEPT USERS ...
-- 當前用戶所有對象
SELECT object_name, object_type FROM user_objects;
-- 表結構詳情
SELECT column_name, data_type, nullable FROM user_tab_columns WHERE table_name='EMP';
-- 索引信息
SELECT index_name, uniqueness FROM user_indexes WHERE table_name='EMP';
`tab`是歷史產物,功能單一;`user_tables`是規範接口,功能完整。新項目請直接使用標準字典視圖。