數(shù)據(jù)庫(kù)高級(jí)應(yīng)用_第1頁(yè)
數(shù)據(jù)庫(kù)高級(jí)應(yīng)用_第2頁(yè)
數(shù)據(jù)庫(kù)高級(jí)應(yīng)用_第3頁(yè)
數(shù)據(jù)庫(kù)高級(jí)應(yīng)用_第4頁(yè)
數(shù)據(jù)庫(kù)高級(jí)應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)高級(jí)應(yīng)用第一頁(yè),共十頁(yè),編輯于2023年,星期三視圖·

使用CREATEVIEW或ALTERVIEW創(chuàng)建或更改視圖。·使用DROPVIEW銷(xiāo)毀視圖。ALTER[ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]

VIEWview_name[(column_list)]

ASselect_statement

[WITH[CASCADED|LOCAL]CHECKOPTION]視圖:是一個(gè)虛表。它實(shí)際上就相當(dāng)于相關(guān)的查詢(xún)語(yǔ)句。說(shuō)之為虛表,因?yàn)樵谖锢砩希晥D不像表一樣占用物理空間。視圖的作用,就是為了方便查詢(xún)。同時(shí),它也增加了軟件的安全性。視圖定義服從下述限制:·

SELECT語(yǔ)句不能包含F(xiàn)ROM子句中的子查詢(xún)?!?/p>

SELECT語(yǔ)句不能引用系統(tǒng)或用戶(hù)變量。·

SELECT語(yǔ)句不能引用預(yù)處理語(yǔ)句參數(shù)?!?/p>

在存儲(chǔ)子程序內(nèi),定義不能引用子程序參數(shù)或局部變量。·

在定義中引用的表或視圖必須存在。但是,創(chuàng)建了視圖后,能夠舍棄定義引用的表或視圖。·

在定義中不能引用TEMPORARY表,不能創(chuàng)建TEMPORARY視圖。·

在視圖定義中命名的表必須已存在?!?/p>

不能將觸發(fā)程序與視圖關(guān)聯(lián)在一起。第二頁(yè),共十頁(yè),編輯于2023年,星期三視圖示例:1、創(chuàng)建一個(gè)視圖:createviewnews_viewasselecttitleas新聞標(biāo)題fromnewswhereid>2;2、視圖的使用:(視圖當(dāng)作表來(lái)使用,主要用來(lái)查詢(xún))select*fromnews_view上面查詢(xún)等效于selecttitleas新聞標(biāo)題fromnewswhereid>2;第三頁(yè),共十頁(yè),編輯于2023年,星期三過(guò)程什么(存儲(chǔ))過(guò)程?類(lèi)似與我們編程時(shí)的函數(shù),將常用的或很復(fù)雜的工作,預(yù)先用SQL語(yǔ)句寫(xiě)好并用一個(gè)指定的名稱(chēng)存儲(chǔ)起來(lái),那么以后要叫數(shù)據(jù)庫(kù)提供與已定義好的存儲(chǔ)過(guò)程的功能相同的服務(wù)時(shí),只需調(diào)用execute,即可自動(dòng)完成命令,跟函數(shù)調(diào)用差不多!

存儲(chǔ)過(guò)程的優(yōu)點(diǎn):

1.存儲(chǔ)過(guò)程只在創(chuàng)造時(shí)進(jìn)行編譯,以后每次執(zhí)行存儲(chǔ)過(guò)程都不需再重新編譯,而一般SQL語(yǔ)句每執(zhí)行一次就編譯一次,所以使用存儲(chǔ)過(guò)程可提高數(shù)據(jù)庫(kù)執(zhí)行速度。

2.當(dāng)對(duì)數(shù)據(jù)庫(kù)進(jìn)行復(fù)雜操作時(shí)(如對(duì)多個(gè)表進(jìn)行Update,Insert,Query,Delete時(shí)),可將此復(fù)雜操作用存儲(chǔ)過(guò)程封裝起來(lái)與數(shù)據(jù)庫(kù)提供的事務(wù)處理結(jié)合一起使用。

3.存儲(chǔ)過(guò)程可以重復(fù)使用,可減少數(shù)據(jù)庫(kù)開(kāi)發(fā)人員的工作量

4.安全性高,可設(shè)定只有某此用戶(hù)才具有對(duì)指定存儲(chǔ)過(guò)程的使用權(quán)創(chuàng)建:

CREATEPROCEDURE過(guò)程名([過(guò)程參數(shù)[,...]])

[特性...]過(guò)程體過(guò)程參數(shù):[IN|OUT|INOUT]參數(shù)名參數(shù)類(lèi)型.DROPPROCEDUREsp_name;刪除存儲(chǔ)過(guò)程。使用:showprocedurestatus查看已創(chuàng)建的過(guò)程信息。第四頁(yè),共十頁(yè),編輯于2023年,星期三過(guò)程CREATEPROCEDURE過(guò)程名([過(guò)程參數(shù)[,...]])

[特性...]過(guò)程體過(guò)程參數(shù):

