03創(chuàng)建和管理數(shù)據(jù)表_第1頁
03創(chuàng)建和管理數(shù)據(jù)表_第2頁
03創(chuàng)建和管理數(shù)據(jù)表_第3頁
03創(chuàng)建和管理數(shù)據(jù)表_第4頁
03創(chuàng)建和管理數(shù)據(jù)表_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

1、模塊三:創(chuàng)建和管理數(shù)據(jù)表主講:馬建霞TELQ:48189407使用 Oracle 數(shù)據(jù)庫的開發(fā)流程服務(wù)器端安裝 Oracle 服務(wù)器軟件創(chuàng)建數(shù)據(jù)庫(安裝時自動創(chuàng)建)配置監(jiān)聽器(安裝時自動配置)啟動Oracle實例(自動啟動服務(wù))安裝 Oracle 客戶端軟件配置網(wǎng)絡(luò)服務(wù)名以新用戶登錄 Oracle提交 SQL 查詢創(chuàng)建新用戶并授權(quán)創(chuàng)建用戶表空間客戶端目 標(biāo) 任 務(wù):任務(wù)一:創(chuàng)建與管理表空間任務(wù)二:創(chuàng)建與管理用戶任務(wù)三:創(chuàng)建數(shù)據(jù)表任務(wù)四:管理數(shù)據(jù)表任務(wù)一:創(chuàng)建與管理表空間表空間(tablespace)是Oracle數(shù)據(jù)庫中最大的邏輯結(jié)構(gòu),它是數(shù)據(jù)庫的邏輯劃分,Oracl

2、e數(shù)據(jù)庫就是由一個或多個表空間組成的,一個表空間由一個或多個數(shù)據(jù)文件組成,但一個數(shù)據(jù)文件只能屬于一個表空間。所有的數(shù)據(jù)庫對象都存放在指定的表空間中。但主要存放的是表, 所以稱作表空間,默認(rèn)情況下系統(tǒng)會自己創(chuàng)建一個System的表空間。 數(shù)據(jù)庫表空間1表空間2數(shù)據(jù)文件1數(shù)據(jù)文件2段1段2塊 塊 塊 擴(kuò)展區(qū)1數(shù)據(jù)庫的幾個概念與寫字樓中的概念的對應(yīng)關(guān)系:寫字樓中的概念數(shù)據(jù)庫中的概念概念虛、實概念邏輯、物理大樓實的數(shù)據(jù)庫物理的公司虛的表空間邏輯的占用的房間實的數(shù)據(jù)文件物理的子任務(wù)1-1:創(chuàng)建表空間ORACLE可以創(chuàng)建的表空間大致有三種類型:(1)TEMPORARY: 臨時表空間,用于臨時數(shù)據(jù)的存放;創(chuàng)

3、建臨時表空間的語法如下: CREATE TEMPORARY TABLESPACE SAMPLE.(2)UNDO : 還原表空間. 用于存入重做日志文件.創(chuàng)建還原表空間的語法如下: CREATE UNDO TABLESPACE SAMPLE.(3)用戶表空間: 最重要,也是用于存放用戶數(shù)據(jù)的表空間可以直接寫成: CREATE TABLESPACE SAMPLETEMPORARY 和 UNDO 表空間是ORACLE 管理的特殊的表空間.只用于存放系統(tǒng)相關(guān)數(shù)據(jù).子任務(wù)1-1:創(chuàng)建表空間(續(xù)) 利用CREATE TABLESPACE命令創(chuàng)建和管理表空間 ,語法格式:CREATE UNDO|TEMPOR

4、ARY TABLESPACE tablespace_nameDATAFILE | TEMPFILE path/filename SIZE integer KM REUSE AUTOEXTEND OFFON NEXT integer KM MAXSIZE UNLIMITEDinteger KM MINIMUM EXTENT integer K | M DEFAULT STORAGE storage_clause ONLINEOFFLINE LOGGINGNOLOGGING PERMANENTTEMPORARY EXTENT MANAGEMENT DICTIONARYLOCAL AUTOALLOC

