oracle數(shù)據(jù)庫(精編版)_第1頁
oracle數(shù)據(jù)庫(精編版)_第2頁
oracle數(shù)據(jù)庫(精編版)_第3頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、oracleadmin 和 mysql 數(shù)據(jù)庫的password 相同sele 超級管理員 :sys/change on install普通管理員 :system/manager普通用戶 :scott/tiger大數(shù)據(jù)用戶 :sh/sh格式化語法:set linesize 300; 設(shè)置 oreacl 數(shù)據(jù)庫的顯示行大小set pagesize 30; 設(shè)置每頁顯示的條數(shù)col字段名for a15以上通常使用設(shè)置顯示desc查看表結(jié)構(gòu)scott表中的結(jié)構(gòu):1、 部門表: deptno名稱類型描述1 deptnonumber(2)表示部門編號,由兩位數(shù)字組成2 dnamvarchar2(14)部

2、門名稱,最多由14 位字符組成3 locvarchar2(13)部門所在的位置2、雇員表: empno名稱類型描述1 empnonumber(4)雇員的編號,由4 位數(shù)字組成2 enamevarchar2(10)雇員的,由10 位字符組成3 jobvarchar2(9)雇員的職位4 mgrnumber(4)雇員的領(lǐng)導(dǎo)編號5 hiredatedate雇員的雇傭日期6 salnumber(7,2)基本工資,其中有2 位小數(shù), 5 位整數(shù)一共7 位7 commnumber(7,2)獎金傭金8 deptnonumber(2)雇員所在的部門編號3、工資等級表:salgradeno名稱類型描述1 grad

3、enumber工資等級2 losalnumber此工資的最低等級3 hisalnumber此工資的最高等級4、工資表: bonusno名稱類型描述1 enamevarchar2(10)雇員2 jobvarchar2(9)雇員職位3 salnumber雇員的工資4 commnumber雇員的獎金簡單查詢:sql 是數(shù)據(jù)庫語言。sql 通常用于數(shù)據(jù)庫之間的通訊,ansi 美國標(biāo)準(zhǔn)學(xué)會聲稱,sql是關(guān)系型數(shù)據(jù)庫系統(tǒng)的標(biāo)準(zhǔn)語言。· dml data manipulation language ,數(shù)據(jù)庫操作語言那用于檢索或修改數(shù)據(jù)· ddl data definition langu

4、age ,數(shù)據(jù)定義語言用于定義數(shù)據(jù)的結(jié)構(gòu),如創(chuàng)建、修改或刪除數(shù)據(jù)庫對象。· dcl data control language ,數(shù)據(jù)控制語言用于定于時候據(jù)哭用戶的權(quán)限select distinct * |字段別名, 字段 別名 from表名稱 別名;select * from emp where ename=&str ;如果查詢出來的數(shù)據(jù)有重復(fù)的數(shù)據(jù),可以使用使用此種方式查詢必須注意大小寫distinct關(guān)鍵字消除重復(fù)如: select distinct job from emp在進(jìn)行簡單查詢時也可以使用四則運算符select ename,job, sal*12 as sa

5、l from emp; |select ename,job, sal*12 sal from emp;“|”用于連接字符串;order by字段 asc | desc ;簡單查詢語法:限定查詢:select distinct * |字段別名, 字段 別名 from表名稱 別名 where條件 s ;查詢排序:select distinct * |from表名稱 別名 where條件 s 字段別名, 字段 別名 如果排序時有多個字段的時候,用“,”分隔開單行函數(shù):單行函數(shù)主要分為五類:字符函數(shù)、數(shù)字函數(shù)、日期函數(shù)、轉(zhuǎn)換函數(shù)、通用函數(shù)在 oracle 數(shù)據(jù)庫中就算是使用函數(shù)進(jìn)行簡單的查詢也必須寫出

6、完整的sql 語句,但 oracle數(shù)據(jù)庫為了查詢方便專門提供了一個方便查詢的虛擬表“dual ”表。字符函數(shù):字符函數(shù)的功能主要是進(jìn)行字符串?dāng)?shù)據(jù)的操作· upper字符串:將字符串變成大寫返回· lower 字符串:將字符串變成小寫返回· initcap 字符串| 列:開頭首字母大寫· length 字符串| 列:求出字符串的長度· replace 字符串| 列:進(jìn)行替換需要三個參數(shù):1、列名 2、替換前的字符3、替換后的字符。· substr 字符串| 列,開始點 結(jié)束點 :字符串截取使用 substr 截取字符串時有兩種語法:1

