韓順平2023玩轉(zhuǎn)oracle10g視頻教學(xué)課堂筆記(完整版)_第1頁
韓順平2023玩轉(zhuǎn)oracle10g視頻教學(xué)課堂筆記(完整版)_第2頁
韓順平2023玩轉(zhuǎn)oracle10g視頻教學(xué)課堂筆記(完整版)_第3頁
韓順平2023玩轉(zhuǎn)oracle10g視頻教學(xué)課堂筆記(完整版)_第4頁
韓順平2023玩轉(zhuǎn)oracle10g視頻教學(xué)課堂筆記(完整版)_第5頁
已閱讀5頁,還剩128頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、韓順平J2EE視頻教程?玩轉(zhuǎn)oracle10g實戰(zhàn)教程? (全)筆記 133/133注:筆記中所有例如,均通過測試!韓順平j(luò)2ee系列教程-玩轉(zhuǎn)oracle10g學(xué)習(xí)筆記引言:數(shù)據(jù)保存問題?可使用文件保存和數(shù)據(jù)庫保存。使用文件保存數(shù)據(jù)存在幾個缺點(diǎn):1、文本的平安性問題;2、文件不利于查詢和對數(shù)據(jù)的管理;3、文件不利于存放海量數(shù)據(jù);4、文件在程序中控制不方便。為解決數(shù)據(jù)保存問題,專家們設(shè)計出更加利于管理數(shù)據(jù)的東東-數(shù)據(jù)庫(本質(zhì)就是一個軟件),它能更有效的管理數(shù)據(jù)。數(shù)據(jù)庫是衡量一個程序員水平的重要指標(biāo)。數(shù)據(jù)庫1、數(shù)據(jù)庫的本質(zhì)就是一款軟件,這個軟件專門用于管理和維護(hù)數(shù)據(jù);2、數(shù)據(jù)存放在數(shù)據(jù)庫中。數(shù)據(jù)

2、庫效勞器、數(shù)據(jù)庫和表的關(guān)系所謂安裝數(shù)據(jù)庫效勞器,只是在機(jī)器上裝了一個數(shù)據(jù)庫管理程序,這個管理程序可以管理多個數(shù)據(jù)庫,一般開發(fā)人員會針對每個應(yīng)用創(chuàng)立一個數(shù)據(jù)庫。為了保存應(yīng)用中實體的數(shù)據(jù),一般會在數(shù)據(jù)庫創(chuàng)立多個表,以保存程序中實體的數(shù)據(jù)。數(shù)據(jù)庫效勞器、數(shù)據(jù)庫和表的關(guān)系如下圖:為什么選擇oracle-性能優(yōu)越概述:目前主流數(shù)據(jù)庫包括微軟:sql server和access瑞典MySql:AB公司mysqlibm公司:db2(處理海量)美國Sybase公司:Sybaseibm公司:informix美國oracle公司:oracle做工程時應(yīng)當(dāng)如何選擇數(shù)據(jù)庫?1、標(biāo)的(工程預(yù)算);2、功能的要求;3、并

3、發(fā)數(shù)(多少人用);4、平安、穩(wěn)定性。5、操作系統(tǒng)(unixsolaris,freeBSD,aix,hp unix/linux/window)oracle數(shù)據(jù)庫的認(rèn)證oca(oracle certified associate)初級認(rèn)證ocp(oracle certified professional)中級認(rèn)證ocm(oracle certified master)高級認(rèn)證oracle10g安裝步驟:1、安裝文件2、把10201_database_win32.zip文件copy到?jīng)]有中文的路徑下3、檢查效勞選項,確定本機(jī)沒有安裝過oracle數(shù)據(jù)庫,如果有那么卸載4、將壓縮包解壓后,雙擊setu

4、p.exe文件進(jìn)行安裝。說明:建議大家自己建立一個文件目錄,比方d:/hsporacle/oracle,然后把數(shù)據(jù)庫安裝到目錄下即可。(目錄不要帶中文)這里我們可以選擇創(chuàng)立啟動數(shù)據(jù)庫(默認(rèn)數(shù)據(jù)庫)當(dāng)我們每創(chuàng)立一個數(shù)據(jù)庫實例的時候,就會自動的生成三個用戶:sys用戶(超級管理員,權(quán)限最大)system用戶(管理員用戶,權(quán)限僅次于sys用戶)scott用戶(普通用戶)5、在默認(rèn)的情況下,scott用戶是鎖定狀態(tài)(lock user),一般我們啟用它。特別注意:如果安裝的時候,忘記對某個用戶解鎖,比方scott可以通過system來對該用戶解鎖。步驟:1、先使用system登錄,運(yùn)行sqlplus2