5、ATEUNIFORM SIZE integer KM ;子任務(wù)1-1:練習(xí)1、創(chuàng)建大小為50M的表空間student,禁止自動擴(kuò)展數(shù)據(jù)文件。2、創(chuàng)建一個臨時表空間temp,文件的存放路徑自定,空間的初始大小為10M,指定允許分配給數(shù)據(jù)文件的最大磁盤空間為200M。 注意:可以用下面的語句查看表空間的信息Select * from dba_tablespaces;子任務(wù)1-1:練習(xí)下面兩段創(chuàng)建表空間語句:1、CREATE TEMPORARY TABLESPACE temp2 TEMPFILE F:oracletemp01.ORA SIZE 32M REUSE AUTOEXTEND ON NEXT

6、 640K ;2、CREATE TABLESPACE data LOGGING DATAFILE F:oracledata.dbf SIZE 50M REUSE AUTOEXTEND ON NEXT 10M MAXSIZE 200M DEFAULT STORAGE ( INITIAL 16K NEXT 32K MINEXTENTS 1 );請分別說出兩條語名的含義。3、CREATE TABLESPACE IMAGEDATALOGGINGDATAFILE E:ORACLEORADATADATA_01.DBF SIZE 2000M REUSE AUTOEXTENDON NEXT 51200K MA

7、XSIZE 3900M,E:ORACLEORADATAXLDATA_02.DBF SIZE 2000M REUSE AUTOEXTENDON NEXT 51200K MAXSIZE 3900M,E:ORACLEORADATAXLDATA_03.DBF SIZE 2000M REUSEAUTOEXTEND ON NEXT 51200K MAXSIZE 3900M,E:ORACLEORADATAXLDATA_04.DBF SIZE 2000M REUSE AUTOEXTENDON NEXT 51200K MAXSIZE 3900MEXTENT MANAGEMENT LOCAL SEGMENT SP

8、ACE MANAGEMENT AUTO子任務(wù)1-2:修改表空間語法格式:ALTER TABLESPACE tablespace_name ADD DATAFILETEMPFILE path/filename SIZE integer KM REUSE AUTOEXTEND OFFON NEXT integer KM MAXSIZE UNLIMITEDinteger KM RENAME DATAFILE pathfilename,n TO pathre_filename,n DEFAULT STORAGE storage_clause ONLINEOFFLINE NORMALTEMPORARYI

9、MMEDIATE LOGGINGNOLOGGING READ ONLYWRITE PERMANENT TEMPORARY 子任務(wù)1-2:修改表空間(續(xù))練習(xí)1、增加表空間的容量任務(wù)要求: 通過ALTER TABLESPACE命令把一個新的數(shù)據(jù)文件添加到student表空間(文件名為student1,路徑自定),并指定AUTOEXTEND ON和 MAXSIZE 300M。注意: 盡管可以設(shè)置MAXSIZE UNLIMITED,但應(yīng)總是規(guī)定一個文件的最大尺寸值。子任務(wù)1-2:修改表空間(續(xù))2、修改原有文件的大小增加表空間的容量任務(wù)要求: 修改Student表空間,設(shè)置每次以2M的大小自動擴(kuò)展表

10、空間。注意:修改表空間的容量需要用Alter database命令。3、修改表空間的屬性 任務(wù)要求: 修改Student表空間的屬性,指定其將來的表、索引等不需要進(jìn)行日志處理 。提示:用alter tablespace 命令可能直接修改表空間的屬性。 子任務(wù)1-2:修改表空間(續(xù)) 4、修改表空間的名稱任務(wù)要求: 將student表空間的名稱改為student_jrg.再改回為Student.語法格式:ALTER TABLESPACE old_name RENAME TO new_name 5、設(shè)置數(shù)據(jù)庫的默認(rèn)表空間 通常情況下,數(shù)據(jù)庫的默認(rèn)表空間為SYSTEM或USERS表空間。提示:可以用

