數(shù)據(jù)庫技術(shù)及應(yīng)用:第二章 oracle基礎(chǔ)_第1頁
數(shù)據(jù)庫技術(shù)及應(yīng)用:第二章 oracle基礎(chǔ)_第2頁
數(shù)據(jù)庫技術(shù)及應(yīng)用:第二章 oracle基礎(chǔ)_第3頁
數(shù)據(jù)庫技術(shù)及應(yīng)用:第二章 oracle基礎(chǔ)_第4頁
數(shù)據(jù)庫技術(shù)及應(yīng)用:第二章 oracle基礎(chǔ)_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Oracle基礎(chǔ)第二章預(yù)習(xí)檢查簡述你對Oracle的認(rèn)識(shí)有哪些?SYS和SYSTEM中,哪個(gè)用戶權(quán)限更大?為用戶分配和撤銷權(quán)限的命令是什么?Oracle常用的數(shù)據(jù)類型有哪幾類?本章任務(wù)使用Oracle創(chuàng)建數(shù)據(jù)庫和用戶使用Oracle創(chuàng)建表并插入數(shù)據(jù)本章目標(biāo)掌握Oracle安裝掌握連接到Oracle掌握數(shù)據(jù)庫的創(chuàng)建掌握用戶的創(chuàng)建和權(quán)限授予掌握數(shù)據(jù)庫表的創(chuàng)建掌握序列的創(chuàng)建和使用Oracle簡介2-1Oracle(甲骨文)公司1977年,三人合伙創(chuàng)辦(SoftwareDevelopmentLaboratories,SDL)1979年,更名為RelationalSoftwareInc.,RSI1983年,為了突出核心產(chǎn)品,RSI更名為Oracle2002年04月26日,啟用“甲骨文”作為中文注冊商標(biāo)Oracle簡介2-2Oracle數(shù)據(jù)庫管理系統(tǒng)Oracle公司的核心產(chǎn)品目前最流行的數(shù)據(jù)庫主要版本Oracle8i/9i(internet)、Oracle10g/11g(grid)基于C/S系統(tǒng)結(jié)構(gòu)Oracle基本概念2-1數(shù)據(jù)庫磁盤上存儲(chǔ)的數(shù)據(jù)的集合在物理上表現(xiàn)為數(shù)據(jù)文件、日志文件和控制文件等在邏輯上以表空間形式存在必須首先創(chuàng)建數(shù)據(jù)庫,然后才能使用Oracle數(shù)據(jù)庫實(shí)例每個(gè)啟動(dòng)的數(shù)據(jù)庫都對應(yīng)一個(gè)數(shù)據(jù)庫實(shí)例,由這個(gè)實(shí)例來訪問和控制數(shù)據(jù)庫為了運(yùn)行數(shù)據(jù)庫,Oracle系統(tǒng)所運(yùn)行的所有進(jìn)程和分配的內(nèi)存結(jié)構(gòu)的組合體數(shù)據(jù)庫:永久的,硬盤上數(shù)據(jù)庫實(shí)例:臨時(shí)的,內(nèi)存中Oracle基本概念2-2數(shù)據(jù)文件擴(kuò)展名是.DBF,用于存儲(chǔ)數(shù)據(jù)庫數(shù)據(jù)的文件數(shù)據(jù)庫表和數(shù)據(jù)文件不存在一對一對應(yīng)關(guān)系控制文件擴(kuò)展名是.CTL,是數(shù)據(jù)庫啟動(dòng)及運(yùn)行所必需的文件默認(rèn)包含3個(gè)控制文件,各個(gè)控制文件內(nèi)容相同日志文件擴(kuò)展名是.LOG,它記錄了對數(shù)據(jù)的所有更改信息多個(gè)日志文件組之間循環(huán)使用表空間每個(gè)Oracle數(shù)據(jù)庫都是由若干個(gè)表空間構(gòu)成,用戶在數(shù)據(jù)庫中建立的所有內(nèi)容都被存儲(chǔ)到表空間中創(chuàng)建數(shù)據(jù)庫時(shí)會(huì)自動(dòng)創(chuàng)建若干表空間數(shù)據(jù)庫物理結(jié)構(gòu)數(shù)據(jù)庫邏輯結(jié)構(gòu)安裝Oracle此處選擇“高級(jí)安裝”此處選擇“企業(yè)版”建議保持默認(rèn)的安裝路徑層次結(jié)構(gòu)會(huì)自動(dòng)進(jìn)行檢查建議選擇“創(chuàng)建數(shù)據(jù)庫”對前面選擇內(nèi)容的一個(gè)總結(jié)開始復(fù)制文件提供了多個(gè)Oracle工具的訪問路徑本章選擇此項(xiàng)創(chuàng)建數(shù)據(jù)庫和用戶創(chuàng)建數(shù)據(jù)庫JBITDB,創(chuàng)建用戶epet,該用戶可以登錄數(shù)據(jù)庫并進(jìn)行操作可以在安裝Oracle軟件時(shí)、安裝Oracle軟件后創(chuàng)建數(shù)據(jù)庫??梢酝ㄟ^圖形界面和SQL語句實(shí)現(xiàn)每個(gè)數(shù)據(jù)庫都有SYS和SYSTEM兩個(gè)默認(rèn)用戶,都具有創(chuàng)建用戶權(quán)限最好通過CREATETABLESPACE命令為每個(gè)用戶創(chuàng)建自己的表空間通過CREATEUSER命令來創(chuàng)建用戶epet通過GRANT命令給用戶epet賦予相應(yīng)權(quán)限創(chuàng)建數(shù)據(jù)庫2-1啟動(dòng)DBCA(數(shù)據(jù)庫配置助手)選擇“創(chuàng)建數(shù)據(jù)庫”指定數(shù)據(jù)庫名和數(shù)據(jù)庫實(shí)例名為四個(gè)解鎖用戶指定密碼包括SYS、SYSTEM用戶指定創(chuàng)建選項(xiàng)記住這些信息關(guān)鍵步驟創(chuàng)建數(shù)據(jù)庫2-2Windows下,安裝Oracle10g后生成多個(gè)服務(wù)通過選擇“控制面板”→“管理工具”→“服務(wù)”,打開“服務(wù)”窗口,可以看到Oracle服務(wù)OracleService<SID>:數(shù)據(jù)庫實(shí)例服務(wù)OracleOraDb10g_hom1TNSListener:數(shù)據(jù)庫監(jiān)聽服務(wù)OracleDBConsoles<SID>:企業(yè)管理器服務(wù)OracleOraDb10g_hom1iSQL*Plus:iSQL*Plus服務(wù)登錄管理后臺(tái)2-1SYS用戶SYSTEM用戶地位Oracle的一個(gè)超級(jí)用戶Oracle默認(rèn)的系統(tǒng)管理員,擁有DBA權(quán)限作用主要用來維護(hù)系統(tǒng)信息和管理實(shí)例通常用來管理Oracle數(shù)據(jù)庫的用戶、權(quán)限和存儲(chǔ)等登錄身份只能以SYSDBA或SYSOPER角色登錄只能以Normal方式登錄SYS和SYSTEM用戶SYS和SYSTEM用戶都是Oracle的系統(tǒng)用戶,它們都使用SYSTEM表空間,SYS擁有更大的權(quán)限登錄管理后臺(tái)2-2通過SQL*Plus方式連接通過iSQL*Plus方式連接通過PL/SQLDeveloper方式連接通過Oracle企業(yè)管理器對Oracle進(jìn)行全面管理創(chuàng)建用戶CREATEUSERuserIDENTIFIEDBYpassword[DEFAULTTABLESPACEtablespace][TEMPORARYTABLESPACEtablespace]必須指定用戶名和密碼可以為用戶指定默認(rèn)表空間或臨時(shí)表空間CREATEUSERepetIDENTIFIEDBYbdqnDEFAULTTABLESPACEepet_tablespace;創(chuàng)建表空間基于應(yīng)用性能和管理方面的考慮,最好為不同的用戶創(chuàng)建獨(dú)立的表空間通過CREATETABLESPACE命令創(chuàng)建表空間CREATETABLESPACEepet_tablespaceDATAFILE'E:\oracle\product\10.2.0\oradata\JBITDB\EPET.DBF'SIZE100M;CREATETABLESPACEepet_tablespaceDATAFILE'E:\oracle\product\10.2.0\oradata\JBITDB\EPET.DBF'SIZE100MAUTOEXTENDONNEXT32MMAXSIZEUNLIMITEDLOGGINGEXTENTMANAGEMENTLOCALSEGMENTSPACEMANAGEMENTAUTO;權(quán)限和角色2-1權(quán)限指執(zhí)行特定類型SQL命令或訪問其他對象的權(quán)利系統(tǒng)權(quán)限和對象權(quán)限系統(tǒng)權(quán)限允許用戶執(zhí)行某些數(shù)據(jù)庫操作對象權(quán)限允許用戶對某一特定對象執(zhí)行特定的操作角色是具有名稱的一組權(quán)限的組合常用系統(tǒng)預(yù)定義角色CONNECT:臨時(shí)用戶RESOURCE:更為可靠和正式的用戶DBA:數(shù)據(jù)庫管理員角色,擁有管理數(shù)據(jù)庫的最高權(quán)限為了簡化權(quán)限管理,引入了角色的概念用戶必須賦予相應(yīng)的權(quán)限權(quán)限和角色2-2#分配權(quán)限或角色GRANTprivilegesorroleTOuser;#撤銷權(quán)限或角色REVOKEprivilegesorroleFROMuser;#把CONNECT、RESOURCE角色授予用戶epetGRANTCONNECT,RESOURCETOepet;#撤銷用戶epet的RESOURCE角色REVOKERESOURCEFROMepet;#允許用戶查看EMP表中的記錄GRANTSELECTONempTOepet;#允許用戶更新EMP表中的記錄GRANTUPDATEONempTOepet;域完整性實(shí)體完整性引用完整性自定義完整性提供四種類型的約束保證完整性四種完整性約束實(shí)體完整性河南新鄉(xiāng)趙可以0010016河南新鄉(xiāng)張麗鵑0010015江西南昌雷銅0010014湖南新田吳蘭0010013山東定陶李山0010012….地址姓名學(xué)號(hào)江西南昌雷銅0010014×約束方法:唯一約束、主鍵約束、標(biāo)識(shí)列域完整性河南新鄉(xiāng)趙可以河南新鄉(xiāng)張麗鵑0010015江西南昌雷銅0010014湖南新田吳蘭0010013山東定陶李山0010012….地址姓名學(xué)號(hào)湖北江門李亮870000000×約束方法:限制數(shù)據(jù)類型、檢查約束、外鍵約束、默認(rèn)值、非空約束0010016學(xué)號(hào)要求7位字符河南新鄉(xiāng)趙可以0010016河南新鄉(xiāng)張麗鵑0010015江西南昌雷銅0010014湖南新田吳蘭0010013山東定陶李山0010012…地址姓名學(xué)號(hào)980010021數(shù)學(xué)×約束方法:外鍵約束科目學(xué)號(hào)分?jǐn)?shù)…數(shù)學(xué)001001288數(shù)學(xué)001001374語文001001267語文001001381數(shù)學(xué)001001698引用完整性自定義完整性AV121322喬峰CV0016AV372133玄痛CV0015AV378291沙悟凈AV0014AV378290豬悟能AV0013AV378289孫悟空AV0012….會(huì)員證用戶姓名用戶編號(hào)約束方法:規(guī)則、存儲(chǔ)過程、觸發(fā)器帳號(hào)姓名信用….00192孫悟空700288豬悟能612333段譽(yù)890111虛竹4093000岳不群-10×觸發(fā)器:檢查信用值創(chuàng)建數(shù)據(jù)庫表完成如下建表要求學(xué)生老師課程考試需要根據(jù)業(yè)務(wù)需求確定各個(gè)字段的數(shù)據(jù)類型可以通過CREATETABLE命令實(shí)現(xiàn),也可以通過圖形界面來完成創(chuàng)建表需要考慮的內(nèi)容類名數(shù)據(jù)類型是否為空是否是主鍵默認(rèn)值Check約束外鍵約束創(chuàng)建數(shù)據(jù)庫表Oracle數(shù)據(jù)類型字符數(shù)據(jù)類型CHAR:存儲(chǔ)固定長度的字符串VARCHAR2:存儲(chǔ)可變長度的字符串NCHAR和NVARCHAR2:存儲(chǔ)Unicode字符集類型數(shù)值數(shù)據(jù)類型NUMBER:存儲(chǔ)整數(shù)和浮點(diǎn)數(shù),格式為NUMBER(p,s)column_nameNUMBER{p=38,s=0}column_nameNUMBER(p){整數(shù)}column_nameNUMBER(p,s){浮點(diǎn)數(shù)}不建議使用VARCHAR、INTEGER、FLOAT、DOUBLE等類型創(chuàng)建數(shù)據(jù)庫表Oracle數(shù)據(jù)類型日期時(shí)間數(shù)據(jù)類型DATE:存儲(chǔ)日期和時(shí)間數(shù)據(jù)TIMESTAMP:比DATE更精確LOB數(shù)據(jù)類型BLOB:存儲(chǔ)二進(jìn)制對象,如圖像、音頻和視頻文件CLOB:存儲(chǔ)字符格式的大型對象創(chuàng)建數(shù)據(jù)庫表通過CREATETABLE命令創(chuàng)建數(shù)據(jù)庫表表名Student主鍵StudentNo列名數(shù)據(jù)類型是否允許為空默認(rèn)值描述StudentNovarchar2(50)學(xué)號(hào)LoginPwdvarchar2(50)“123456”密碼StudentNamevarchar2(50)姓名Sex char(1)性別GradeIdnumber所在年級(jí)Phone varchar2(255)聯(lián)系電話Address varchar2(255)允許“學(xué)生宿舍”現(xiàn)住址BornDatedate允許出生日期Email nvarchar(50)允許電子郵件創(chuàng)建數(shù)據(jù)庫表表名Grade主鍵GradeId列名數(shù)據(jù)類型是否允許為空默認(rèn)值描述GradeIdnumber年級(jí)編號(hào),標(biāo)識(shí)列GradeNamevarchar2(50)否年級(jí)名表名Subject主鍵SubjectId列名數(shù)據(jù)類型是否允許空默認(rèn)值描述SubjectIdnumber科目編號(hào),標(biāo)識(shí)列SubjectNamevarchar2(20)否科目名稱ClassHournumber否0學(xué)時(shí)GradeIdinumber否所屬年級(jí)表名Result主鍵Id列名數(shù)據(jù)類型是否允許為空默認(rèn)值描述Idnumber自增1StudentNovarchar2(50)否學(xué)號(hào)SubjectIdnumber否所考科目StudentResultnumber否0分?jǐn)?shù)ExamDatedatetime否考試日期外鍵主鍵外鍵表名字段名主鍵表名字段名SubjectGradeIdGradeGradeIdStudentGradeIdGradeGradeIdResultStudentNoStudentStudentNoResultSubjectIdSubjectSubjectId創(chuàng)建數(shù)據(jù)庫表--創(chuàng)建表createtable表名(列名數(shù)據(jù)類型(長度)是否為空(notnull));createtablexuesheng(sidvarchar2(50)notnull,snamevarchar2(50)notnull);COMMENTONTABLEpetIS'寵物';COMMENTONCOLUMNIS'寵物昵稱';COMMENTONCOLUMNpet.healthIS'寵物健康值';…通過alert語句創(chuàng)建數(shù)據(jù)庫約束創(chuàng)建數(shù)據(jù)庫表Altertabletable_nameaddconstraintconstraint_nameconstraint_expression;Altertablestudents1addconstraints1_pkprimarykey(student_id);--主鍵約束ALTERTABLEstudentsADDCONSTRAINTfk_students_state