7、、 substr 字符串| 列,開始點 :表示從開始一直截取到末尾2、 substr 字符串| 列,開始點,結(jié)束點 :表示截取制定區(qū)域的字符串?dāng)?shù)字函數(shù) :· round 數(shù)字| 列保留小數(shù)的位數(shù) :四舍五入的操作· trunc 數(shù)字| 列保留小數(shù)的位數(shù):舍棄指定位置的內(nèi)容· mod 數(shù)字 1,數(shù)字 2:取模,去余數(shù)日期函數(shù):select sysdate from dual ;取得當(dāng)前日期sysdate + n; 表示 n 天后的日期sysdate n;表示 n 天前的日期sysdate 日期 ;表示當(dāng)前日期和指定日期之間的天數(shù)· last_date 日期

8、:求出指定日期的最后一天· next_date 日期,星期數(shù) :求出下一個指定星期x 的日期· add_months星期,數(shù)字 :求出假設(shè)干月之后的日期· months_between日期 1,日期 2:求出兩個日期之間所經(jīng)歷的月份轉(zhuǎn)換函數(shù):· to_char 字符串| 列,格式字符串 :將日期或者是數(shù)字轉(zhuǎn)換成字符串顯示如果將日期轉(zhuǎn)換成字符串顯示的話,月份前面會添加一個“0”,如果想去掉這個“0”需要在格式化字符串里面并且是最前面加上fm 即可。如果需要顯示出時間則需要在格式化字符串中添加時、分、秒縮寫即可: 時: hh | 24hh;分: mi;秒:

9、ss;如果需要將數(shù)字格式化就在格式化字符串中使用一個“9”代表一個數(shù)字,如果需要表示不同的數(shù)字類型,如貨幣:就在格式化字符串前面添加縮寫;貨幣:“ l”表示“ local ”含義,即當(dāng)前電腦語言環(huán)境下的貨幣符號;· to_da te字符串,格式字符串:將字符串變?yōu)閐ate 數(shù)據(jù)顯示· to_number 字符串:將字符串變成數(shù)字顯示通用函數(shù) :通用函數(shù)主要有兩個:nvl() 、decode() ,這兩個函數(shù)是oracle 數(shù)據(jù)庫獨有的函數(shù)。1、 nvl() 函數(shù),處理null ;設(shè)置函數(shù)需要兩個參數(shù)第一個是列,第二個是如果為null 需要替換的數(shù)字。2、 decode()

10、函數(shù):多條件,多數(shù)值判斷。語法:decode( 數(shù)值| 列,判斷值select empno,ename,job,1,顯示值 1,判斷值1,)decode(job,'clerk','辦事員 ','salesman',' 銷售員 ')from emp;多表查詢:多表查詢語法:select distinct * |字段別名, 字段 別名 .from表名稱 別名, 表名稱 別名,where條件 s order by字段 asc | desc ;·注意:一般在查詢不知道表中的數(shù)據(jù)時,可以使用count() 函數(shù)查詢出數(shù)據(jù)庫表中的數(shù)

11、據(jù)條數(shù),這樣就可以防止由于數(shù)據(jù)庫表數(shù)據(jù)量太大帶來的損失。在 oracle 數(shù)據(jù)庫中查詢的時候需要使用左右連接查詢就使用“+”符號: 1、“+ =”:如果將“+”放在等號左邊就表示左連接查詢;2、“ =+”:如果將“+”放在等號右邊就表示右連接查詢;統(tǒng)計函數(shù)及分組查詢:·統(tǒng)計函數(shù):· count() :查詢表中的數(shù)據(jù)記錄;· avg() :求出平均值;· sum() :求和;· max() :求出最大值;· min() :求出最小值;·分組統(tǒng)計:select distinct * |分組字段1 別名 ,分組字段2 別名 ,.