11、以下的語句查看用戶的默認(rèn)表空間 Select username,default_tablespace from dba_users;任務(wù)要求: 將Student表空間設(shè)置為數(shù)據(jù)庫的默認(rèn)表空間。語法格式:ALTER DATABASE DEFAULT TABLESAPCE tablespace_name子任務(wù)1-3:刪除表空間1、刪除表空間test,但不刪除其文件drop tablespace test;2、. 刪除表空間data同時刪除表空間的 內(nèi)容(了解)drop tablespace data including contents;3、刪除表空間data及其包含的內(nèi)容以及數(shù)據(jù)文件drop t

12、ablespace data including contents and datafiles; 使用OEM創(chuàng)建表空間:以sys用戶,sysdba連接身份登錄OEM,出現(xiàn)”數(shù)據(jù)庫“頁,單擊“存儲”,點擊“表空間”,如下圖:使用OEM創(chuàng)建表空間:在客戶端的OEM中可以查看表空間信息,如下圖:任務(wù)二:創(chuàng)建與管理用戶Oracle 默認(rèn)用戶只有用合法的用戶帳號才能訪問Oracle數(shù)據(jù)庫Oracle 有幾個默認(rèn)的數(shù)據(jù)庫用戶 Oracle 默認(rèn)用戶SYSSYSTEMSCOTT數(shù)據(jù)庫中所有數(shù)據(jù)字典表和視圖都存儲在 SYS 模式中。SYS用戶主要用來維護(hù)系統(tǒng)信息和管理實例。SYSTEM 是默認(rèn)的系統(tǒng)管理員,該

13、用戶擁有Oracle管理工具使用的內(nèi)部表和視圖。通常通過SYSTEM用戶管理數(shù)據(jù)庫用戶、權(quán)限和存儲等SCOTT用戶是Oracle 數(shù)據(jù)庫的一個示范帳戶,在數(shù)據(jù)庫安裝時創(chuàng)建子任務(wù)2-1:創(chuàng)建新用戶要連接到Oracle數(shù)據(jù)庫,就需要創(chuàng)建一個用戶帳戶每個用戶都有一個默認(rèn)表空間和一個臨時表空間CREATE USER命令用于創(chuàng)建新用戶,語法格式如下:CREATE USER username IDENTIFIED BY passwordOR IDENTIFIED BY EXETERNALLYDEFAULT TABLESPACE tablespaceTEMPORARY TABLESPACE temptabl

14、espaceQUOTA integer KM UNLIMITED ON tablespace,QUOTA integer KM UNLIMITED ON tablespacePROFILES profile_namePASSWORD EXPIREACCOUNT LOCK or ACCOUNT UNLOCK子任務(wù)2-1:練習(xí) 1、創(chuàng)建用戶byxy,密碼為baiyun.2、創(chuàng)建一個以自己的名字命名(用拼英命名,如果有英文名的可用英文名)的用戶,密碼自定,設(shè)置默認(rèn)表空間為student,臨時表空間為temp。 請用記事本寫出相應(yīng)的代碼,并在SQL*Plus中運行。子任務(wù)2-1:練習(xí)(續(xù)) 3、在SQ

15、L*Plus中創(chuàng)建一個user1的用戶,設(shè)置密碼為123456,看能否正常運行?4、在SQL*Plus中依次執(zhí)行如下的語句:create user myuser identified by welcomedefault tablespace studenttemporary tablespace temp password expire;創(chuàng)建完成后,以myuser用戶身份連接到數(shù)據(jù)庫,會出現(xiàn)什么情況?說明什么?子任務(wù)2-2:給用戶授予權(quán)限權(quán)限指的是執(zhí)行特定命令或訪問數(shù)據(jù)庫對象的權(quán)利Oracle中存在兩種權(quán)限 系統(tǒng)權(quán)限(SYSTEM PRIVILEGE):允許用戶在數(shù)據(jù)庫中執(zhí)行指定的行為,一般可