5、、使用命令:alter user scott account unlockoracle后臺效勞OracleDBConsoleorcl網(wǎng)絡(luò)企業(yè)管理器效勞OracleOraDb10g_home1TNSListener監(jiān)聽效勞(監(jiān)聽端口1521)OracleServiceORCL數(shù)據(jù)庫實例效勞oracle開展與現(xiàn)狀oracle10g比oracle9i增加了什么?簡要說:10g支持網(wǎng)格(Grid),支持自動管理(Automatic Management)詳細(xì)說:1、10g的g是“Grid縮寫,支持網(wǎng)格計算,即,多臺結(jié)點(diǎn)效勞器利用高速網(wǎng)絡(luò)組成一個虛擬的高性能效勞器,負(fù)載在整個網(wǎng)絡(luò)中均衡(Load Bal

6、ance),按需增點(diǎn),防止單點(diǎn)故障(Single Point of Faliure)。2、安裝容易,安裝工作量比9i減少了一半。3、新增基于瀏覽器的企業(yè)管理器(Enterprise Manager)。oracle公司介紹-產(chǎn)品線數(shù)據(jù)庫效勞器:2007年最新版本11G,2023年最新版本12C應(yīng)用效勞器:Oracle Application Server開發(fā)工具:Oracle JDeveloper,Oracle Designer,Oracle Developer,等等應(yīng)用軟件(主要競爭對手:德國SAP公司)企業(yè)資源方案(ERP)軟件客戶關(guān)系管理(CRM)軟件人力資源管理軟件(HCM)oracle

7、開發(fā)工具1、sqlplusw和slqplus工具是oracle自帶的工具軟件使用:1、在開始-程序-oracle oradb_home10g-application development-sql plus2、在運(yùn)行欄中輸入:sqlplusw即可,也可以使用sqlplus進(jìn)入oracle數(shù)據(jù)庫oracle管理工具介紹pl/sql developer屬于第三方軟件,主要用于開發(fā),測試,優(yōu)化oracle pl/sql的存儲過程比方:觸發(fā)器,此軟件oracle不帶,需要單獨(dú)安裝。oracle管理工具介紹Enterprise manager console(企業(yè)管理器)oralce10g是通過web管

8、理的一般默認(rèn)端口是5500,也有1158的。訪問url(一定要保證oracle效勞啟動才可訪問) :/ip:1158(或5500)/em :/機(jī)器名:端口/emsql*plus常用命令連接命令1、connect(可用于切換用戶使用)用法:conn 用戶名/密碼網(wǎng)絡(luò)效勞名as sysdba/sysoper當(dāng)用特權(quán)用戶身份連接時,必需帶上as sysdba或as sysoper2、disconnect說明:該命令用來斷開與當(dāng)前數(shù)據(jù)庫的連接,但不退出sqlplus窗口3、password說明:該命令用于修改用戶的密碼,如果要想修改其它用戶的密碼,需要sys/system登錄特別說明:如果給自己改密碼

9、那么可以不帶用戶名。如果給別人修改密碼需帶用戶名(必需是system或者sys用戶才可以修改)4、show user說明:顯示當(dāng)前用戶名5、exit說明:該命令會斷開與數(shù)據(jù)庫的連接,同時會退出sql*plussql*plus常用命令介紹交互式命令1、&說明:可以替代變量,而該變量在執(zhí)行時,需要用戶輸入案例:sqlselect *from emp where job=&job2、edit說明:該命令可以編輯指定的sql腳本案例:sqledit d:/a.sql3、spool說明:該命令可以將sql*plus屏幕上的內(nèi)容輸出到指定文件中去。案例:sqlspool d:b.sql;執(zhí)行操作;輸入sq

10、lspool offsql*plus常用命令顯示和設(shè)置環(huán)境變量概述:可以用來控制輸出的各種格式。1、linesize說明:設(shè)置顯示行的寬度,默認(rèn)是80個字符sqlshow linesizesqlset linesize 902、pagesize說明:設(shè)置每頁顯示的行數(shù)目,默認(rèn)是14用法和linesize一樣。至于其它環(huán)境參數(shù)的使用也大同小異。特別說明:SQL語句需以;分號結(jié)尾,功能性命令可以不帶;oracle用戶管理創(chuàng)立用戶(簡單版)概述:在oracle中要創(chuàng)立一個新的用戶使用create user語句,一般是具有dab(數(shù)據(jù)庫管理員)的權(quán)限才能使用。根本語法:create user 用戶名

11、identified by 密碼;注意:oracle規(guī)定用戶密碼不能以數(shù)字開頭給用戶修改密碼概述:如果給自己修改密碼可以直接使用sqlpassword 用戶名如果給別人修改密碼那么需要具有dba的權(quán)限,或是擁有alter user的系統(tǒng)權(quán)限,也可以使用password用戶名sqlpassword 用戶名;sqlalter user 用戶名 identified by 新密碼;特別說明:oracle已對oracle操作中出現(xiàn)的錯誤進(jìn)行了編號,以后遇到錯誤將記錄編號進(jìn)行網(wǎng)上查詢解決方案。oracle用戶管理創(chuàng)立用戶(細(xì)節(jié))例子:sqlcreate user shunping identified

12、by m123default tablespace userstemporary tablespace tempquota 3m on user;identified by說明用戶shunping將用數(shù)據(jù)庫方式驗證default tablespace users/用戶的表空間在users上temporary tablespace temp/用戶shunping的臨時表建在temp空間quota 3m on users/說明用戶shunping建立的數(shù)據(jù)對象(表、索引、視圖、pl/sql塊)最大只能是3m剛剛創(chuàng)立的用戶是沒有任何權(quán)限的,因此,需要dba給該用戶授權(quán)。sqlgrant connec