12、| 統(tǒng)計函數(shù)from表名稱 別名, 表名稱 別名,. where條件 (s)group by分組字段1 ,分組字段2,.order by排序字段asc | desc ,排序字段asc | desc在進(jìn)行分組查詢時不管是單字段還是多字段,一定要有一個前提查詢的數(shù)據(jù)存在重復(fù)數(shù)據(jù)在 where 子句中不能使用統(tǒng)計函數(shù)如果需要對分組后的數(shù)據(jù)再次進(jìn)行過濾,則使用having 子句完成,并且having子句必須出現(xiàn)在 group by子句之后,因為是對分組后的數(shù)據(jù)再次過濾。· where和 having的區(qū)別:1、 where :是在執(zhí)行g(shù)roup by 操作之前進(jìn)行的數(shù)據(jù)過濾,表示從全部時候據(jù)

13、之中篩選出部分的數(shù)據(jù),在where 之中不能使用統(tǒng)計函數(shù)。2、 having :是在 group by分組之后的再次過濾,可以在ha ving 子句中使用統(tǒng)計函數(shù)。子查詢:子查詢= 簡單查詢+ 限定查詢+ 多表查詢+ 統(tǒng)計查詢; 子查詢出現(xiàn)的規(guī)律:· where :子查詢一般只返回單行單列、多行單列、單行多列的數(shù)據(jù);· from :子查詢發(fā)那會的一般是多行多列的數(shù)據(jù),當(dāng)做一張臨時表出現(xiàn);如果子查詢返回的是多行單列數(shù)據(jù)的話,這個時候就需要使用三種判斷:in 、any 、all ;1、 in 操作符:用于指定一個子查詢的判斷范圍,與模糊查詢中的in 是一樣的,唯一不同的是,里面

14、的范圍有子查詢指定。2、 any 操作符:與每一個內(nèi)容相匹配,有三種匹配形式。· =any :功能與in 操作符時完全一樣的· >any :比子查詢中返回記錄最小還要大的數(shù)據(jù)· <any :比子查詢中返回記錄最大還要小的數(shù)據(jù)3、 all 操作符:與每一個內(nèi)容相匹配,有兩種匹配形式:· >all :比子查詢中返回的記錄還要大的數(shù)據(jù)· <all :比子查詢中返回的記錄好要小的數(shù)據(jù)大部分情況下,如果最終的查詢結(jié)構(gòu)之中出現(xiàn)select子句,但是又不能使用統(tǒng)計函數(shù)的時候,就中子查詢中統(tǒng)計信息,即:又復(fù)雜統(tǒng)計的地方大部分都需要使用子

15、查詢。將多個表中查詢的數(shù)據(jù)的結(jié)果保存一個臨時表中使用的例如臨時表查詢:select * from( select bname from bookwherebidin( select bidfrom penalty) temp ;數(shù)據(jù)更新操作:數(shù)據(jù)庫表復(fù)制語法:create table名稱as select * from復(fù)制的表名稱;數(shù)據(jù)增加:語法:insert into表名稱( 字段 1,字段 2,.) v alues ( 值 1,值 2.);增加 data 數(shù)據(jù):· 第一種: 可以只按照已有的字符串的格式編寫字符串,例如“12-12 月-80”;· 第二種: 利用 to_

16、date() 函數(shù)將字符串變?yōu)閐ate 類型的數(shù)據(jù);· 第三種: 如果設(shè)置的時間為當(dāng)前系統(tǒng)時間,則使用sysdate ;數(shù)據(jù)修改:修改語法:update件(s)表名稱set 更新字段1=更新值 1,更新字段2=更新值 2,.where更新條如果不寫修改條件表示修改全部數(shù)據(jù)刪除:刪除語法:delete from表名稱where刪除條件 (s)如果不寫刪除條件表示刪除全部如果刪除的時候沒有匹配的條件,則返回0;事物處理:所有的事物處理操作都是針對每一個session 進(jìn)行的,中oracle 數(shù)據(jù)庫之中,把每一個連接到數(shù)據(jù)庫上的用戶都稱為一個session,每一個session 之間彼此獨

17、立,彼此之間不會有任何的通訊,而每一個session 獨享自己的事物控制,而事物控制之中主要使用兩個命令:1、 事物的回滾: rollback更新操作回到原點2、 事物的提交: commit ,真正的發(fā)出更新的操作所有的數(shù)據(jù)更新一定都會受到事物的控制數(shù)據(jù)偽列:rownum :表示為每一個顯示的記錄都會自動的隨著查詢生成行號,每次都是動態(tài)地重新生成;通過使用 rownum可以顯示分頁查詢。語法:select * from (select rownumr,ename,comm,job,sal from emp where rownum<=10)tempwhere temp .r>5;&