[IN|OUT|INOUT]參數(shù)名參數(shù)類(lèi)型函數(shù)參數(shù):

參數(shù)名參數(shù)類(lèi)型返回類(lèi)型:

有效的MySQL數(shù)據(jù)類(lèi)型即可

特性:

LANGUAGESQL

|[NOT]DETERMINISTIC

|{CONTAINSSQL|NOSQL|READSSQLDATA|MODIFIESSQLDATA}

|SQLSECURITY{DEFINER|INVOKER}

|COMMENT'string‘

過(guò)程體:格式如下:

BEGIN

有效的SQL語(yǔ)句

END第五頁(yè),共十頁(yè),編輯于2023年,星期三過(guò)程創(chuàng)建方法:creaateprocedureproc()beginupdatenewstime=now();select*fromnews;end;調(diào)用方法:callproc();這里將得到一個(gè)結(jié)果集。第六頁(yè),共十頁(yè),編輯于2023年,星期三事務(wù)事務(wù)的概念?事務(wù)是不可分隔的一個(gè)工作單元。原子性(ATOMICITY):

一個(gè)事務(wù)要被完全的無(wú)二義性的做完或撤消。在任何操作出現(xiàn)一個(gè)錯(cuò)誤的情況下,構(gòu)成事務(wù)的所有操作的效果必須被撤消,數(shù)據(jù)應(yīng)被回滾到以前的狀態(tài)。

一致性(CONSISTENCY):

一個(gè)事務(wù)應(yīng)該保護(hù)所有定義在數(shù)據(jù)上的不變的屬性(例如完整性約束)。在完成了一個(gè)成功的事務(wù)時(shí),數(shù)據(jù)應(yīng)處于一致的狀態(tài)。換句話(huà)說(shuō),一個(gè)事務(wù)應(yīng)該把系統(tǒng)從一個(gè)一致-狀態(tài)轉(zhuǎn)換到另一個(gè)一致?tīng)顟B(tài)。舉個(gè)例子,在關(guān)系數(shù)據(jù)庫(kù)的情況下,

一個(gè)一致的事務(wù)將保護(hù)定義在數(shù)據(jù)上的所有完整性約束。

隔離性(ISOLATION):

在同一個(gè)環(huán)境中可能有多個(gè)事務(wù)并發(fā)執(zhí)行,而每個(gè)事務(wù)都應(yīng)表現(xiàn)為獨(dú)立執(zhí)行。串行的執(zhí)行一系列事務(wù)的效果應(yīng)該同于并發(fā)的執(zhí)行它們。這要求兩件事:

在一個(gè)事務(wù)執(zhí)行過(guò)程中,數(shù)據(jù)的中間的(可能不一致)狀態(tài)不應(yīng)該被暴露給所有的其他事務(wù)。

兩個(gè)并發(fā)的事務(wù)應(yīng)該不能操作同一項(xiàng)數(shù)據(jù)。數(shù)據(jù)庫(kù)管理系統(tǒng)通常使用鎖來(lái)實(shí)現(xiàn)這個(gè)特征。

持久性(DURABILITY):

一個(gè)被完成的事務(wù)的效果應(yīng)該是持久的。第七頁(yè),共十頁(yè),編輯于2023年,星期三事務(wù)在Mysql中,默認(rèn)地事務(wù)是自動(dòng)提交的。SETAUTOCOMMIT=1(默認(rèn))我們可以通過(guò)更改:SETAUTOCOMMIT=0,表示需手動(dòng)提交事務(wù)。COMMIT提交來(lái)存儲(chǔ)你的更改到磁盤(pán)上ROLLBACK回滾,取消方才的操作。第八頁(yè),共十頁(yè),編輯于2023年,星期三鎖LOCKTABLES可以鎖定用于當(dāng)前線(xiàn)程的表。如果表被其它線(xiàn)程鎖定,則造成堵塞,直到可以獲取所有鎖定為止。UNLOCKTABLES可以釋放被當(dāng)前線(xiàn)程保持的任何鎖定。當(dāng)線(xiàn)程發(fā)布另一個(gè)LOCKTABLES時(shí),或當(dāng)與服務(wù)器的連接被關(guān)閉時(shí),所有由當(dāng)前線(xiàn)程鎖定的表被隱含地解鎖。表鎖定只用于防止其它客戶(hù)端進(jìn)行不正當(dāng)?shù)刈x取和寫(xiě)入。保持鎖定(即使是讀取鎖定)的客戶(hù)端可以進(jìn)行表層級(jí)的操作,比如DROPTABLE。如:LOCKTABLEnewsREAD;表示對(duì)news表進(jìn)行只讀鎖定,此時(shí)其它線(xiàn)程不能刪除、修改、插入。直到解鎖為止。UNLOCKTABLE;解鎖。第九頁(yè),共十頁(yè),編輯于2023年,星期三Php調(diào)用過(guò)程$conn=mysql_connect("localhost:3300","

溫馨提示

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

評(píng)論

0/150

提交評(píng)論