13、t to shunping如果你希望該用戶建表沒有空間的限制sqlgrant resource to shunping如果你希望該用戶成為dbasqlgrant dba to shunping表空間(oracle獨(dú)有的概念)什么是表空間?表存在的空間,一個表空間是指向具體的數(shù)據(jù)文件。為什么創(chuàng)立好的用戶無法正常登錄?oracle中用戶建立后是無法正常登錄的,只有在數(shù)據(jù)庫管理員(DBA)對用戶分配相應(yīng)的權(quán)限后,用戶才可以登錄。如何給用戶分配權(quán)限?根本語法:grant create 權(quán)限 to 用戶名;案例:sqlgrant create session to xiaoming;也可以按角色對用戶分

14、配權(quán)限根本語法:grant角色名 to 用戶名;案例:sqlgrant dba to xiaoming;oracle管理用戶的機(jī)制(原理)oracle中權(quán)限的概念權(quán)限分為系統(tǒng)權(quán)限與對象權(quán)限。系統(tǒng)權(quán)限是數(shù)據(jù)庫管理相關(guān)的權(quán)限:create session(登錄權(quán)限)create table(創(chuàng)立表權(quán)限)create index(創(chuàng)立索引權(quán)限)create view(創(chuàng)立視圖權(quán)限)create sequence(創(chuàng)立序列權(quán)限)create trriger(創(chuàng)立觸發(fā)器權(quán)限)對象權(quán)限是和用戶操作數(shù)據(jù)對象相關(guān)的權(quán)限。update改insert增delete刪select查角色分為預(yù)定義角色和自定義角色預(yù)定

15、義角色:把常用的權(quán)限集中起來,形成角色。常見的角色有:DBA、connect、resource自定義角色按需定制一定權(quán)限形成角色,可以作為預(yù)定義角色的補(bǔ)充。來滿足用戶的需求。oracle用戶管理用戶管理的綜合案例概述:創(chuàng)立的新用戶是沒有任何權(quán)限的,甚至連登錄的數(shù)據(jù)庫的權(quán)限都沒有,需要為其指定相應(yīng)的權(quán)限。給一個用戶賦權(quán)限使用使令grant,回收權(quán)限使用命令revoke賦權(quán)限根本語法:grant 權(quán)限/角色 to 用戶名;回收權(quán)限根本語法:revoke 權(quán)限/角色 from 用戶名;oracle用戶管理刪除用戶概述:一般以dba的身份去刪除某個用戶,如果用其它用戶去刪除用戶那么需要具有drop u

16、ser的權(quán)限根本語法:drop user 用戶名 cascade;為了講清楚用戶的管理,這里舉例說明:1、創(chuàng)立xiaoming,并賦予connect和resource創(chuàng)立用戶根本語法:create user 用戶名 identified by 密碼;sqlcreate user xiaoming identified by m123;給用戶授權(quán)根本語法:grant 權(quán)限/角色to 用戶名;sqlgrant connect to xiaoming;sqlgrant resource to xiaoming;2、切換用戶切換用戶根本語法:connect 用戶名/密碼;sqlconn xiaomin

17、g/m123;3、xiaoming修改密碼修改密碼根本語法:password 用戶名;sqlpassword xiaoming;管理員修改密碼根本語法:alter user 用戶名 identified by 新密碼;sqlalter user xiaoming identified by xiaoming123;(sys或system用戶修改其它用戶的方法)4、使用xiaoming建表建表根本語法:create table 表名(字段屬性);sqlcreate table users(id number);5、添加數(shù)據(jù)添加數(shù)據(jù)根本語法:insert into 表名 values(值);sql

18、insert into users values(1);6、查詢數(shù)據(jù)查詢表內(nèi)容根本語法:select * from 表名;sqlselect * from users;7、刪除表刪除表根本語法:drop table 表名;sqldrop table users;8、回收權(quán)限(需sys或system用戶)回收權(quán)限根本語法:revoke 權(quán)限/角色名 from 用戶名;sqlrevoke connect from xiaoming;sqlrevoke resource from xiaoming;9、刪除用戶刪除用戶根本語法:drop user 用戶名 cascade;當(dāng)我們刪除一個用戶的時候,如

19、果這個用戶自己已經(jīng)創(chuàng)立過數(shù)據(jù)對象,那么我們在刪除該用戶時,需要加cascade,表示把這個用戶刪除的同時,把該用戶創(chuàng)立的數(shù)據(jù)對象一并刪除。sqldrop user xiaoming;方案(schema)理解:當(dāng)一個用戶,創(chuàng)立好以后,如果該用戶創(chuàng)立了任意一個數(shù)據(jù)對象,此時,我們的dbms就會創(chuàng)立一個對應(yīng)的方案與該用戶對應(yīng)。方案名與用戶名完全一樣。小技巧:如果希望看到某個用戶的方案究竟有什么數(shù)據(jù)對象,我們可以使用pl/sql developer方案這個概念的實際應(yīng)用:要求:請完成一個功能,讓xiaohong用戶可以去查詢scott的emp表步驟:1、先用scott登錄sqlconn scott/t