16、以理解成比較通用的一類權(quán)限。 對象權(quán)限(OBJECT PRIVILEGE):允許用戶訪問和操作一個指定的對象,該對象是一個確切存儲在數(shù)據(jù)庫中的命名對象。系統(tǒng)權(quán)限oracle包含100多種系統(tǒng)權(quán)限,其主要作用:執(zhí)行系統(tǒng)端的操作,比如CREATE SESSION是登陸的權(quán)限,CREATE TABLESPACE創(chuàng)建表空間的權(quán)限管理某類對象,比如CREATE TABLE是用戶建表的權(quán)限管理任何對象,比如CREATE ANY TABLE,ANY關(guān)鍵字表明該權(quán)限“權(quán)力”比較大,可以管理任何用戶下的表,所以一般只有DBA來使用該權(quán)限,普通用戶是不應(yīng)該擁有該類權(quán)限的。表的系統(tǒng)權(quán)限CREATE TABLE(建表

17、)CREATE ANY TABLE(在任何用戶下建表)ALTER ANY TABLE(修改任何用戶的表的定義)DROP ANY TABLE(刪除任何用戶的表)SELECT ANY TABLE(從任何用戶的表中查詢數(shù)據(jù))UPDATE ANY TABLE(更改任何用戶表的數(shù)據(jù))DELETE ANY TABLE(刪除任何用戶的表的記錄)。索引及會話系統(tǒng)權(quán)限索引:CREATE ANY INDEX(在任何用戶下創(chuàng)建索引)ALTER ANY INDEX(修改任何用戶的索引定義)DROP ANY INDEX(刪除任何用戶的索引)會話:(SESSION)CREATE SESSION(創(chuàng)建會話,登陸權(quán)限)ALT

18、ER SESSION(修改會話)表空間系統(tǒng)權(quán)限表空間CREATE TABLESPACE(創(chuàng)建表空間)ALTER TABLESPACE(修改表空間)DROP TABLESPACE(刪除表空間)UNLIMITED TABLESPACE(不限制任何表空間的配額)注意: 表空間的所有權(quán)限都不應(yīng)該分配給普通用戶。系統(tǒng)特權(quán)系統(tǒng)特權(quán)權(quán)限SYSDBA和SYSOPERSYSOPER的權(quán)限:啟動停止數(shù)據(jù)庫,恢復(fù)數(shù)據(jù)庫等SYSDBA的權(quán)限:所有SYSOPER功能的管理權(quán)限;創(chuàng)建數(shù)據(jù)庫等權(quán)限。注意: 以系統(tǒng)特權(quán)權(quán)限登陸的用戶一般都是特權(quán)用戶,或稱為超級用戶。以SYSDBA身份登陸的用戶在ORACLE中是權(quán)限最大的用戶

19、,可以執(zhí)行數(shù)據(jù)庫的所有操作。這些特權(quán)權(quán)限是不應(yīng)該隨便賦予給普通用戶的。對象權(quán)限對象權(quán)限 是在指定的表、視圖、序列或過程上執(zhí)行指定動作的權(quán)限或權(quán)利。每個對象都有一個特殊的可授予的權(quán)限集。對象權(quán)限的種類不是很多,但數(shù)量較大,因為具體對象的數(shù)量很多。對象權(quán)限的分類權(quán)限分類對象類型表(Table)視圖(View)序列(Sequence)存儲(Procedure)SELECT(選擇)INSERT(插入)UPDATE(更改)DELETE(刪除)ALTER(修改)INDEX(索引)REFERENCE(引用)EXECUTE(執(zhí)行)子任務(wù)2-2:給用戶授予權(quán)限(續(xù))GRANT 命令可用于為用戶分配權(quán)限或角色 G