FOREIGNKEY(state)REFERENCESstate_lookup(state);--外鍵約束Altertablestudents1modifynamenamenotnull;--非空約束Altertablestudents1addconstraintsex_chk1check(sexin(‘男’,’女’));--檢查約束Altertablestudents1addconstraintpnum_uqunique(phone_number);--唯一約束當(dāng)主表中沒有對應(yīng)的記錄時(shí),不能將記錄添加到子表

——成績表中不能出現(xiàn)在學(xué)員信息表中不存在的學(xué)號(hào)不能更改主表中的值而導(dǎo)致子表中的記錄孤立

——把學(xué)員信息表中的學(xué)號(hào)改變了,學(xué)員成績表中的學(xué)號(hào)也應(yīng)當(dāng)隨之改變子表存在與主表對應(yīng)的記錄,不能從主表中刪除該行

——不能把有成績的學(xué)員刪除了刪除主表前,先刪子表

——先刪學(xué)員成績表、后刪除學(xué)員信息表主外鍵建立后注意事項(xiàng)創(chuàng)建數(shù)據(jù)庫表7-7通過PL/SQLDeveloper工具創(chuàng)建數(shù)據(jù)庫表INSERT給表填充數(shù)據(jù)語法:INSERTINTOtable_name VALUES(value1,value2,…...)例:

