簡單的資料表統計
USER_CONS_OBJ_COLUMNS
USER_CONS_OBJ_COLUMNS displays information about the types that object columns (or attributes) or collection elements have been constrained to,
in the tables owned by the current user. Its columns (except for OWNER) are the same as those in ALL_CONS_OBJ_COLUMNS.
USER_CONS_OBJ_COLUMNS displays information about the types that object columns (or attributes) or collection elements have been constrained to,
in the tables owned by the current user. Its columns (except for OWNER) are the same as those in ALL_CONS_OBJ_COLUMNS.
USER_CONS_COLUMNS
USER_CONS_COLUMNS describes columns that are owned by the current user and that are specified in constraint definitions.
Its columns are the same as those in "ALL_CONS_COLUMNS".
在當前使用者的約束中用到的列都會在檢視user_cons_columns中記錄。
也就是說,如果我要顯示哪些列是主鍵、外來鍵,可以通過此檢視來獲取。
也就是說,如果我要顯示哪些列是主鍵、外來鍵,可以通過此檢視來獲取。
檢視
select ucc.table_name,ucc.column_name,ucc.constraint_name,
decode(uc.constraint_type,'P','主鍵','F','外來鍵')
from user_cons_columns ucc
inner join user_constraints uc
on ucc.constraint_name=uc.constraint_name
where ucc.constraint_name not like '%$%'
and uc.constraint_type in ('P','F');
select ucc.table_name,ucc.column_name,ucc.constraint_name,
decode(uc.constraint_type,'P','主鍵','F','外來鍵')
from user_cons_columns ucc
inner join user_constraints uc
on ucc.constraint_name=uc.constraint_name
where ucc.constraint_name not like '%$%'
and uc.constraint_type in ('P','F');
現在要得到一個表格,需要的列為:
表名稱 欄位名稱 中文解釋 型別 備註
表名稱 欄位名稱 中文解釋 型別 備註
備註中顯示該列是否為主鍵、外來鍵
我的想法是:
select a.table_name,a.column_name,b.comments ,a.data_type,
/*ucc.constraint_name,*/decode(uc.constraint_type,'P','主鍵','R','外來鍵')
from dba_tab_cols a
left join dba_col_comments b
on a.table_name=b.TABLE_NAME
and a.column_name=b.column_name
left join user_cons_columns ucc
on ucc.table_name=a.table_name
and ucc.column_name=a.column_name
and ucc.constraint_name not like '%$%'
left join user_constraints uc
on ucc.constraint_name=uc.constraint_name
and uc.constraint_type in ('P','R')
where a.owner = 'ATT'
and a.table_name not like '%$%'
and a.table_name not in ('TEST','T')
order by a.table_name,a.column_id;
select a.table_name,a.column_name,b.comments ,a.data_type,
/*ucc.constraint_name,*/decode(uc.constraint_type,'P','主鍵','R','外來鍵')
from dba_tab_cols a
left join dba_col_comments b
on a.table_name=b.TABLE_NAME
and a.column_name=b.column_name
left join user_cons_columns ucc
on ucc.table_name=a.table_name
and ucc.column_name=a.column_name
and ucc.constraint_name not like '%$%'
left join user_constraints uc
on ucc.constraint_name=uc.constraint_name
and uc.constraint_type in ('P','R')
where a.owner = 'ATT'
and a.table_name not like '%$%'
and a.table_name not in ('TEST','T')
order by a.table_name,a.column_id;
但對於既是主鍵、也是外來鍵的列,不能用此方法,因為其會產生兩條記錄。
根源在user_cons_columns,該表中既是主鍵,也是外來鍵的列,對應兩條記錄。
最後我們將結果改成了以下形式
TABLE_NAME COLUMN_NAME COMMENTS DATA_TYPE PK_YN FK_YN
TABLE_NAME COLUMN_NAME COMMENTS DATA_TYPE PK_YN FK_YN
pk_yn、fk_yn分別表示是否為主、外來鍵。
若生成html格式的結果,步驟為:
column table_name format a30
column column_name format a30
column comments format a50
column data_type format a20
column pk_yn format a5
column fk_yn format a5
set linesize 3000
set pagesize 10000
set trimspool on
set mark html on entmap off
spool a.html
spool off
column column_name format a30
column comments format a50
column data_type format a20
column pk_yn format a5
column fk_yn format a5
set linesize 3000
set pagesize 10000
set trimspool on
set mark html on entmap off
spool a.html
spool off
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26451536/viewspace-767212/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ACCESS 在資料表中實現簡單計算
- 資料庫表連線的簡單解釋資料庫
- sql統計各種奇葩的資料庫表資料SQL資料庫
- 簡單的BBS論壇 資料庫設計資料庫
- 如何建立最簡單的 ABAP 資料庫表,以及編碼從資料庫表中讀取資料 (上)資料庫
- 微信如何在群裡進行資料統計,教你傳送表單網頁輕鬆統計資料網頁
- SSIS 開發篇-做一個簡單的SqlServer資料表資料遷移SQLServer
- 簡單介紹mysql如何刪除資料表和關聯的資料表刪除詳情MySql
- 簡單的資料輸入
- 兩種簡單分析和優化MySQL資料庫表的方法優化MySql資料庫
- 簡單的選課系統(2)——資料庫的連線資料庫
- 資料字典和固定表統計資訊更新
- JAVA簡單的複習資料Java
- form表單的簡單介紹ORM
- [轉帖]達夢資料庫-統計資料表資料量及空間表大小資料庫
- MySQL資料庫表索引取樣統計MySql資料庫索引
- MySQL如何按周統計表中資料MySql
- 內外網資料的簡單單向同步
- 設計一個簡單的devops系統dev
- 表單資料驗證
- 038 收集表單資料
- Ajax 提交表單資料
- 計算機更喜歡清單型資料表!!!計算機
- 資料分析 | 用 SeaTable 表格快速統計分析訂單資料
- Flexbox 佈局的最簡單表單Flex
- 簡單易用的前端模擬資料前端
- 不簡單的基本資料型別資料型別
- 萬億級資料的方法,簡單易懂!
- 建立簡單的表測試
- 史上最簡單的推薦系統設計
- Nginx入門教程(五)---訪問日誌簡單分析,統計PV、UV等資料。Nginx
- Mysql-基本練習(09-刪除單表記錄、查詢指定列資料、列的別名、簡單單表條件查詢、簡單分組查詢)MySql
- Laravel 表單輸入資料Laravel
- 資料庫 表單運用資料庫
- Struts2框架自學之路——Action獲取表單資料的方式以及表單資料的封裝框架封裝
- 用強資料型別保護你的表單資料-基於antd表單的型別約束資料型別
- 資料結構簡單題資料結構
- ORACLE表統計資訊與列統計資訊、索引統計資訊Oracle索引
- 簡單的自定義表單控制元件控制元件