20、RANT CONNECT TO 用戶名; CONNECT角色允許用戶連接至數(shù)據(jù)庫,并創(chuàng)建數(shù)據(jù)庫對象GRANT RESOURCE TO用戶名; RESOURCE角色允許用戶使用數(shù)據(jù)庫中的存儲空間GRANT CREATE SEQUENCE TO用戶名; 此系統(tǒng)權(quán)限允許用戶在當(dāng)前模式中創(chuàng)建序列,此權(quán)限包含在CONNECT角色中子任務(wù)2-2:給用戶授予權(quán)限(續(xù))授予用戶 MARTIN 操作TEST表對象的權(quán)限 GRANT SELECT ON TEST TO MARTIN; 允許用戶查詢 TEST 表的記錄GRANT UPDATE ON TEST TO MARTIN; 允許用戶更新 TEST 表中的記錄

21、GRANT ALL ON TEST TO MARTIN; 允許用戶插入、刪除、更新和查詢 TEST 表中的記錄子任務(wù)2-2:練習(xí)1、給用戶“majianxia”(自己創(chuàng)建的用戶名)設(shè)置權(quán)限,允許該用戶連接(connect或者create session)至數(shù)據(jù)庫,并創(chuàng)建數(shù)據(jù)庫對象(例如:create table,create view)。再試著以majianxia (自己創(chuàng)建的用戶名)連接到數(shù)據(jù)庫。區(qū)分connect 權(quán)限和create session權(quán)限。2、給用戶“majianxia”設(shè)置權(quán)限,允許該用戶插入、刪除、更新和查詢Scott.emp表中的記錄.子任務(wù)2-3:管理用戶1、修改用戶

22、密碼語法DBA可以修改任何普通用戶的密碼,而不需要知道用戶的舊密碼。在sqlplus下執(zhí)行password命令來修改登陸用戶自己的密碼,提示會輸入舊密碼和新密碼。ALTER USER user IDENTIFIED BY 新密碼;子任務(wù)2-3:管理用戶(續(xù))2、用戶狀態(tài):OPEN、EXPIRED、LOCKED。OPEN表正常狀態(tài),為用戶帳號初始創(chuàng)建后狀態(tài)。EXPIRED表示密碼過期,用戶下次登陸的時候需要修改密碼;LOCKED表示該帳戶已被鎖定,不能執(zhí)行任何Oracle相關(guān)操作(即使擁有相關(guān)的權(quán)限)。狀態(tài)管理語句:ALTER USER user PASSWORD EXPIRE;-密碼過期ALT

23、ER USER user ACCOUNT LOCKUNLOCK;-帳戶鎖定/解鎖子任務(wù)2-3:管理用戶(續(xù))3、刪除用戶語法CASCADE表示系統(tǒng)先自動刪除該用戶下的所有對象,然后再刪除該用戶的定義。已經(jīng)登陸的用戶是不允許被刪除的。DROP USER user CASCADE回收對象權(quán)限回收對象權(quán)限語法:對象的權(quán)限會級聯(lián)回收。權(quán)限的查詢DBA_SYS_PRIVS:查詢所有的系統(tǒng)權(quán)限的授權(quán)情況。SESSION_PRIVS:能夠查詢出當(dāng)前會話已經(jīng)激活的所有系統(tǒng)權(quán)限。DBA_TAB_PRIVS:查詢出表的對象權(quán)限的授權(quán)情況。REVOKE 對象權(quán)限種類 ON 對象名 FROM user子任務(wù)2-3:練

24、習(xí)1、修改“user1”用戶的密碼為“byxy2011”;并用連接的方式驗證密碼修改是否成功;2、以majianxia用戶的身份連接到數(shù)據(jù)庫,再刪除“user1”用戶,看看會出現(xiàn)什么結(jié)果?分析原因并解決問題,并刪除user1用戶。3、回收user1用戶的權(quán)限。了解角色:角色(ROLE)的目的就是為了簡化權(quán)限的管理。 權(quán)限用戶單獨授予權(quán)限使用角色授予權(quán)限r(nóng)ole子任務(wù)二綜合練習(xí):1.建立新用戶user_neu 2. 給用戶user_neu授權(quán),使其能夠登陸到數(shù)據(jù)庫,能夠查詢scott下的emp表;3.查詢用戶user_neu的權(quán)限;4.回收用戶user_neu的登陸權(quán)限;5.回收用戶user_n

