oracle 使用sql擷取資料庫表,表的欄位

來源:互聯網
上載者:User


--第一種方法: 查詢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 = 外鍵參考資料表的鍵名

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.