18、#183;分頁查詢概念:將查詢出來的數(shù)據(jù)保存到一個臨時數(shù)據(jù)表中,在查詢臨時表中的的數(shù)據(jù),即:使用 rownum查詢出來的有序的數(shù)字保存到一個數(shù)據(jù)表中作為一個列,再查詢這個臨時表中的指定的條數(shù)。· rowid: 表示的是每一行數(shù)據(jù)保存的物理地址的編號;每一條記錄的rowid都不會重復(fù),即:就算表中的所有列的數(shù)據(jù)內(nèi)容都重復(fù)了,rowid也是不會重復(fù)的,而且以一個rowid 為例,說明rowid 組成,例如: aaal+xaaeaaaaanaaa1、 數(shù)據(jù)對象號: aaal+x;2、 相對文件號: aae ;3、 數(shù)據(jù)塊號: aaaaan;4、 數(shù)據(jù)行號: aaa ;ddl數(shù)據(jù)定義語言:對

19、于數(shù)據(jù)庫而言實際上每一張表都表示的是一個數(shù)據(jù)庫對象,而在數(shù)據(jù)庫對象指的就是ddl定義的所有操作,例如:表、視圖、索引、序列、約束等等,都屬于對象的操作,所以表的建立就是對象的建立,而對象的操作主要分為以下三類語法:1、 創(chuàng)建對象: create對象名稱.2、 刪除對象: drop 對象名稱.3、 修改對象: alter對象名稱.常用的數(shù)據(jù)字段:每一張數(shù)據(jù)表實際上都是由假設(shè)干個字段組成,而每一個字段都會又其對應(yīng)的數(shù)據(jù)類型,而在 oracle 之中,常用的數(shù)據(jù)類型有如下幾種:no數(shù)據(jù)類型關(guān)鍵字描述1字符串varchar2(n)其中 n 表示的是字符串所能保存的最大長度,保存 200 個左右的內(nèi)容基

20、本2整數(shù)number(n)表示最多為n 位的小數(shù),有時候也可以使用代替int3小數(shù)number(n,m)其中 m 為小數(shù)位, n 為整數(shù)位, 有時候也可以使用float 代替4日期date存儲日期時間5大文本clob可以存儲海量文字4g,例如:電影、電視劇6大對象blob存放二進(jìn)制數(shù)據(jù),例如:電影、mp3 、圖片、文字一般在開發(fā)中使用最多的:varchar2() 、number 、da te、clob ,而對于blob字段一般使用較少,首先 blob 可以存放4g 的二進(jìn)制數(shù)據(jù),但是存放進(jìn)去之后,一是數(shù)據(jù)庫過于龐大,二是讀取不方便;數(shù)據(jù)庫創(chuàng)建 :語法:create table表名稱字段 1數(shù)據(jù)

21、類型(default默認(rèn)值 ,字段 2數(shù)據(jù)類型default默認(rèn)值 ,.字段 2數(shù)據(jù)類型default默認(rèn)值 注意:最后一個不能添加“,”);復(fù)制一張完整的表:create table復(fù)制表的名稱as 字查詢復(fù)制一張只包含20 部門的雇員信息的表:create table emp20 as select * from emp where deptno=20復(fù)制表結(jié)構(gòu):create table empnull as select * from emp where 1=2;即給定一個不成立的條件刪除表:drop table表名稱為表重命名:在 oracle 數(shù)據(jù)庫之中,所有的數(shù)據(jù)都是通過數(shù)據(jù)字典保

22、存的!并且在oracle 數(shù)據(jù)庫中提供了三種數(shù)據(jù)字典,最常用的是:dba_、user_,兩個數(shù)據(jù)字典。例如: select * from user_tables; 就是一個“ user_”的數(shù)據(jù)字典;在 oracle 數(shù)據(jù)庫之中所有的數(shù)據(jù)都是按文件保存的,等于所有的內(nèi)容都會在字典中注冊,那么修改表名稱也就等于修改了一條數(shù)據(jù)而已,修改表名稱語法:rename舊的表名稱to 新的表名稱; 截斷表:如果使用delete刪除表中的數(shù)據(jù)時會進(jìn)行事物的回滾,如果此時希望徹底釋放掉一張表所占用的全部資源表空間、 索引等就可以使用oracle 數(shù)據(jù)庫特有的截斷表的語法:truncate table表名稱;表的