25、eu的所有對象權(quán)限;6.建立角色role_neu ;7.給角色role_neu授權(quán),使其能夠登陸到數(shù)據(jù)庫(可選) ;8.賦角色role_neu給用戶user_neu (可選) ;9.刪除角色role_neu (可選) ;10.刪除用戶user_neu (可選) ;子任務(wù)二綜合練習(xí):1.建立新用戶user_neu create user user_neu identified by mjx default tablespace users;2. 給用戶user_neu授權(quán),使其能夠登陸到數(shù)據(jù)庫,能夠查詢scott下的emp表;grant connect to user_neu;grant sel

26、ect on scott.emp to user_neu;3.查詢用戶user_neu的權(quán)限;select * from dba_sys_privs where grantee=MJX;Select * from session_privs;select * from dba_tab_privs where grantee=USER_NEU;4.回收用戶user_neu的登陸權(quán)限;revoke create session from user_neu;5.回收用戶user_neu的所有對象權(quán)限;revoke all on scott.emp from user_neu;6.建立角色role_n

27、eu ;Create role user_neu;7.給角色role_neu授權(quán),使其能夠登陸到數(shù)據(jù)庫(可選) ; grant connect to role_neu;8.賦角色role_neu給用戶user_neu (可選) ; grant role_neu to user_neu;9.刪除角色role_neu (可選) ; drop role role_neu;10.刪除用戶user_neu (可選) ;Drop user user_neu;任務(wù)三:創(chuàng)建數(shù)據(jù)表分成兩個子任務(wù)來完成: 子任務(wù)3-1:創(chuàng)建數(shù)據(jù)表 子任務(wù)2:創(chuàng)建臨時表 子任務(wù)3-1:創(chuàng)建數(shù)據(jù)表任務(wù)要求:在數(shù)據(jù)庫中創(chuàng)建如下的tea

28、cher數(shù)據(jù)表,請用記事本寫出SQL代碼,并在SQL*Plus以你自己的名字命名的用戶登錄并執(zhí)行。 表1:教師檔案表(teacher)教師編號姓名性別工作時間政治面貌學(xué)歷職稱系別1張三男1969-11-10群眾大學(xué)本科副教授經(jīng)濟(jì)2郭新女1979-6-25黨員大學(xué)本科講師計算機(jī)任務(wù)三:創(chuàng)建數(shù)據(jù)表1、方案: 所謂方案,就是一系列數(shù)據(jù)庫對象的集合,是數(shù)據(jù)庫中存儲數(shù)據(jù)的一個邏輯表示或描述。Oracle 10g數(shù)據(jù)庫中并不是所有的數(shù)據(jù)庫對象都是方案對象,方案對象有表、索引、觸發(fā)器、數(shù)據(jù)庫鏈接、PL/SQL包、序列、同義詞、視圖、存儲過程、存儲函數(shù)等,非方案對象有表空間、用戶、角色、概要文件等。 在Ora

