慢慢整理,方便自己以後查找。
1、登錄
-- 不用密碼登錄
sqlplus/nolog
-- 使用賬號密碼登錄,as sysdba 使用管理員權限登錄
sqlplus 【用戶名】/【密碼】 as sysdba
2、查看基本信息
2.0 查詢表中數據
-- 查詢前十條信息
1) select * from tbname where rownum < 11;
2) select * from (select * from tbname order by id desc ) where rownum<=10;
2.1 查看當前用戶
-- 查看自己的是哪個用戶
SHOW USER;
-- 查詢所有用戶
SELECT * FROM user_users;
-- 查看當前用戶詳細信息
select * from user_users;
2.2 查看角色
2.2.1 查看所有角色
-- 查看所有角色
SELECT * FROM dba_roles;
2.2.2 查看當前用戶所擁有的角色
SELECT * FROM user_role_prives
2.2.3 查詢當前會話所擁有的角色(一個會話以一個命令窗口爲準)
SELECT * FROM session_roles;
2.3 查看錶空間名稱及大小
SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size
FROM dba_tablespaces t, dba_data_files d
WHERE t.tablespace_name = d.tablespace_name
GROUP BY t.tablespace_name;
2.4 查看錶結構
DESC 表名
DESC tableName;
2.5查看錶空間物理文件的名稱及大小
SELECT tablespace_name, file_id, file_name, round(bytes / (1024 * 1024), 0) total_space
FROM dba_data_files
ORDER BY tablespace_name;
2.6 查詢某個用戶擁有的權限(只有dba能查)
2.7 查看當前數據庫的一些詳細參數(比如查詢字符編碼)
-- 查詢數據庫詳細信息
SELECT * FROM NLS_DATABASE_PARAMETERS;
-- 查詢字符編碼
SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET'
-- 查詢數據庫版本及其他信息
SELECT * FROM v$version
SELECT * FROM PRODUCT_COMPONENT_VERSION;
2.8 通過rowid查詢某一行所在的數據文件
SELECT file_name, file_id
FROM dba_data_files
WHERE file_id IN (
SELECT DISTINCT dbms_rowid.rowid_relative_fno(rowid)
FROM sofa.demovo
);
2.9 查看回滾段名稱及大小
SELECT segment_name, tablespace_name, r.status, (initial_extent / 1024) initialextent,
(next_extent / 1024) nextextent, max_extents, v.curext curextent
FROM dba_rollback_segs r, v$rollstat v
WHERE r.segment_id = v.usn(+)
ORDER BY segment_name;
2.10 查看錶空間的使用情況
SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name
FROM dba_free_space
GROUP BY tablespace_name;
SELECT a.tablespace_name, a.bytes total, b.bytes used, c.bytes free,
(b.bytes * 100) / a.bytes "% USED ", (c.bytes * 100) / a.bytes "% FREE "
FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c
WHERE a.tablespace_name = b.tablespace_name
AND a.tablespace_name = c.tablespace_name;
2.11 查看數據庫的創建日期和歸檔方式
SELECT created, log_mode, log_mode FROM v$database;
--1G=1024MB
--1M=1024KB
--1K=1024Bytes
--1M=11048576Bytes
--1G=1024*11048576Bytes=11313741824Bytes
SELECT a.tablespace_name "表空間名",
total "表空間大小",
free "表空間剩餘大小",
(total - free) "表空間使用大小",
total / (1024 * 1024 * 1024) "表空間大小(G)",
free / (1024 * 1024 * 1024) "表空間剩餘大小(G)",
(total - free) / (1024 * 1024 * 1024) "表空間使用大小(G)",
round((total - free) / total, 4) * 100 "使用率 %"
FROM (
SELECT tablespace_name, SUM(bytes) free
FROM dba_free_space
GROUP BY tablespace_name
) a, (
SELECT tablespace_name, SUM(bytes) total
FROM dba_data_files
GROUP BY tablespace_name
) b
WHERE a.tablespace_name = b.tablespace_name
3、切換用戶
conn useName/password
conn useName/password as sysdba
4、創建表空間、創建用戶並授權
5、修改信息
5.0 修改一條信息
語法:UPDATE 表名 SET 列名1=值,列名2=值…… WHERE 條件
UPDATE INFOS SET CLASSNO='1002',STUADDRESS='山東萊蕪' WHERE STUNAME='阮小二';
5.1 修改表空間狀態
表空間的狀態屬性主要有在線(online),離線(offline),只讀(read only)和讀寫(read write)四種,
其中只讀與讀寫狀態屬於在線狀態的特殊情況
-- 當表空間的狀態爲online時,才允許訪問該表空間中的數據。
ALTER TABLESPACE tablespace_name online;
當表空間的狀態爲offline時,不允許訪問該表空間中的數據。此時向表空間中創建表或者讀取表空間的表數據操作
都將無法進行,這時可以對錶空間進行脫機備份,也可以對應用程序進行升級和維護等
--parameter表示將表空間切換爲offline狀態時可以使用的參數。
alter tablespace tablespace_name offline parameter;
--其中parameter參數主要有:
-- normal
-- temporary
-- immediate
-- for recover
當表空間的狀態爲read only時,雖然可以訪問表空間的數據,但範文僅僅僅限於閱讀,而不能進行任何的
更新和刪除操作,目的是爲了保證表空間的數據安全。
如果表空間不是read only狀態的,可以使用ater tablespace語句將其狀態修改爲read only
不過,將表空間的狀態修改爲read only之前,需要注意如下的事項:
1.表空間必須處於online狀態
2.表空間不能包含任何事務的回退段
3.表空間不能正處於在線的數據庫備份期間
alter tablespace tablespace_name read only;
當表空間的狀態爲read write時,可以對錶空間進行正常訪問,包括對錶空間中的數據進行查詢,更新和操作。
如果表空間不是read write狀態的,可以使用alter tablespace語句將其狀態修改爲read write
修改表空間的狀態爲read write,也需要保證表空間處於online狀態。
alter tablespace tablespace_name read write;
5.2 修改表狀態
Oracle 11g推出了一個新特性,用戶可以將表置於READ_ONLY(只讀)狀態,處於該狀態下的表不能執行DML和DDL操作。
在Oracle 11g之前爲了使某張表處於READ_ONLY狀態,只能通過將整個表空間或者數據庫置於READ_ONLY狀態。
ALTER TABLE TABLENAME READ ONLY;
5.3 修改表中列名和列類型
6、刪除信息
語法: DELETE FROM 表名 WHERE 條件
DELETE命令是DML命令,刪除後的數據可以通過日誌文件恢復
7、導入、導出
7.1 導出
exp 用戶名/密碼@網絡服務名 file=xxx.dmp tables=(表名);
7.1.1 實例數據完全導出
導出指定實例下的所有數據
-- 將數據庫TEST完全導出,用戶名system 密碼manager 導出到D:\test.dmp中
exp username/password@127.0.0.1/orcl file=d:\test.dmp full=y
7.1.2、用戶數據導出
導出指定實例下指定用戶的數據,如下爲導出用戶myoracle1和用戶myoracle2的數據
-- 將數據庫中myoracle1用戶與myoracle2用戶的表導出
exp username/password@127.0.0.1/orcl file=d:\test.dmp owner=(myoracle1,myoracle2);
7.1.3、具體表數據導出
導出指定實例下指定用戶下的具體表的數據,如下即爲導出實例orcl,用戶username下的t_user表和t_role表的數據
-- 將數據庫中的表t_user、t_role導出
exp username/password@127.0.0.1/orcl file=d:\data\test.dmp tables=(t_user,t_role)
7.2 導入
imp 用戶名/密碼@網絡服務名 file=xxx.dmp full=y;
-- 將D:\daochu.dmp 中的數據導入 TEST數據庫中。
imp username/password@127.0.0.1/orcl file=d:\test.dmp full=y;
-- 將d:\daochu.dmp中的表table1 導入
imp username/password@127.0.0.1/orcl file=d:\test.dmp tables=(table1)
附錄:
8、導入數據庫步驟:
第一步:創建表空間
create tablespace farmdoab datafile 'D:\dzzwpt.dbf' size 100M autoextend on next 50m;
第二步:創建目錄
create or replace directory acs_dir as 'D:\DMP';
PS:把要導入的DMP文件放入目錄下。
第三步:創建用戶,並指定默認的表空間
create user cxdb identified by root default tablespace farmdoab;
--》》(刪除用戶:drop user iteye cascade;)
第四步:授權
4.1:授權dba權限:grant connect, dba to cxdb;
4.2:授權用戶cxdb讀寫目錄文件: grant read, write on directory dp_dir to cxdb;
第五步:導入DMP文件
impdp acs/acs@ORCL directory=acs_dir dumpfile=PAACS.dmp full=y;
PS:lodfile可以不加,不加系統自動創建。
expdp acs/acs@orcl
dumpfile=paacs.dmp
logfile=full.log
directory=data_pump_dir
tablespaces=ACS,ACS_IDX;
9、Oracle常用數據字典
9.1、Oracle數據字典的名稱由前綴和後綴組成,使用_連接,含義說明如下:
dba_:包含數據庫實例的所有對象信息
v$_:當前實例的動態視圖,包含系統管理和系統優化等所使用的視圖
user_:記錄用戶的對象信息
gv_:分佈式環境下所有實例的動態視圖,包括系統管理和系統優化使用的視圖
all_:記錄用戶的對象信息機被授權訪問的對象信息
9.2、基本數組字典
描述邏輯存儲結構和物理存儲結構的數據表,還包括描述其他數據對象信息的表:
數據字典名稱 | 說明 |
---|---|
dba_tablespaces | 關於表空間的信息 |
dba_ts_quotas | 所有用戶表空間限額 |
dba_free_space | 所有表空間中的自由分區 |
dba_segments | 描述數據庫中所有段的存儲空間 |
dba_extents | 數據庫中所有分區的信息 |
dba_tables | 數據庫中所有數據表的描述 |
dba_tab_columns | 所有表、視圖以及簇的列 |
dba_views | 數據庫中所有視圖的信息 |
dba_synonyms | 關於同義詞的信息 |
dba_sequences | 所有用戶序列信息 |
dba_constraints | 所有用戶表的約束信息 |
dba_indexs | 數據表中所有索引的描述 |
dba_ind_columns | 所有表及簇上壓縮索引的列 |
dba_triggers | 所有用戶的觸發器信息 |
dba_source | 所有用戶存儲過程信息 |
dba_data_files | 查詢關於數據庫文件的信息 |
dba_tab_grants/privs | 查詢關於對象授權的信息 |
dba_objects | 數據庫所有對象 |
dba_users | 關於數據庫中所有用戶的信息 |
9.3、常用動態性能視圖
提供了關於內存和磁盤的運行情況,用戶只能進行只讀而不能修改它們
數據字典名稱 | 說明 |
---|---|
v$database | 描述關於數據庫的相關信息 |
v$datafile | 數據庫使用的數據文件信息 |
v$log | 從控制文件中提取有關重做日誌組的信息 |
v$logfile | 有關實例重置日誌組文件名及其位置的信息 |
v$archived_log | 記錄歸檔日誌文件的基本信息 |
v$archived_dest | 記錄歸檔日誌文件的路徑信息 |
v$controlfile | 描述控制文件的相關信息 |
v$instance | 記錄實例的基本信息 |
v$system_parameter | 顯示實例當前有效的參數信息 |
v$sga | 顯示實例的SGA區大小 |
v$sgastat | 統計SGA使用情況的信息 |
v$parameter | 記錄初始化參數文件中所有項的值 |
v$lock | 通過訪問數據庫會話,設置對象鎖的所有信息 |
v$session | 有個會話的信息 |
v$sql | 記錄SQL語句的詳細信息 |
v$sqltext | 記錄SQL語句的語句信息 |
v$bgprocess | 顯示後臺進程信息 |
v$process | 當前進程的信息 |