20、iger;2、賦權(quán)限給xiaohong給某用戶添加表增刪改查權(quán)限根本語法:grant select|update|delete|insert|all on 表名 to 用戶名;sqlgrant select on emp to xiaohong;3、xiaohong查詢scott的emp用戶查詢授權(quán)表的根本語法:select * from 方案名.表名;注意:方案名不帶的話,默認(rèn)是查詢自己方案中的表。sqlselect * from scott.emp;練習(xí)題:用戶創(chuàng)立練習(xí):1、創(chuàng)立用戶tea,stu,并給這兩個用戶resource,connect角色sqlconn system/orcl;/

21、使用system用戶創(chuàng)立tea和stu用戶sqlcreate user tea identified by tea;/創(chuàng)立tea用戶sqlcreate user stu identified by stu;/創(chuàng)立stu用戶sqlgrant resource to tea;/對tea用戶授權(quán)resource權(quán)限sqlgrant connect to tea;/對tea用戶授權(quán)connect權(quán)限sqlgrant resource to stu;/對stu用戶授權(quán)resource權(quán)限sqlgrant connect to stu;/對stu用戶授權(quán)connect權(quán)限2、使用scott用戶把對emp表

22、的select權(quán)限給teasqlconn scott/tiger;/切換scott用戶操作sqlgrant select on emp to tea;/將scott的emp查詢權(quán)限交給tea使用tea查詢scott的emp表sqlconn tea/tea;sqlselect * from scott.emp;/查詢scott的emp表使用scott用戶把emp表的所有權(quán)限賦給teasqlconn scott/tiger;sqlgrant all on emp to tea;/將scott的emp操作的全部權(quán)限交給了tea使用tea更新/刪除/插入scott的emp表sqlconn tea/te

23、a;sqlupdate scott.emp set job=Teacher where job=&job;sqldelete from scott.emp where job=&job;sqlinsert into scott.emp values(8888,FORD,Teacher,7698,08-9月-81,1500,300,20);使用scott收回權(quán)限sqlconn scott/tiger;sqlrevoke all on emp from tea;3、想方法將讓tea把自己擁有的對scott.emp的權(quán)限轉(zhuǎn)給stu;sqlconn scott/tiger;sqlgrant all o

24、n emp to tea with grant option;/with grant option表示得到權(quán)限的用戶,可以把權(quán)限繼續(xù)分配/with admin option如果是系統(tǒng)權(quán)限,那么帶with admin optionsqlconn tea/tea;sqlgrant all on scott.emp to stu;使用stu查詢scott用戶的emp表sqlconn stu/stu;sqlselect * from scott.emp;使用tea收回給stu的權(quán)限sqlconn tea/tea;sqlrevoke all on scott.emp from stu;系統(tǒng)權(quán)限with

25、admin option對象權(quán)限with grant optionoralce用戶管理使用profile管理用戶口令概述:profile是口令限制,資源限制的命令集合,當(dāng)建立數(shù)據(jù)時,oracle會自動建立名稱為default的profile,當(dāng)建立用戶沒有指定profile選項,那oracle就會將default分配給用戶。1、帳戶鎖定概述:指定該帳戶(用戶)登錄時最多可以輸入密碼的次數(shù),也可以指定用戶鎖定的時間(天)一般用dba的身份去執(zhí)行該命令例:指定scott這個用戶最多只能嘗試3次登錄,鎖定時間為2天,讓我們看看怎么實現(xiàn)?創(chuàng)立profile文件創(chuàng)立profile文件設(shè)定嘗試密碼輸入幾次

26、在錯誤后鎖定幾天根本語法:create profile profile文件名 limit failed_login_attempts 嘗試輸入次數(shù) password_lock_time 鎖定幾天;alter user 用戶名 profile profile文件名;sqlcreate profile lock_account limit failed_login_attempts 3 password_lock_time 2;sqlalter user tea profile lock_account;2、給帳戶(用戶)解鎖解鎖根本語法:alter user 用戶名 account unlock

27、;sqlalter user tea account unlock;3、終止口令為了讓用戶定期修改密碼可以使用終止口令的指令來完成,同樣這個命令也需要dba身份來操作。例如:給前面創(chuàng)立的用戶tea創(chuàng)立一個profile文件,要求該用戶每隔10天要修改自己的登錄密碼,寬限期為2天。創(chuàng)立profile文件設(shè)置每隔幾天要對用戶的密碼進(jìn)行修改,更改密碼時間在幾天內(nèi)根本語法:create profile profile文件名 limit password_life_time 幾天后修改密碼 password_grace_time 寬限期幾天;alter user 用戶名 profile profile文

28、件名;sqlcreate profile myprofile limit password_life_time 10 password_grace_time 2;sqlalter user tea profile myprofile;4、口令歷史概述:如果希望用戶在修改密碼時,不能使用以前使用過的密碼,可使用口令歷史,這樣oracle就會將口令修改的信息存放在數(shù)據(jù)字典中,這樣當(dāng)用戶修改密碼時,oralce就會對新舊密碼進(jìn)行比擬,當(dāng)發(fā)現(xiàn)新舊密碼一樣時,就提示用戶重新輸入密碼。例:1、建立profilesqlcreate profile password_history limit passwor