products_tbl:prod_idvarchar(10) prod_descvarchar(25) costnumber(6,2)輸入數(shù)據(jù):

INSERTINTOproducts_tbl VALUES(‘7725’,’LEATHER’,26.99)

UPDATE更新已存在的數(shù)據(jù)語法:UPDATEtable_name SETcolumn_name=‘value’ [WHEREcondition]例:UPDATEproducts_tbl SETprod_id=‘1001’ WHEREprod_desc=‘coat’DELETE刪除表中的數(shù)據(jù)語法:DELETEFROMtable_name [WHEREcondition]例:DELETEFROMproducts_tbl WHEREprod_ID=‘1001’創(chuàng)建和使用序列4-1錄入數(shù)據(jù)庫記錄時(shí),表的ID字段能否實(shí)現(xiàn)自動(dòng)編號(hào)功能呢?Oracle沒有類似SQLServer中的identity來定義主鍵自增屬性可以定義一個(gè)序列sequence,然后在插入數(shù)據(jù)時(shí)取序列中的下一個(gè)值即可創(chuàng)建和使用序列4-2CREATESEQUENCEseq_name[STARTWITHstart][INCREMENTBYincrement][MINVALUEminvalue|NOMINVALUE][MAXVALUEmaxvalue|NOMAXVALUE]

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論