23、刪除:表的刪除操作就是指數(shù)據(jù)庫對象的刪除,使用drop 語法:drop table表名稱;在 oracle 數(shù)據(jù)庫之中刪除一張表之后,并不會立即刪除表,而是將刪除的表全部放在了一個回收站中;查看回收站語法:show recyclebin;這個時候可以發(fā)現(xiàn)所有已經(jīng)刪除的表都在回收站之中保存,那么可以使用以下的語法恢復(fù)表:flashback table表名稱to beforedrop ;也可以直接刪除回收站中的一些數(shù)據(jù)表:purge table表名稱;清空回收站語法:purge recyclebin;如果希望徹底刪除數(shù)據(jù)表,即直接刪除數(shù)據(jù)不放入回收站中,則使用:drop table表名稱purge

24、 ;修改表的結(jié)構(gòu):如果一張建立好的數(shù)據(jù)表, 發(fā)現(xiàn)其初期的結(jié)構(gòu)已經(jīng)不能滿足后期的使用要求, 則可以進(jìn)行表的修改操作,而表的修改操作實際上就是數(shù)據(jù)庫對象的修改操作,使用 alter 指令完成:增加表的字段:alter table表名稱add( 列名稱數(shù)據(jù)類型default默認(rèn)值 , 列名稱數(shù)據(jù)類型 default默認(rèn)值 ,.);如果增加的數(shù)據(jù)列沒有設(shè)置默認(rèn)值,則所有已有的數(shù)據(jù)的列的內(nèi)容都是null ,而如果增加的列指定的default默認(rèn)值,則所有的已有列都是設(shè)置的默認(rèn)值。如果 修改表的結(jié)構(gòu)使用語法:alter table表名稱modify( 列名稱數(shù)據(jù)類型default默認(rèn)值 , 列名稱數(shù)據(jù)類型

25、 default默認(rèn)值 ,.);軟件項目開發(fā)的基本流程:1、 獲取需求;軟件銷售2、 需求分析;根據(jù)客戶的提示,作出需求分析3、 業(yè)務(wù)分析,數(shù)據(jù)庫設(shè)計及接口設(shè)計;數(shù)據(jù)庫表的設(shè)計4、 編碼實現(xiàn);業(yè)務(wù)流程5、 軟件測試;理論上應(yīng)該又專門的測試人員6、 軟件培訓(xùn)以及項目的維護(hù);約束:如果設(shè)置約束的名稱的話,需要將約束的名稱寫在創(chuàng)建表的結(jié)構(gòu)的最后一行,設(shè)置約束的名稱一般使用約束的類型 _字段名稱 作為約束名稱。并使用constraint修飾。約束的只要功能是保證表中的數(shù)據(jù)的合法性,只按照約束的分類,主要分為五類約束:1、 非空約束, 2、唯一約束, 3、主鍵約束,4、檢查約束, 5、外間約束;非空約束

26、 not null : nk當(dāng)數(shù)據(jù)表中的某個字段上的內(nèi)容不希望設(shè)置為null 的話,則使用 not null進(jìn)行指定。唯一約束 unique : uk唯一約束指的是每一個列上的數(shù)據(jù)是不允許重復(fù)的,例如 email 地址每一個用戶肯定不重復(fù),那么就使用唯一約束完成。語法:在創(chuàng)建表結(jié)構(gòu)的時候,在需要約束的字段后面添加“unique ”即可。如果在建立唯一約束的時候沒有定義約束名稱,那么如果插入相同的信息則錯誤提示不夠完整,而是使用系統(tǒng)自動分配的代號提示,所以在建立唯一約束的時候最好定義約束的名稱,定義唯一約束名稱格式:“約束類型 _字段”,例如“ uk_email ”;指定約束名稱使用constr

27、aint完成。例如: constraint uk_email unique(字段名稱 );主鍵約束 primary key: pk主鍵約束= 非空約束+唯一約束;主鍵一般作為數(shù)據(jù)的唯一的一個標(biāo)記出現(xiàn),主鍵不能插入null 值,并且主鍵不能重復(fù);設(shè)置復(fù)合主鍵的時候在設(shè)置的字段名稱后添加需要設(shè)置的多個的字段名稱,并使用“,” 號分隔開;檢查約束 check : ckconstraint約束名稱check( 約束條件 );主外鍵約束: fk主外鍵約束是對與兩張表中進(jìn)行的,段的取值范圍由父表決定。這兩張表是存在父子關(guān)系的,即: 子表中的某個字例如: constraint fk_mid foreing

