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

Oracle 查詢表與欄位元數據完整指南:USER_TABLES、USER_TAB_COLUMNS 實戰

     編輯:Oracle 資料庫基礎

查詢用戶表基本信息

使用 USER_TABLES 視圖可獲取當前用戶擁有的所有表信息。

SELECT table_name, tablespace_name, temporary
FROM user_tables
[WHERE table_name = '表名'];

欄位說明:

  • TABLE_NAME:表名 (VARCHAR2(30))
  • TABLESPACE_NAME:所屬表空間 (VARCHAR2(30))
  • TEMPORARY:是否臨時表 (Y/N,VARCHAR2(1))

範例

SQL> SELECT table_name, tablespace_name, temporary
  2  FROM user_tables
  3  WHERE table_name = 'TEST_TEMP';

TABLE_NAME  TABLESPACE_NAME  TEMPORARY
----------- ---------------- ---------
TEST_TEMP   SDMP             N

注意:WHERE 條件中的表名變量值必須大寫,Oracle 數據字典存儲的對象名預設為大寫。

查詢表欄位定義

使用 USER_TAB_COLUMNS 視圖獲取欄位詳細屬性。

SELECT column_name, data_type, data_length, data_precision, data_scale
FROM user_tab_columns
[WHERE table_name = '表名'];

欄位說明:

  • COLUMN_NAME:欄位名 (VARCHAR2(30))
  • DATA_TYPE:數據類型 (VARCHAR2(106))
  • DATA_LENGTH:長度 (NUMBER)
  • DATA_PRECISION:精度(數字類型)
  • DATA_SCALE:標度(數字類型)

範例

SQL> SELECT column_name, data_type, data_length, data_precision, data_scale
  2  FROM user_tab_columns
  3  WHERE table_name = 'TEST_TEMP';

COLUMN_NAME  DATA_TYPE  DATA_LENGTH  DATA_PRECISION  DATA_SCALE
------------ ---------- ------------ --------------- ----------
ID           NUMBER                22               0
NAME         NVARCHAR2             20
SEX          CHAR                   1
GRADE        NVARCHAR2             10

進階:跨用戶查詢與 ALL_TAB_COLUMNS

若擁有權限,可使用 ALL_TAB_COLUMNS 查詢可訪問的所有用戶表欄位:

SELECT * FROM all_tab_columns WHERE table_name = 'TEST_TEMP';

此視圖包含 OWNER 欄位,可識別表所屬 Schema。

常用擴展查詢

  • 查看表註釋:SELECT * FROM user_tab_comments WHERE table_name = '...';
  • 查看欄位註釋:SELECT * FROM user_col_comments WHERE table_name = '...';
  • 查看索引欄位:SELECT * FROM user_ind_columns WHERE table_name = '...';
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved