版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第四課 建立和管理表,作者:吳進,,,教學提示,在Oracle的數(shù)據(jù)庫系統(tǒng)中,表是數(shù)據(jù)庫的基本對象,也是存取數(shù)據(jù)庫的主要手段,與桌面數(shù)據(jù)庫的文件類似,可以把所有的基本實體都看成表,不管應用中的表有多復雜,都可以用表來表示,用以存放實體的數(shù)據(jù)。學習完本課內(nèi)容后,將對數(shù)據(jù)庫表的操作會有一個比較全面的了解,教學目標,了解表的基本概念理解表的結構掌握表的創(chuàng)建、修改和刪除,數(shù)據(jù)范式,從數(shù)據(jù)庫表中除去冗余數(shù)據(jù)的過程稱為規(guī)范化。如果使用得當,規(guī)
2、范化是得到高效的數(shù)據(jù)表邏輯結構最好和最容易的方法。規(guī)范化數(shù)據(jù)時,應執(zhí)行以下操作:將數(shù)據(jù)庫的結構精簡為最簡單的形式從表中刪除冗余列標識所有依賴于其它數(shù)據(jù)的數(shù)據(jù)規(guī)范化過程有幾個階段。它們被稱為:第一范式(1NF)第二范式(2NF)第三范式(3NF)第四范式(4NF)第五范式(5NF)對于所有的實際應用,3NF已經(jīng)足夠。,高效范式的任務,刪除表中重復的列達到1NF。刪除表中不完全依賴于主鍵的數(shù)據(jù)為2NF。刪除不屬于該表
3、的數(shù)據(jù)(即完全依賴于其它列或外鍵的數(shù)據(jù)項),以使數(shù)據(jù)符合3NF。向表中放回一定數(shù)量的冗余數(shù)據(jù),通過避免使用跨表聯(lián)接來提高性能。,數(shù)據(jù)庫設計異常,從概念的角度出發(fā),將所有的信息放在一個關系中很方便,因為這樣查詢數(shù)據(jù)庫可能會比較容易。但是這些關系具有下列不必要的特性:見備注。,1NF,第一范示(1NF)滿足關系性質(zhì)的表稱為滿足第一范式。此時,關系不能有多值或復合屬性。這是1NF所必需的。當且僅當一個關系的所有基礎域包含原子值時,則稱
4、該關系滿足1NF。第一范式僅處理關系的基本結構,不解決冗余信息或異常信息。,2NF,第二范式(2NF)第二范式用于解決已滿足1NF的關系所標識的問題。第二范示的目標是確保關系中的所有信息只是關于一個實體的信息。如果一個關系滿足1NF,并且所有非主鍵屬性完全依賴于該關系的任一主鍵,則該關系滿足2NF。例子解說見備注:,3NF,第三范式(3NF)雖然使關系滿足2NF可以刪除許多可能出現(xiàn)的異常,但不能完全刪除所有的異常,還需要進一步
5、的規(guī)范化。定義3NF:如果關系R 滿足2NF,并且R 的任一非主鍵屬性都不傳遞依賴于R 的其它任何非主鍵屬性,則稱為R 滿足第三范示。傳遞依賴:假設屬性 A、B、C 是 R 的三個屬性,如果A ? B,且B ? C,我們可得出這就是A ?C.發(fā)生了傳遞依賴。,表的結構,用戶表和數(shù)據(jù)字典是Oracle數(shù)據(jù)庫中的兩種類型的表用戶表由用戶創(chuàng)建數(shù)據(jù)字典由Oracle服務器創(chuàng)建和維護數(shù)據(jù)字典包括有關數(shù)據(jù)庫的信息,表、列和行,列稱為字段
6、行又稱為記錄每個字段具有 字段名、字段長度、約束、默認值 屬性,命名表時需要遵循的規(guī)則,,表名首字符應該為字母不能使用保留字表名長度不超過30字符同一用戶下表名不能重復可以使用下劃線、數(shù)字、字母,但不能使用空格和單引號不區(qū)分大小寫,系統(tǒng)自動轉換為大寫,創(chuàng)建新表,創(chuàng)建表屬于DDL語言CREATE TABLE EMPLOYEE( empid char(4) not null, empname varch
7、ar2(15) not null, empaddress varchar2(20), zip char(10), empphone char(15) );,創(chuàng)建臨時表,Oracle可以建立臨時表臨時表用來保存一個會話(SESSION)的數(shù)據(jù)或者一個事務中需要的數(shù)據(jù)當會話退出或者用戶提交和回滾事務的時候,臨時表的數(shù)據(jù)自動清空,但是臨時表的結構以及元數(shù)據(jù)還存儲在用戶的數(shù)據(jù)字典中會話特有的臨時表和
8、事務特有的臨時表,事務特有的臨時表,只在事務生命周期中存在Create global temporary table classes(class_id number(5),class_name varchar2(8),class_memo varchar2(200))On commit delete rows;,事務特有的臨時表,Insert into classes values(1,’1’,’1’);Selec
9、t * from classes;Commit;Select * from classes;,會話特有的臨時表,用戶退出,自動清除臨時表中數(shù)據(jù)Create global temporary table student(stu_id number(5),class_id number(5),stu_name varchar2(8),stu_meno varchar2(200))on commit
10、preserve rows;,會話特有的臨時表,insert into student values(1,1,'1','1');Select * from student;Commit;Select * from student;--更換一個用戶后Select * from student;,特性和性能,臨時表只在當前連接內(nèi)有效臨時表不建立索引,所以如果數(shù)據(jù)量比較大或進行多次查詢時,不推薦使
11、用在Oracle中,全局臨時表并不會刪除,實際上你只需要建立一次,以后直接應用就行了,這與sqlserver和Sybase不一樣。實際上在斷開數(shù)據(jù)庫連接時,臨時表中數(shù)據(jù)自動清空。,增加列,Alter table employee add DepartmentCode char(6);,修改列,Alter table employee modify empname varchar2(40);Alter table departmen
12、t modify(Deptno char(6),Note varchar2(80));,刪除列,Alter table employee drop column empphone;--有的時候數(shù)據(jù)正在使用,并發(fā)時,可以先把字段設置為unused,等沒有人使用的時候再進行刪除。Alter table employee Set unused(zip);Alter table employee Drop unused col
13、umns;,重命名表,Rename old_name to new_name;Rename employee to emp;Alter table employee rename to emp;,清空與刪除表,,,Delete from emp;Truncate table emp;,TRUNCATE 與 DELETE 的區(qū)別,,,TRUNCATE在各種表上無論是大的還是小的都非常快。如果有ROLLBACK命令,DELETE將
14、被撤銷,而TRUNCATE則不會被撤銷TRUNCATE 是一個DDL語言,象其他所有的DDL語言一樣,它將被隱形提交,不能對TRUNCATE使用ROLLBACK命令TRUNCATE將重新設置所有的索引。在對整個表和索引進行完全瀏覽時,經(jīng)過TRUNCATE操作后的表比DELETE操作后的表要快得多。TRUNCATE不能觸發(fā)任何DELETE觸發(fā)器當表被清空后,表和表的索引將重新設置成初始大小,而DELETE則不能,刪除表,,,Dro
15、p table employee;,查看有關表信息,,,查看有關表信息,,,查看有關表信息,,,如何從數(shù)據(jù)字典中查看一個表中所有列的信息,,,--查詢表信息SELECT * FROM ALL_OBJECTS WHERE OWNER ='SCOTT' AND OBJECT_NAME='EMP';--查詢列信息SELECT OBJ#,COL#,NAME FROM SYS.COL$ WHERE OBJ#
16、in (SELECT object_id FROM ALL_OBJECTS WHERE OWNER ='SCOTT' AND OBJECT_NAME='EMP');,使用OEM實踐操作,,,登陸(SYS)-管理-建表,使用OEM實踐操作,,,可以通過顯示SQL選項生成DDL語句,習題,,,通過SYS利用OEM建立自己用戶下的表,表結構來自scott用戶下的emp,dept表,并導入數(shù)據(jù)。將建立的表生成
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論