28、key(mid)references member(mid);1、如果希望刪除主表中數(shù)據(jù)刪除之后,子表中對應(yīng)的數(shù)據(jù)也可以刪除的話,則可以在建立約束的時候指定一個級聯(lián)刪除的功能,即:在創(chuàng)建主外鍵關(guān)系的時候在后面添加:ondelete cascade指定級聯(lián)刪除語法:即可;constraint主外鍵名foreignkey( 本表中的字段) references外鍵表名 (外鍵表字段 ) on delete cascade為表中的數(shù)據(jù)增加一些過濾條件,constraint主外鍵名foreignkey( 本表中的字段) references外鍵表名 (外鍵表字段 )外鍵表即是父表使用這種方式刪除主表的

29、數(shù)據(jù)的時候,對應(yīng)的子表中的數(shù)據(jù)會一起刪除掉;2、當(dāng)主表中的數(shù)據(jù)刪除之后,對應(yīng)的子表中的數(shù)據(jù)相關(guān)項也希望將其設(shè)置為null ,而不是刪除,在創(chuàng)建主外鍵關(guān)系的時候在后面添加:on delete set null即可;語法:constraint主外鍵名foreignkey( 本表中的字段) references外鍵表名 (外鍵表字段 ) on delete set null3、在 oracle 數(shù)據(jù)庫中專門提供了一個強(qiáng)制性刪除表的操作,即:不需要關(guān)心約束,在刪除表的時候?qū)懮弦痪洌?“ cascade constraint”。drop table member cascade constraint p

30、urge;使用此種方式刪除的時候,子表不會被刪除。修改約束:約束本身也屬于數(shù)據(jù)庫對象,那么也肯定可以進(jìn)行修改操作,而且只要修改都使用alter 指令,約束的修改只要指以下兩種操作:· 為表增加約束:alter table表名稱add constraint約束名稱約束類型 (字段 );· 刪除表的約束alter table表名稱drop constraint約束名稱 ;如果要維護(hù)約束,肯定需要一個正確的名字才可以,可是在這五種約束之中,非空約束是一個特殊的約束,無法操作。檢查約束:在 oracle 數(shù)據(jù)庫之中所有的對象都會在數(shù)據(jù)字典之中保存,而約束也是一樣的,所以如果要想知道

31、有哪些約束,可以直接查詢“user_constraints”數(shù)據(jù)字典:select * from user_constraints;使用此種方式查詢出來的約束并不知道在哪個字段上的約束,所以此時可以查看另一張數(shù)據(jù)字典表“ user_cons_columns”查詢集合操作:在數(shù)學(xué)的操作之中存在交、差、并、補的概念,而在數(shù)據(jù)庫的查詢中也存在此概念,有如下連接符號:1、 union : 連接兩個查詢,相同的部分不顯示;2 、 union all: 連接兩個查詢,相同的部分顯示;3、 intersect: 返回兩個查詢中的相同部分;4、 minus : 返回兩個查詢中的不同部分;1、 數(shù)據(jù)庫的創(chuàng)建:&

32、#183; 主要的數(shù)據(jù)類型:varchar2、 number、date 、clob ;· 創(chuàng)建表的語法:create table表名稱 ();· 刪除表的語法:drop table表名稱;· 清空回收站:purge recyclebin;2、 約束:約束是保證表中的數(shù)據(jù)的完整性的一種手段,約束一定要在表建立的同時設(shè)置號, 而且在表真正使用之前一定要有約束;· 約束的分類:非空約束(notnull) 、唯一 (unique) 、主鍵 (primarykey) 、檢查約束 check 、外鍵約束 (foreingkey) ;· 設(shè)置外鍵的時候有以下