29、d_life_time 10 password_grace_time 2 password_reuse_time 10password_reuse_time 2/限制口令在多少天內(nèi)不能重復(fù)使用(換言之就是多少天內(nèi)不允許使用以前使用過的密碼)2、分配給某個用戶sqlalter user tea profile password_history;5、刪除profile概述:當(dāng)不需要某個profile文件時,可以刪除文件刪除profile根本語法:drop profile profile文件名;sqldrop profile profile文件名;注意:profile文件被刪除后,原profile文

30、件指定的用戶將不再受原profile文件規(guī)那么限定。oracle數(shù)據(jù)庫的啟動/關(guān)閉流程oracle也可以通過命令行的方式啟動,具體如何操作:oracle啟動流程-windows下1、lsnrctl start(啟動監(jiān)聽)2、oradim -startup -sid 數(shù)據(jù)庫實例名oracle關(guān)閉流程-windows下1、lsnrctl stop2、oradim -shutdown -sid 數(shù)據(jù)庫實例名 -shuttype srvc,instoracle啟動流程-linux下1、lsnrctl start(啟動監(jiān)聽)2、sqlplus sys/change_on_install as sysdb

31、a(以sysdba身份登錄,在oracle10g后可以這樣寫)sqlplus /nologconn sys/change_on_install as sysdba3、startuporacle關(guān)閉流程-linux下sqlplus/nologconn sys/change_on_install as sysdbashutdown注:shutdown關(guān)閉,等待每個用戶退出系統(tǒng)或被取消后退出關(guān)閉數(shù)據(jù)庫。shutdown transactional:事務(wù)性關(guān)閉,等待每個用戶提交或回退當(dāng)前的事務(wù),然后oracle取消對話,在所有用戶退出系統(tǒng)后執(zhí)行關(guān)閉。shutdown immediate:直接關(guān)閉,取消

32、所有用戶對話(促使回退),執(zhí)行正常的關(guān)閉程序。oracle登錄認(rèn)證方式oracle登錄認(rèn)證方式-windows下概述:oracle登錄認(rèn)證在windows下和linux下是不完全相同的,這里我們先說說windows下oracle的登錄認(rèn)證方式。1、操作系統(tǒng)認(rèn)證如果當(dāng)前用戶屬于本地操作系統(tǒng)的ora_dba組(對于windows操作系統(tǒng)而言),即可通過操作系統(tǒng)認(rèn)證。2、oracle數(shù)據(jù)庫驗證(密碼文件驗證)對于普通用戶.oracle默認(rèn)使用數(shù)據(jù)庫驗證。對于特權(quán)用戶(比方sys用戶),oracle默認(rèn)使用操作系統(tǒng)認(rèn)證,如果驗證不通過,再到數(shù)據(jù)庫驗證(密碼文件驗證)。通過配置sqlnet.ora文件,

33、可以修改oracle登錄認(rèn)證方式SQLNET.AUTHENTICATION_SERVICES=(NTS)是基于操作系統(tǒng)驗證;SQLNET.AUTHENTICATION_SERVICES=(NONE)是基于oracle驗證;SQLNET.AUTHENTICATION_SERVICES=(NONE,NTS)是二者共存。oracle用戶驗證機(jī)制普通用戶:默認(rèn)是以數(shù)據(jù)庫方式驗證。如:SQLconn scott/tiger特權(quán)用戶:默認(rèn)是以操作系統(tǒng)認(rèn)證(即:只要當(dāng)前用戶(當(dāng)前登入windows系統(tǒng)的用戶)是在ora_dba組中,那么可以通過)。如:conn system/orcl as sysdba;o

34、racle數(shù)據(jù)庫登錄驗證機(jī)制看到as sysdba那么認(rèn)為要以特權(quán)用戶登錄,那么會先看當(dāng)前用戶是否在ora_dba這個組中,如果在這個組中那么不看前面的用戶名和密碼。如果不在ora_dba這個組中,那么會看前面的用戶名和密碼來驗證是否有權(quán)限登錄。如果有權(quán)限,那么登錄成功。oracle那么會自動切換成sys用戶。這等同于conn sys/orcl;的方式登錄成功。通過修改sqlnet.ora文件,讓特權(quán)用戶登錄時必需通過oracle認(rèn)證而不使用操作系統(tǒng)認(rèn)證sqlnet.ora文件在D:oracle11gappAdministratorproduct11.2.0dbhome_1NETWORKADM

35、IN目錄中。oracle登錄認(rèn)證方式oracle登錄認(rèn)證方式-linux下這里大家了解即可:默認(rèn)情況下linux下的oracle數(shù)據(jù)庫sqlnet.ora文件沒有SQLNET.AUTHENTICATION_SERVICES參數(shù),此時是基于操作系統(tǒng)認(rèn)證和oracle密碼驗證共存的,加上SQLNET.AUTHENTICATION_SERVICES參數(shù)后,不管SQLNET.AUTHENTICATION_SERVICES設(shè)置為NONE或者NTS,都是基于oracle密碼驗證的。簡單說:linux下oracle數(shù)據(jù)庫sqlnet.ora文件中SQLNET.AUTHENTICATION_SERVICES無

