以下這些東西是我的麥庫上存的當時學(xué)Oracle的學(xué)習(xí)筆記今天拿出來和大家分享一下,轉(zhuǎn)載請注明出處,下面用的Oracle的版本是10g,用的時WinServer2003的操作系統(tǒng),可能有些命令和Oracle11g的有所不同,但大部分是一樣的,接下來還會陸續(xù)的分享一下Oracle中對用戶的管理,對表的管理,還有Oracle中的存儲過程和PL/SQL編程。用到的Oracle的管理工具是PL/SQL Developerl和SQL PLUS,歡迎大家批評指正。
創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營銷推廣、網(wǎng)站重做改版、盤州網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5響應(yīng)式網(wǎng)站、成都做商城網(wǎng)站、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為盤州等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。1.數(shù)據(jù)庫管理員的職責:
1.安裝和升級Oracle數(shù)據(jù)庫
2.創(chuàng)建數(shù)據(jù)庫,表空間,表,視圖,索引
3.制定并實施備份和恢復(fù)數(shù)據(jù)庫計劃
4.數(shù)據(jù)庫權(quán)限管理,調(diào)優(yōu),故障排除
5.對于高級的dba可以參與項目的開發(fā),會編寫sql語句,存儲過程,觸發(fā)器,規(guī)則,約束,包
2.管理數(shù)據(jù)庫的主要用戶主要是sys和system: 例如:sys是董事長,system是總經(jīng)理
1.兩者尊重要的區(qū)別:存儲數(shù)據(jù)的重要性不同。
sys:所有oracle數(shù)據(jù)字典的基表和視圖都存放在sys用戶中,這些基表和視圖對oracle的運行是至關(guān)重要的
由數(shù)據(jù)庫自己維護,任何用戶都不可手動更改,sys擁有dba,sysdba,sysoper角色或權(quán)限是oracle權(quán)限的高用戶。
system:用于存放次一級的內(nèi)部數(shù)據(jù),system擁有dba,sysoper角色或權(quán)限
2.第二個區(qū)別
sys:必須以sysdba 或 sysoper的角色登錄,不能以normal方式登錄
3.對初始化參數(shù)的修改:
1.顯示初始化參數(shù)
show parameter
2.如何修改參數(shù)
可以到文件oracle\admin\orcl\pfile\init.ora 下修改;
4.數(shù)據(jù)庫的邏輯備份:
邏輯備份是指使用工具export將數(shù)據(jù)對象的結(jié)構(gòu)和數(shù)據(jù)導(dǎo)出到文件的過程。
邏輯回復(fù)是指當數(shù)據(jù)庫被誤操作后利用工具import利用備份的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫的過程。
物理備份即可在數(shù)據(jù)庫open下操作也可以在關(guān)閉下操作。
但邏輯備份只能在數(shù)據(jù)庫的open下操作。
數(shù)據(jù)的導(dǎo)出:!!!--在導(dǎo)入導(dǎo)出的時候要到oracle目錄的bin目錄下執(zhí)行命令;
導(dǎo)出具體的分為:導(dǎo)出表,導(dǎo)出方案,導(dǎo)出數(shù)據(jù)庫
導(dǎo)出用exp命令來實現(xiàn),該命令常用的選項有:
userid:用于指定執(zhí)行導(dǎo)出操作的用戶名,口令,連接字符串;
tables:用于指定導(dǎo)出操作的表;
owner: 用于指定導(dǎo)出操作的方案;
full=y:用于指定導(dǎo)出的數(shù)據(jù)庫;
inctype:用于指定導(dǎo)出操作的增量類型;
rows:執(zhí)行導(dǎo)出操作是否導(dǎo)出表中的數(shù)據(jù);
file:用于指定導(dǎo)出文件名;
1).導(dǎo)出表:導(dǎo)出scott用戶下數(shù)據(jù)庫實例orcl中emp的表,存放的文件路徑為e:/emp.dmp;
在cmd的控制臺下執(zhí)行:
C:\Documents and Settings\Administrator.WEB-A93B1E61669>exp userid=scott/tiger@orcl tables=(emp,dept) file=e:\emp.dmp;
2)導(dǎo)出其他方案的表
如果要導(dǎo)出其他方案的表則需要dba權(quán)限或者exp_full_database權(quán)限
SQL>userid=system/system@orcl tables=(scott.emp) file=e:\emp1.dmp;
3)導(dǎo)出表的結(jié)構(gòu)沒有其數(shù)據(jù)
exp userid=scott/tiger@orcl tables=(emp,dept) file=e:\emp.dmp rows=n;
4)直接導(dǎo)出表結(jié)構(gòu)(適合表中有大量的數(shù)據(jù),速度比 rows=n 要快的多)
exp userid=scott/tiger@orcl tables=(emp.dept) file=e:\emp2.dmp direct=y;
2.導(dǎo)出方案:
1)導(dǎo)出scott的方案: exp scott/tiger@orcl owner=scott file=e:\scott.dmp;
C:\Documents and Settings\Administrator.WEB-A93B1E61669>exp userid=scott/tiger@orcl owner=scott file=e:\scott.dmp
2).導(dǎo)出別的方案:如果要導(dǎo)出其他方案的表則需要dba權(quán)限或者exp_full_database權(quán)限
exp userid=system/system@orcl owner=(system,scott) file=e:\syscott.dmp; 導(dǎo)出數(shù)據(jù)庫 inctype=complete;增量備份--第二次備份時只會添加新增的數(shù)據(jù)庫exp userid=system/system@orcl full=y inctype=complete file=e:\orcl.dmp;
5.數(shù)據(jù)庫的導(dǎo)入:import 將文件中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫中,但導(dǎo)入的數(shù)據(jù)文件必須是用工具export導(dǎo)出的文件
導(dǎo)入也分導(dǎo)入表,導(dǎo)入方案,導(dǎo)入數(shù)據(jù)庫三種方式
imp常用的命令有:
userid:用于指定導(dǎo)入操作的用戶名,口令,連接字符串;
tables:用于執(zhí)行導(dǎo)入表操作
fromuser:用于指定源用戶
touser:用于指定目標用戶
file:用于指定導(dǎo)入文件名
full=y:用于指定導(dǎo)入整個文件
inctype:用于指定導(dǎo)入文件的增量類型
rows:指定是否要導(dǎo)入表行(數(shù)據(jù))
ignore:如果表存在則只導(dǎo)入表數(shù)據(jù)
--刪除表是同時會刪除之前創(chuàng)建的savepoint,所以刪除表是無法rollback
1.導(dǎo)入該用戶下的表:
imp userid=scott/tiger@orcl tables=(emp) file=e:\orcl.dmp;
2.導(dǎo)入表到其他用戶要求DBA權(quán)限或者imp_full_database的權(quán)限;
imp userid=system/system@orcl tables=(emp) file=e:\orcl.dmp touser=scott;
3.只導(dǎo)入表結(jié)構(gòu)而不導(dǎo)入數(shù)據(jù)
imp userid=scott/tiger@orcl tables=(emp) file=e:\orcl.dmp rows=n;
4.如果表已存在則只導(dǎo)入數(shù)據(jù)
imp userid=scott/tiger@orcl tables=(emp) file=e:\orcl.dmp ignore=y;
5.導(dǎo)入自身方案
imp userid=scott/tiger@orcl file=e:\scott.dmp;
6.導(dǎo)入其他方案
imp userid=system/system@orcl file=e:\scott.dmp fromuser=system touser=scott;
7.導(dǎo)入數(shù)據(jù)庫
imp userid=system/system@orcl full=y file=e:\orcl.dmp;
6.數(shù)據(jù)字典:
數(shù)據(jù)字典記錄了數(shù)據(jù)庫的系統(tǒng)信息,它是只讀表和視圖的集合,數(shù)據(jù)字典的所有者是sys用戶
用戶只能在表上執(zhí)行查詢操作(select操作),而其維護和修改是系統(tǒng)自動完成的
數(shù)據(jù)字典包括數(shù)據(jù)基表和數(shù)據(jù)視圖,數(shù)據(jù)基表里存儲的是數(shù)據(jù)庫的基本信息,普通用戶不能直接訪問數(shù)據(jù)庫基表的信息,數(shù)據(jù)字典里的視圖是基于
基本表創(chuàng)建起來的虛表,用戶可以通過查詢視圖里的信息來查詢系統(tǒng)的信息
數(shù)據(jù)字典里的視圖主要包括user_XXX,all_XXX和dba_XXX三種類型;
1.user_tables顯示當前用戶所擁有的表
sql>select table_name from user_tables;
2.all_tables 顯示當前用戶可以訪問到的所有表,不僅是該方案下的,也顯示其他方案下的
sql>select table_name from all_tables;
3.dba_tables 顯示所有方案所擁有的表,要求用戶必須有dba角色或者有select_any_tables的權(quán)限如system用戶。
sql>select owner,table_name from dba_tables;
4.通過查詢dba_users來顯示數(shù)據(jù)庫中所有的用戶(視圖)
sql>select username from dba_users;
5.通過查詢dba_sys_privs視圖可以查詢用戶所具有的系統(tǒng)權(quán)限
SQL>select * from dba_sys_privs where grantee='SYS'
6.通過查詢dba_tab_privs視圖可以查詢用戶所具有的對象權(quán)限
SQL> select * from dba_tab_privs where grantee='SCOTT';
7.通過查詢dba_col-Privs視圖可以查詢用戶所具有的列權(quán)限
8.通過查詢dba_role_privs 視圖可以查詢用戶的角色;
SQL> select * from dba_role_privs where grantee='SCOTT'; GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE------------------------------ ------------------------------ ------------ ------------SCOTT RESOURCE NO YES
9.查詢Oracle中的所有角色
SQL> select * from dba_roles;
10.查詢系統(tǒng)權(quán)限
SQL> select * from system_privilege_map;
11.查詢對象權(quán)限
SQL> select distinct privilege from dba_tab_privs;
12.查詢角色擁有的系統(tǒng)權(quán)限
SQL>select * from dba_sys_privs where grantee='CONNECT';
13.查詢角色擁有的對象權(quán)限
SQL>select * from dba_tab_privs where grantee='CONNECT';
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。