33、的注意點:|- 默認(rèn)情況下應(yīng)該先刪除子表之后再刪除父表;|- 級聯(lián)刪除: on delete cascade;|- 級聯(lián)設(shè)置null : on delete set null;3、 序列: sequence ,可以形成自動增長列的操作;· 序列中有兩個屬性:nextval 、currval ;· 序列的操作一定要手工進(jìn)行控制;視圖:create or replace viewas 子查詢 ;在創(chuàng)建視圖的時候存在兩個選項。· 選項一: on with check option在創(chuàng)建視圖時使用此選項的話,就不能去更新試圖的創(chuàng)建條件。· 選項二: with r

34、ead only雖然使用with check option可以保證視圖的創(chuàng)建條件不被更新,視圖名稱但其他字段卻允許更新。視圖本身不是具體的真實數(shù)據(jù),而是一些查詢語句,所以在創(chuàng)建視圖的時候一般將視圖設(shè)置為只讀視圖。在一個項目中,視圖的數(shù)量有可能超過表的數(shù)量,因為查詢語句多。同義詞:同義詞在 oracle 數(shù)據(jù)庫之中成為synonym,同義詞創(chuàng)建語法:create public synonym同義詞的名稱for 用戶名表名稱 ;視圖相當(dāng)于sql 語句,創(chuàng)建視圖的語句如下:在創(chuàng)建同義詞的時候如果沒有使用public ,則表示創(chuàng)建的不是公共同義詞。索引:索引的主要功能就是用于提升數(shù)據(jù)庫的操作性能。在

35、oracle 數(shù)據(jù)庫之中創(chuàng)建索引有以下兩種方式:· 主鍵約束:如果一張表中的列上存在了主鍵約束的話自動創(chuàng)建索引;· 手工創(chuàng)建:在某一個操作列上指定一個索引;create index索引名稱on 表名稱 (列名稱 );以上的索引就是oracle 數(shù)據(jù)庫中的b 樹索引 :索引就是創(chuàng)建一顆樹的數(shù)據(jù)結(jié)構(gòu)保存數(shù)據(jù),但是如果需要在這顆樹上面頻繁修改的話,代碼的性能就會有所降低,所以性能的提升永遠(yuǎn)都是相對的。在 oracle 數(shù)據(jù)庫中包含十幾中索引,最簡單的索引是b 樹索引,還有位圖索引、反向索引、函數(shù)索引等等。用戶管理:sql語句分為三類:dml 、ddl 、dcl ;dcl主要表示的

36、是數(shù)據(jù)庫的控制語句,控制語句就是操作權(quán)限,而在dcl 之中,主要又兩個語法:grant 、revoke ;· grant :授權(quán);· revoke:回收; 創(chuàng)建用戶:一、創(chuàng)建用戶create user用戶名identified by密碼;此時雖然創(chuàng)建了用戶,但是沒有設(shè)置session 對象,則無法登陸到oracle 數(shù)據(jù)庫之中二、設(shè)置session 權(quán)限grant create session to創(chuàng)建好的用戶名;對于使用以上兩步驟創(chuàng)建的用戶雖然可以登陸但是不能創(chuàng)建表關(guān)于數(shù)據(jù)庫表的保存問題:在 oracle 數(shù)據(jù)庫之中所有的數(shù)據(jù)都是和保存到硬盤上面的,但是不是每一張數(shù)據(jù)表都

37、保存在硬盤上,而是表空間保存在硬盤上面,而數(shù)據(jù)表保存在表空間中。如果把硬盤 表示成一個圖書館的話,那么表空間就表示每一個書柜,每一張表就表示柜子上的一本書。三、給新建用戶授權(quán)創(chuàng)建表的權(quán)限:grant create table to用戶名;此時只是將數(shù)據(jù)庫表的創(chuàng)建權(quán)限給了新建用戶,但是并沒有把表空間的操作權(quán)限給新建用戶,所以用戶任然無法創(chuàng)建表,因為沒有地方可以保存表。·創(chuàng)建用戶的簡化操作:在 oracle 數(shù)據(jù)庫中為用戶提供了許多的角色,每一個會包含多個權(quán)限,而角色主要又兩個: connect 、resource ;· 修改用戶密碼:alter user用戶名identified by新密碼;· 讓用戶密碼失效:alter user· 鎖定用戶:用戶名password expire ;alter user· 解鎖用戶:用戶名account lock;alter user用戶名account unlock;如果不同的用戶需要訪問其他用戶的表則直接使用完整的“用戶名.表名稱”即可。權(quán)限有 4 種, select 、 insert 、 del

溫馨提示

  • 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

提交評論