36、參數(shù)為操作系統(tǒng)和oracle密碼驗證雙重驗證;SQLNET.AUTHENTICATION_SERVICES有NONE或NTS參數(shù)即為oracle密碼驗證;喪失管理員密碼怎么辦恢復(fù)方法:把原有密碼文件刪除,生成一個新的密碼文件?;謴?fù)步驟如下:搜索名為PWD數(shù)據(jù)庫實例名.ora文件;PWDorcl.ora密碼文件在D:oracle11gappAdministratorproduct11.2.0dbhome_1database目錄中。2、刪除該文件,為預(yù)防萬一,建議先備份,再刪除;3、生成新的密碼文件,在dos控制臺下輸入命令:orapwd file=原來密碼文件的全路徑密碼文件名.ora pass

37、word=新密碼 entries=10;/entries:允許幾個特權(quán)用戶。(特別注意:密碼文件名一定要和原來的密碼文件名一樣。)特別注意:生成新的密碼文件后,oracle效勞要重新啟動前方可使用。課堂練習(xí)給scott用戶分配一個profile要求如下:1、嘗試登錄的次數(shù)最多4次;2、如果4次輸入錯誤,那么鎖定該用戶2天;3、密碼每隔5天修改一次,寬限期為2天;答:SQLconn sys/orcl as sysdba;SQLcreate profile scottprofile limit failed_login_attempts 4 password_lock_time 2 passwor

38、d_life_time 5 password_grace_time 2;SQLalter user scott profile scottprofile;4、練習(xí) 如何給用戶解鎖;答:SQLalter user scott account unlock;5、練習(xí) 如何刪除profile文件;答:SQLdrop profile scottprofile;假設(shè)你的sys用戶密碼喪失,寫出找回密碼的步驟和命令?1、確認(rèn)哪個數(shù)據(jù)庫實例的sys用戶密碼喪失;(例:數(shù)據(jù)庫實例為orclA)2、進(jìn)入數(shù)據(jù)庫實例的目錄中找到PWDorclA.ora文件;(例目錄為:doracleadminproduct11.2

39、.0dbhome_1database)3、為防萬一出錯,將PWDorclA.ora文件備份一份后,將PWDorclA.ora文件刪除;4、在windows開始菜單-運(yùn)行-輸入cmd進(jìn)行dos控制臺;5、在dos控制臺下輸入orapwd file=doracleadminproduct11.2.0dbhome_1databasePWDorclA.ora password=orcl entries=16、完成上述步驟,進(jìn)入windows效勞中將oracle的數(shù)據(jù)效勞重新啟用后,新的sys密碼便可使用。根本概念-數(shù)據(jù)庫效勞器、數(shù)據(jù)主和表的關(guān)系所謂安裝數(shù)據(jù)庫效勞器,只是在機(jī)器上裝了一個數(shù)據(jù)庫管理程序,

40、這個管理程序可以管理多個數(shù)據(jù)庫,一般開發(fā)人員會針對每個應(yīng)用創(chuàng)立一個數(shù)據(jù)庫。為保存應(yīng)用中實體的數(shù)據(jù),一般會在數(shù)據(jù)庫創(chuàng)立多個表,以保存程序中實體的數(shù)據(jù)。數(shù)據(jù)庫效勞器、數(shù)據(jù)庫和表的關(guān)系如下圖:根本概念-數(shù)據(jù)在數(shù)據(jù)庫中的存儲方式數(shù)據(jù)存在方式(主要是以表的形式)表的管理-創(chuàng)立表(根本語句)建表的根本語法:create table table_name(field1 datatype,field1 datatype,field1 datatype,.)注:table_name表名;field指定列名(字段名);datatype指定列類型(字段數(shù)據(jù)類型)注意:創(chuàng)立表時,要根據(jù)需保存的數(shù)據(jù)創(chuàng)立相應(yīng)的列,并根據(jù)

41、數(shù)據(jù)的類型定義相應(yīng)的列類型。例:user對象id intname stringpassword stringbirthday date快速入門例如:SQL create table users( id number, name varchar2(32), password varchar2(32), birthday date);IdNamePasswordbirthday表的管理-oracle常用數(shù)據(jù)類型分類數(shù)據(jù)類型說明文本、二進(jìn)制類型char(size) char(20)varchar(size) varchar(20)nchar(n)nvarchar2(n)clob(character

42、large object)blob(binary large object)定長 最大2000字符變長 最大4000字符Unicode數(shù)據(jù)類型,定長 最大2000字符Unicode數(shù)據(jù)類型,變長 最大4000字符字符型大對象,最大8TB二進(jìn)制數(shù)據(jù) 可以存放圖片/聲音 8TB數(shù)值類型number(p,s)p為整數(shù)位,s為小數(shù)位.范圍:1=p=38,-84=s=127保存數(shù)據(jù)范圍:-1.0e-130=number value0精確到小數(shù)點(diǎn)右邊s位,并四舍五入。然后檢驗有效位是否=ps0精確到小數(shù)點(diǎn)左邊s位,并四舍五入。然后檢驗有效位是否=p+|s|s=0等價于number(p)此時number表示

