oracle 使用sql獲取數據庫表,表的字段

http://blog.csdn.net/luxideyao/article/details/12033885


--第一種方法: 查詢dba_tab_columns

select COLUMN_NAME,DATA_TYPE,DATA_LENGTH  
from   dba_tab_columns
where  table_name =upper('表名')
order by COLUMN_NAME

--這種方法需要有DBA權限

--第二種方法: 查詢user_tab_cols
select  COLUMN_NAME,DATA_TYPE,DATA_LENGTH  
from  user_tab_cols  
where table_name=upper('表名')

order by COLUMN_NAME
--這種方法只能查找當前用戶下的表

--第三種方法: 查詢ALL_TAB_COLUMNS
select distinct COLUMN_NAME,DATA_TYPE,DATA_LENGTH 
from ALL_TAB_COLUMNS
WHERE TABLE_NAME= upper('表名')
--這種方法可以查詢所有用戶下的表

---------------------------補充-------------------------------------------------------------

--增加字段
alter table cw_srcbpb 
add (SRCBPB_RJBPBL varchar2(100) );
alter table cw_srcbpb 
modify (SRCBPB_RJBPBL number(30,3) );
--Oracle查看所有表和字段


--獲取表:

select table_name from user_tables; --當前用戶的表       
select table_name from all_tables; --所有用戶的表   
select table_name from dba_tables; --包括系統表

select table_name from dba_tables where owner='LBSP'; --獲取用戶***所擁有的表這裏的用戶名要記得是用大寫的。
-- 獲取表字段:其實這裏是根據用戶的權限來獲取字段的屬性(表名要大寫)

select * from user_tab_columns where Table_Name='用戶表';--獲取用戶表的所有字段還有字段的屬性。

select * from all_tab_columns where Table_Name='用戶表';--獲取用戶表的所有字段還有字段的屬性。所屬用戶是***

select * from dba_tab_columns where Table_Name='用戶表';--獲取用戶表的所有字段還有字段的屬性。所屬用戶是***


--獲取表註釋:

select * from user_tab_comments

--user_tab_comments:table_name,table_type,comments

--相應的還有dba_tab_comments,all_tab_comments,這兩個比user_tab_comments多了ower列。


--獲取字段註釋:
select * from user_col_comments
--user_col_comments:table_name,column_name,comments
--相應的還有dba_col_comments,all_col_comments,這兩個比user_col_comments多了ower列。
--查詢出用戶所有表的索引
select   *   from   user_indexes
--查詢用戶表的索引(非聚集索引): 
select   *   from   user_indexes where   uniqueness='NONUNIQUE'
--查詢用戶表的主鍵(聚集索引): 
select   *   from   user_indexes where   uniqueness='UNIQUE' 
--查詢表的索引
select t.*,i.index_type from user_ind_columns t,user_indexes i where t.index_name = i.index_name and
t.table_name='NODE'
--查詢表的主鍵
select cu.* from user_cons_columns cu, user_constraints au where cu.constraint_name = au.constraint_name and
au.constraint_type = 'P' AND cu.table_name = 'NODE'
--查找表的唯一性約束(包括名稱,構成列): 
select column_name from user_cons_columns cu, user_constraints au where cu.constraint_name=au.constraint_name and
cu.table_name='NODE'
--查找表的外鍵
select * from user_constraints c where c.constraint_type = 'R' and c.table_name='STAFFPOSITION'
--查詢外鍵約束的列名: 
select * from user_cons_columns cl where cl.constraint_name = 外鍵名稱
--查詢引用表的鍵的列名:
select * from user_cons_columns cl where cl.constraint_name = 外鍵引用表的鍵名

發佈了14 篇原創文章 · 獲贊 26 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章