蒐集oracle資料庫小技巧

2021-07-30 08:27:10 字數 2192 閱讀 8862

1、檢視全庫表狀態

oracle中檢視所有的表: select * from tab/dba_tables/dba_objects/cat;

看使用者建立的表 : select table_name from user_tables;

當前使用者的表 select table_name from all_tables;

所有使用者的表 select table_name from dba_tables; //包括系統表

可以查詢出所有的使用者表索引 select * from user_indexes

查所有使用者的表在all_tables 主鍵名稱、外來鍵在all_constraints 索引在all_indexes 但主鍵也會成為索引,所以主鍵也會在all_indexes裡面。

具體需要的字段可以desc下這幾個view,dba登陸的話可以把all換成dba

1、查詢表的所有索引(包括索引名,型別,構成列):

select t.*,i.index_type from user_ind_columns t,user_indexes i

where t.index_name = i.index_name and t.table_name = i.table_name and t.table_name = 要查詢的表

2、查詢表的主鍵(包括名稱,構成列):

select cu.* from user_cons_columns cu, user_constraints au

where cu.constraint_name = au.constraint_name and au.constraint_type = 'p' and au.table_name = 要查詢的表

3、查詢表的唯一性約束(包括名稱,構成列):

select column_name from user_cons_columns cu, user_constraints au

where cu.constraint_name = au.constraint_name and au.constraint_type = 'u' and au.table_name = 要查詢的表

4、查詢表的外來鍵(包括名稱,引用表的表名和對應的鍵名,下面是分成多步查詢):

select * from user_constraints c where c.constraint_type = 'r' and c.table_name = 要查詢的表查詢外來鍵約束的列名:

select * from user_cons_columns cl where cl.constraint_name = 外來鍵名稱查詢引用表的鍵的列名:

select * from user_cons_columns cl where cl.constraint_name = 外來鍵引用表的鍵名

5、查詢表的所有列及其屬性

where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = 要查詢的表

2、行轉列(多行拼一行)函式

listagg函式,語法結構如下:

listagg( [,]) within group (order by ) [over (partition by )]

listagg雖然是聚合函式,但可以提供分析功能(比如可選的over()子句)。使用listagg中,下列中的元素是必須的:

•需要聚合的列或者表示式 

•分組中的order by子句

例子:deptno ename

--------- ----------

10 clark

10 king

10 miller

20 adams

20 ford

20 jones

按照deptno欄位分組,對結果集進行字串聚合,結果如下:

deptno aggregated_enames

--------- -------------------------

10 clark,king,miller

20 adams,ford,jones

sql:

select deptno,listagg(ename, ',') within group (order by ename) as employees from  emp group by deptno;

Oracle 資料庫小技巧整理

1 關於監聽程式建立不了 服務內不顯示監聽服務 這個問題我遇到的是使用者許可權不夠,在命令行內輸入netca,建立服務,發現出現配置檔案不能儲存的io錯誤。解決方法 以管理員身份執行命令列,然後執行netca命令建立監聽服務 lsnrctl start 啟動監聽服務即可 lsnrctl status...

資料庫小技巧

1.返回第乙個非空數值 select coalesce null,null,null,w3schools.com null,example.com 返回 w3schools.com select coalesce null,1,2,w3schools.com 返回 1 應用 將乙個欄位中空值全部替換...

資料庫使用小技巧

包括安裝時提示有掛起的操作 收縮資料庫 壓縮資料庫 轉移資料庫給新使用者以已存在使用者許可權 檢查備份集 修復資料庫等。一 掛起操作 在安裝sql或sp補丁的時候系統提示之前有掛起的安裝操作,要求重啟,這裡往往重啟無用,解決辦法 到hkey local machine system currentc...