43、整數(shù)。說明:-1.0e-130(科學(xué)計數(shù)法):就是-1.0乘以10的-130次方 1.0e+126:就是1.0乘以10的126次方舉例說明:number(5,2)表示一個小數(shù)有5位有效數(shù),2位小數(shù)。范圍-999.99999.99如果數(shù)值超出了位數(shù)限制就會被截取多余的位數(shù)。但在一行數(shù)據(jù)中的這個字段輸入575.316,那么真正保存到字段中的數(shù)值是575.32。number(5)number(5,0)表示一個五位整數(shù),范圍-9999999999。輸入57523.316,真正保存的數(shù)據(jù)是57523oracle表的管理-oracle支持的數(shù)據(jù)類型數(shù)值型(練習(xí))Actual DataSpecified A

44、SStored AsActual DataSpecified ASStored As123.89NUMBER123.89123.2564NUMBER123.2567123.89NUMBER(3)1241234.9876NUMBER(6,2)1234.99123.89NUMBER(6,2)123.8912345.123456NUMBER(6,2)Error123.89NUMBER(6,1)123.91234.9876NUMBER(6)1235123.89NUMBER(4,2)Error12345.345NUMBER(5,-2)12300123.89NUMBER(6,-2)1001234567NU

45、MBER(5,-2)1234600.01234NUMBER(4,5).0123412345678NUMBER(5,-2)Error.00012NUMBER(4,5).00012123456789NUMBER(5,-4)123460000.000127NUMBER(4,5).000131234567890NUMBER(5,-4)Error.0000012NUMBER(2,7).000001212345.58NUMBER(*,1)12345.6.00000123NUMBER(2,7).00000120.1NUMBER(4,5)Error1.2e-4NUMBER(2,5)0.000120.01234

46、567NUMBER(4,5)0.012351.2e-5NUMBER(2,5)0.000010.09999NUMBER(4,5)0.099998、date,用于表示時間,(年/月/日/時/分/秒),是定長。舉例說明:create table test5(birthday date);/添加時個要使用默認(rèn)格式insert into test5 values(11-11月-11);如使用insert into test5 values(2023-11-11);那么報錯。特別說明:oracle日期有默認(rèn)格式為:DD-MON-YYYY,天-月-年;如果我們希望使用自己習(xí)慣的日期添加,也可以,但是需要借助