29、cle 10g數(shù)據(jù)庫中,每個用戶都擁有自己的方案,創(chuàng)建了一個用戶,就創(chuàng)建了一個同名的方案,方案與數(shù)據(jù)庫用戶是對應(yīng)的。但在其他關(guān)系型數(shù)據(jù)庫中兩者卻沒有這種對應(yīng)關(guān)系,所以方案和用戶是兩個完全不同的概念,要注意加以區(qū)分。在默認(rèn)情況下,一個用戶所創(chuàng)建的所有數(shù)據(jù)庫對象均存儲在自己的方案中。任務(wù)三:創(chuàng)建數(shù)據(jù)表(續(xù))2、表結(jié)構(gòu) 表是oracle數(shù)據(jù)庫數(shù)據(jù)存儲的基本單元,通過行和列來組織數(shù)據(jù)。 字段:字段名、字段數(shù)據(jù)類型、字段長度、約束、默認(rèn)值等。任務(wù)三:創(chuàng)建數(shù)據(jù)表(續(xù))3、基本的數(shù)據(jù)類型(1)char(n):定長字符串,n=1 to 2000字節(jié),即最大長度為2K,如果不指定長度,缺省為1個字節(jié)長(一個漢字

30、為2字節(jié));新建一個測試表test_char.,只有一個char類型的列。長度為10 SQL create table test_char(colA char(10); (2)varchar2(n):可變長的字符串, n=1 to 4000字節(jié)。 如果數(shù)據(jù)長度沒有達(dá)到最大值n,Oracle 會根據(jù)數(shù)據(jù)大小自動調(diào)節(jié)字段長度,如果你的數(shù)據(jù)前后有空格,Oracle 會自動將其刪去。 varchar2(n)是最常用的數(shù)據(jù)類型。 創(chuàng)建一個表,只有一列,類型為varchar2,長度為10 SQL create table test_varchar( col varchar2(10); 任務(wù)三:創(chuàng)建數(shù)據(jù)表(

31、續(xù))3、基本的數(shù)據(jù)類型(續(xù))(3)number(m,n) :m=1 to 38 、n=-84 to 127, m是所有有效數(shù)字的位數(shù),n是小數(shù)點以后的位數(shù)。如:number(5,2),但在一行數(shù)據(jù)中的這個字段輸入575.316,則真正保存到字段中的數(shù)值是575.32。 (4)date :該數(shù)據(jù)類型用于定義日期時間數(shù)據(jù),長度為7B。(5)raw(n):n=1 to 2000可變長二進(jìn)制數(shù)據(jù),在具體定義字段的時候必須指明最大長度n,Oracle 用這種格式來保存較小的圖形文件或帶格式的文本文件,如Miceosoft Word文檔。 raw是一種較老的數(shù)據(jù)類型,將來會逐漸被blob、clob、ncl

32、ob等大的對象數(shù)據(jù)類型所取代。任務(wù)三:創(chuàng)建數(shù)據(jù)表(續(xù))3、基本的數(shù)據(jù)類型(續(xù))(6)存儲大對象的數(shù)據(jù)類型:blob :用于存儲非結(jié)構(gòu)化數(shù)據(jù),比如二進(jìn)制圖像。clob:單字節(jié)字符數(shù)據(jù),用于存儲大型的固定寬度字符數(shù)據(jù)。nclob :用于存儲大型的,固定寬度字符集數(shù)據(jù)bfile :用于存儲操作系統(tǒng)文件中的非結(jié)構(gòu)化數(shù)據(jù)。大對象數(shù)據(jù)類型的列不能出現(xiàn)在where,group by或order by子句中。 不能在SQL*Plus等環(huán)境中查詢、顯示大對象類型的數(shù)據(jù),也不能通過insert語句插入大對象類型的數(shù)據(jù) 常見的數(shù)據(jù)類型具體見下頁表。任務(wù)三:創(chuàng)建數(shù)據(jù)表(續(xù))創(chuàng)建數(shù)據(jù)表的語法格式:CREATE TABL

33、E schema. table_name(column_name datatype DEFAULT expression column_constraint,n) PCTFREE integer PCTUSED integerINITRANS integerMAXTRANS integer TABLESPACE tablespace_name STORGE storage_clause CLUSTER cluster_name(cluster_column,n) LOGGING |NOLOGGING AS subquery 任務(wù)三:創(chuàng)建數(shù)據(jù)表(續(xù))創(chuàng)建表時的命名規(guī)則和注意事項1)表名和字段名的

34、命名規(guī)則:必須以字母開頭,可以含符號A-Z,a-z,0-9,_,$,#2)大小寫不區(qū)分; 3)不用SQL里的保留字, 一定要用時可用雙引號把字符串括起來;4)用和實體或?qū)傩韵嚓P(guān)的英文符號長度有一定的限制。子任務(wù)3-1:練習(xí) 1、要求:在數(shù)據(jù)庫中創(chuàng)建如下的teacher數(shù)據(jù)表,請用記事本寫出SQL代碼,并在SQL*Plus以你自己的名字命名的用戶登錄并執(zhí)行。字段名稱字段類型字段大小允許空值備注teacherno8位數(shù)字必填教師編號teachername必填姓名teachersex性別worktime工作時間political政治面貌education學(xué)歷professional職稱departm

35、entno系別telephone聯(lián)系電話子任務(wù)3-1:練習(xí)(續(xù)) 2、閱讀下面的SQL語句,指出該Create Table命令創(chuàng)建的表的特性。create table ITEM( typeid varchar2(14) not null, type varchar22(10)tablespace USERS / ITEM這個表是在USERS表空間中創(chuàng)建的 pctfree 10 /用于控制空閑空間比例,更新操作比較多時,此參數(shù)應(yīng)設(shè)為較高的值 initrans 1 / 指定針對同一個塊所允許的最小并發(fā)事務(wù)數(shù)目 maxtrans 255 storage ( initial 64K minextent

36、s 1 maxextents unlimited );子任務(wù)3-2:創(chuàng)建臨時表當(dāng)緩存中間數(shù)據(jù)時候,需要創(chuàng)建一個臨時表,其實oracle本身在這方面就已經(jīng)考慮很全了,除非有些高級應(yīng)用的時候才考慮自己創(chuàng)建臨時表。Oracle的臨時表創(chuàng)建之后基本不占用表空間,如果你沒有指定臨時表(包括臨時表的索引)存放的表空的時候,你插入到臨時表的數(shù)據(jù)是存放在ORACLE系統(tǒng)的臨時表空間中(TEMP)。 建立臨時表語法:1、ON COMMIT DELETE ROWS 定義了建立事務(wù)級臨時表的方法CREATE GLOBAL TEMPORARY TABLE TABLE_NAME(COUMNS )AS SELECT FR

37、OM TABLE.ON COMMIT DELETE ROWS;當(dāng)前session發(fā)出commit/rollback命令,則該事務(wù)周期發(fā)生的所有數(shù)據(jù)自動被Oracle刪除(Oracle truncate table)。但不影響任何其他session的數(shù)據(jù)。建立臨時表語法:2、ON COMMIT PRESERVE ROWS 定義了創(chuàng)建會話級臨時表的方法CREATE GLOBAL TEMPORARY TABLE TABLE_NAME(COUMNS )AS SELECT FROM TABLEON COMMIT PRESERVE ROWS;當(dāng)前session結(jié)束(用戶正常退出 / 用戶不正常退出 / O

38、racle實例崩潰),Oracle對這個會話的中發(fā)生的數(shù)據(jù)進(jìn)行刪除(Oracle truncate table)。但不影響任何其他session的數(shù)據(jù)。子任務(wù)3-2:練習(xí)完成Word文檔中的練習(xí)。任務(wù)四:管理數(shù)據(jù)表子任務(wù)4-1:修改數(shù)據(jù)表的結(jié)構(gòu)子任務(wù)4-2:重命名數(shù)據(jù)表子任務(wù)4-3:刪除數(shù)據(jù)表子任務(wù)4-4:截斷數(shù)據(jù)表子任務(wù)4-1:修改數(shù)據(jù)表的結(jié)構(gòu)添加列語法:修改列語法:刪除列語法:ALTER TABLE tableDROP (columnname ,columnname); ALTER TABLE table MODIFY(columnname datatypeDEFAULT expr , columnname datatype.);ALTER

溫馨提示

  • 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

提交評論