覺得你應(yīng)該先弄清楚oracle的常規(guī)數(shù)據(jù)字典的結(jié)構(gòu),像9i里的常規(guī)數(shù)據(jù)字典中對象名稱就有以USER,ALL,DBA為前綴的對象。
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供漢源網(wǎng)站建設(shè)、漢源做網(wǎng)站、漢源網(wǎng)站設(shè)計、漢源網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、漢源企業(yè)網(wǎng)站模板建站服務(wù),十多年漢源做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
以USER為例,我們查該對象下有些什么表,就應(yīng)該執(zhí)行下列的語句:
SQLselect table_name from user_tables;
類似的,你可以進(jìn)行替換。:)
如果你想查數(shù)據(jù)庫中所有的表的話,可以查詢
SELECT * FROM dba_tables
如果你想查詢數(shù)據(jù)庫中某個用戶下的表的話,也可以登錄這個用戶,再查詢:
SELECT * FROM USER_TABLES
要想導(dǎo)入外部sql語句可以用命令
sql @e:\文件名.sql
如你想保存 select * from tablename;語句的結(jié)果,可以在sql*plus 里面這樣:
SPOOL c:\test.sql //這是保存文件的位置
select * from tablename;
SPOOL OFF
1、數(shù)據(jù)文件:
Oracle數(shù)據(jù)庫中每個表空間(tablespace)都是由一個或多個物理數(shù)據(jù)文件(datafile)構(gòu)成的。
當(dāng)一個數(shù)據(jù)文件(datafile)首次被創(chuàng)建時,為其分配的磁盤空間被格式化為Oracle格式,此時其中尚不包含任何用戶數(shù)據(jù)。Oracle將使用這些空間存儲屬于(
與此數(shù)據(jù)文件對應(yīng)的)表空間的段(segment),這些空間專為Oracle使用。隨著表空間內(nèi)的數(shù)據(jù)增長,Oracle使用數(shù)據(jù)文件中的可用空間為段分配新的數(shù)據(jù)擴(kuò)展(extent)。
2、控制文件
控制文件(control
file)是一個二進(jìn)制文件,供數(shù)據(jù)庫啟動及正常工作時使用。
在數(shù)據(jù)庫運(yùn)行過程中,控制文件會頻繁地被Oracle修改,因此數(shù)據(jù)庫處于開啟(open)狀態(tài)時控制文件必須可寫。如果控制文件因故不能訪問,數(shù)據(jù)庫
也將無法正常工作。
每當(dāng)添加,重命名,或移除數(shù)據(jù)庫中的數(shù)據(jù)文件(datafile)及重做日志文件(redo
log
file)時,控制文件(control
file)就會被更新以反映這些數(shù)據(jù)庫物理結(jié)構(gòu)變化。
控制文件是一個2進(jìn)制文件,不可以直接通過文本編輯器進(jìn)行編寫,由Oracle自己進(jìn)行維護(hù),可以通過以下命令查看其內(nèi)容。
show parameter control_files;
desc v$controlfile;
在ORACLE如何查看自己建立的所有表,而不是系統(tǒng)表?1、?在計算機(jī)中,打開Oracle的連接程序,用新建的數(shù)據(jù)庫管理員,進(jìn)入【Oracle控制】的窗口上,鼠標(biāo)左鍵單擊【服務(wù)器】按鈕,并選擇【SQL工作表】,如下圖所示。
2、接著,在【Oracle服務(wù)器】的窗口上,在輸入窗口中輸入SQL查詢語句,并單擊【執(zhí)行】按鈕,可以看到查詢不到索引表,需要調(diào)整SQL語句,如下圖所示。
3、然后,在【SQL工作表】的窗口上,輸入查詢索引表的SQL語句,可以作為參考,如下圖所示。
4、?接著,在【SQL工作表】的窗口上,輸查詢索引表的SQL語句,并單擊【執(zhí)行】按鈕,如下圖所示。
5、然后,在【SQL工作表】的窗口上,可以看到SQL語句執(zhí)行成功的提示信息,查詢到用戶的索引表中的字段,如下圖所示。
6、接著,在【SQL工作表】的窗口上,修改索引表的名稱,并單擊【執(zhí)行】按鈕,如下圖所示。
可以根據(jù)表建時間不同,來將你本人建的表和數(shù)據(jù)庫自動建的表分開,雖然他們都是同一個用戶建的。
在user_table表里沒有建表時間這一字段,可以用user_objects這個表。
數(shù)據(jù)庫系統(tǒng)建的表的時間和oracle發(fā)行版本有關(guān),我的10.2.0.10版中這些都是2005-8-30建的,你本人建的表都大于這個時間?;蛘邔⒎秶s更小些,找你最近兩個月、一年建的表
具體的,如
select * from user_objects where object_type='TABLE' and create sysdate-30;
select * from user_objects where object_type='TABLE' and create to_date('2005-8-31','yyyy-mm-dd');
1、查找表的所有索引(包括索引名,類型,構(gòu)成列):
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、查找表的主鍵(包括名稱,構(gòu)成列):
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、查找表的唯一性約束(包括名稱,構(gòu)成列):
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、查找表的外鍵(包括名稱,引用表的表名和對應(yīng)的鍵名,下面是分成多步查詢):
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、查詢表的所有列及其屬性
select t.*,c.COMMENTS from user_tab_columns t,user_col_comments c where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = 要查詢的表
6、Oracle中每個用戶表的表名和行數(shù)
select table_name,num_rows from user_tables;
7、Oracle查詢用戶表空間:select * from user_all_tables
8、Oracle查詢所有函數(shù)和儲存過程:select * from user_source
9、Oracle查詢所有用戶:
select * from all_users;
select * from dba_users
10、Oracle查看當(dāng)前用戶連接:select * from v$Session
11、Oracle查看當(dāng)前用戶權(quán)限:select * from session_privs
12、Oracle查看用戶表空間使用情況:
select a.file_id "FileNo",a.tablespace_name
"Tablespace_name",
a.bytes "Bytes",a.bytes-sum(nvl(b.bytes,0)) "Used",
sum(nvl(b.bytes,0)) "Free",
sum(nvl(b.bytes,0))/a.bytes*100 "%free"
from dba_data_files a, dba_free_space b
where a.file_id=b.file_id(+)
group by a.tablespace_name ,
a.file_id,a.bytes order by a.tablespace_name;