47、oracle函數(shù)來添加。oracle表的管理-創(chuàng)立表建表-學(xué)生表字段字段類型id整型numbername字符型varchar2sex字符型charbrithday日期型datefellowship小數(shù)型number(6,2)resume大文本型clob學(xué)生表SQLcreate table students(id number,name varchar2(64),sex char(2),brithday date,fellowship number(10,2),resume clob);班級表SQLcreate table class_(class_id number,class_name va

48、rchar2(32);oracle表的管理-修改表使用alter table語句添加、修改或刪除列的語法添加列根本語法:alter table TABLENAME add(columnname datatype);alter table 表名 add(列名(字段名) 列類型(字段類型);修改列根本語法:alter table TABLENAME modify(columnname datatype);alter table 表名 modify(列名(字段名) 列類型(字段類型);刪除列根本語法:刪除多列語法:alter table TABLENAME drop(columnname,colum

49、nname2,.);alter table 表名 drop(列名(字段名),列名2(字段名2),.);刪除單列語法:alter table TABLENAME drop column COLUMNNAME;alter table 表名 drop column 列名(字段名);修改表的名稱根本語法:rename OldTableName to NewTableName;rename 表名 to 新表名;修改列名根本語法:alter table TABLENAME rename(OldColumnName to NewColumnName);alter table 表名 rename(舊列名 to

50、 新列名);查看表結(jié)構(gòu)根本語法:desc TABLENAME;desc 表名;練習(xí):1、給學(xué)生表添加班級編號SQLalter table students add(class_id number);2、學(xué)生姓名變成varchar2(30)SQLalter table students modify(name varchar2(30);3、學(xué)生姓名變成char(30)SQLalter table students modify(name char(30);4、刪除學(xué)生表的fellowship字段SQLalter table students drop column fellowship;SQLa

51、lter table students drop(fellowship);5、把學(xué)生表名students修改成stuSQLrename students to stu;6、刪除學(xué)生表SQLdrop table stu;oracle表的管理-添加數(shù)據(jù)使用insert語句向表中插入數(shù)據(jù)插入數(shù)據(jù)根本語法:insert into table(column ,column.) values(value ,value.);insert into 表名(列名 ,列名2.) values(值 ,值2.);考前須知:1、插入的數(shù)據(jù)應(yīng)與字段的數(shù)據(jù)類型相同。2、數(shù)據(jù)的大小應(yīng)在列的規(guī)定范圍內(nèi),例如:不能將一個長度為8

52、0的字符串參加到長度為40的列中。3、在values中列出的數(shù)據(jù)位置必須與被參加的列的排列位置相對應(yīng)。4、字符和日期型數(shù)據(jù)應(yīng)包含在單引號中。5、插入空值,不指定或insert into table values(null);6、給表的所有列添加數(shù)據(jù)時,可以不帶列名直接添加values值。向students添加數(shù)據(jù)SQLinsert into students (id,name,sex,brithday,fellowship,resume) values(1,張三,男,11-11月-01,23.34,hello);SQLinsert into students values(2,李四,男,11-

53、11月-02,67.34,hello2);SQLinsert into students values(3,王五,女,11-11月-03,671.34,hello3);插入局部字段與插入空值,語法是一樣的。只是要注意,當(dāng)字段設(shè)置可為空時,可以不用將字段列出。否那么就需要將字段名和值添加進(jìn)去。否那么報錯,具體參見上述插入數(shù)據(jù)6點(diǎn)考前須知。insert into table(column ,column.) values(value ,value.);oracle表的管理-修改數(shù)據(jù)使用update語句修改表中數(shù)據(jù)。Update語句根本語法:update tablename set columnna

54、me=expr1 ,columnname2=expr2,.where where_definition;update 表名 set 列名=表達(dá)式 ,列名2=表達(dá)式2,.where 條件;考前須知:1、update語法可以用新值更新原有表行中的各列;2、set子句指示要修改哪些列和要給予哪些值;3、where子句指定應(yīng)更新哪些行。如沒有where子句,那么更新所有的行。(特別小心)對students中的數(shù)據(jù)進(jìn)行修改將張三的性別改成女SQLupdate students set sex=女 where name=張三;把張三的獎學(xué)金改為10SQLupdate students set fellow

55、ship=10 where name=張三;把所有人的獎金都指高10%SQLupdate students set fellowship=fellowship*1.1;練習(xí):將所有學(xué)生獎學(xué)金修改為5000元SQLupdate students set fellowship=5000;將姓名為張三的學(xué)生獎學(xué)金修改為3000元SQLupdate students set fellowship=3000 where name=張三;將李四的獎學(xué)金在原有根底上增加1000元SQLupdate students set fellowship=fellowship+1000 where name=李四;將

56、沒有獎學(xué)金同學(xué)的獎學(xué)金改成10元SQLupdate students set fellowship=10 where fellowship is null;特別注意:當(dāng)修改空記錄時應(yīng)用is null而不能使用=null或=oracle表的管理-刪除數(shù)據(jù)根本語法:delete from TABLENAME where where_definition;delete from 表名 where 條件表達(dá)式;考前須知:1、如果不使用where子句,將刪除表中所有的數(shù)據(jù)。(特別注意)2、delete語句不能刪除某一列的值(可使用update)。3、使用delete語句僅刪除記錄,不刪除表本身。如要刪除

57、表,使用drop table語句。4、同insert和update一樣,從一個表中刪除記錄將引起其它表的參照完整性問題,在修改數(shù)據(jù)庫數(shù)據(jù)時,頭腦中應(yīng)始終不要忘記這個潛在的問題。刪除的幾種方法比擬:delete from 表名;刪除所有記錄,表結(jié)構(gòu)還在,寫日志,可以恢復(fù)的,速度慢drop table 表名;刪除表的結(jié)構(gòu)和數(shù)據(jù)delete from student where xh=A001;刪除一條記錄truncate table 表名;刪除表中的所有記錄,表結(jié)構(gòu)還在,不寫日志,無法找回刪除的記錄,速度快。設(shè)置保存點(diǎn)savepoint 保存點(diǎn)名稱;回滾rollback to 保存點(diǎn)名稱;特別注意

58、:設(shè)置保存點(diǎn)及回滾操作是配合delete語句使用,用來找回使用delete刪除的數(shù)據(jù)。而通過truncate刪除的表數(shù)據(jù)是無法通過此方法找回的。建議:在使用delete刪除表數(shù)據(jù)前使用savepoint設(shè)置保存點(diǎn),防止數(shù)據(jù)誤刪除。oracle表根本查詢-介紹在我們講解的過程中我們利用scott用戶存在的幾張表(emp,dept,salgrade)為大家演示如何使用select語句,select語句在軟件編程中非常的有用,希望大家好好的掌握。根本select語句根本語法:select distinct *|columnl,column2,column3. from table where con

59、dition;select 是否剔除重復(fù)數(shù)據(jù) *|字段名(列名),字段名2(列名2),字段名3(列名3). from 表名 where 條件;考前須知:1、select指定查詢哪些列的數(shù)據(jù);2、column指定列名;3、*代表查詢所有列;4、from指定查詢哪張表;5、distinct可選,指顯示結(jié)果時,是否剔除重復(fù)數(shù)據(jù);6、where條件。oracle表根本查詢-簡單的查詢語句查看表結(jié)構(gòu)SQLdesc 表名;查詢所有列SQLselect * from 表名;查詢指定列SQLselect 列1,列2,列3,. from 表名;如何取消重復(fù)行SQLselect distinct deptno,j

60、ob from emp;查詢SMITH的薪水,工作,所在部門SQLselect sal,job,deptno from emp where ename=SMITH;特別注意:oracle對sql語句不區(qū)分大小寫,但對查詢內(nèi)容區(qū)分大小寫。這與sqlserver是有區(qū)別的,sqlserver對查詢內(nèi)容不區(qū)分大小寫。使用算數(shù)表達(dá)式顯示每個雇員的年工資SQLselect ename,sal*13+nvl(comm,0)*13 from emp;使用列的別名SQLselect ename 姓名,sal*13+nvl(comm,0)*13 年收入 from emp;SQLselect ename 姓名,s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論