国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP面試之MySQL數(shù)據(jù)庫(kù)部分基礎(chǔ)知識(shí)

dunizb / 2613人閱讀

摘要:生成訂單并且保存到數(shù)據(jù)庫(kù)中。觸發(fā)器是在響應(yīng)數(shù)據(jù)定義語(yǔ)言事件時(shí)執(zhí)行的存儲(chǔ)過(guò)程。利用觸發(fā)器記錄所進(jìn)行的修改以及相關(guān)信息,跟蹤用戶對(duì)數(shù)據(jù)庫(kù)的操作,實(shí)現(xiàn)審計(jì)。預(yù)告本周三將更新面試數(shù)據(jù)庫(kù)的索引,敬請(qǐng)期待。

你好,是我琉憶,PHP程序員面試筆試系列圖書的作者。

本周(2019.3.4至3.8)的一三五更新的文章如下:

周一:PHP面試MySQL數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí)
周三:PHP面試MySQL數(shù)據(jù)庫(kù)的索引
周五:PHP面試MySQL數(shù)據(jù)庫(kù)的面試真題
自己整理了一篇“一二三四范式有何區(qū)別?”的文章,關(guān)注公眾號(hào):“琉憶編程庫(kù)”,回復(fù):“范式”,我發(fā)給你。

以下內(nèi)容來(lái)自《PHP程序員面試筆試寶典》如需轉(zhuǎn)載請(qǐng)注明出處。


一、幾款開源數(shù)據(jù)庫(kù)的對(duì)比和介紹


二、SQL語(yǔ)言的功能有哪些?

SQL是結(jié)構(gòu)化查詢語(yǔ)言(Structured Query Language)的縮寫,其功能包括數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制四個(gè)部分。
數(shù)據(jù)查詢是數(shù)據(jù)庫(kù)中最常見(jiàn)的操作,通過(guò)select語(yǔ)句可以得到所需的信息。SQL語(yǔ)言的數(shù)據(jù)操縱語(yǔ)句(Data Manipulation Language,DML)主要包括插入數(shù)據(jù)、修改數(shù)據(jù)以及刪除數(shù)據(jù)三種語(yǔ)句。SQL語(yǔ)言使用數(shù)據(jù)定義語(yǔ)言(Data Definition Language,DDL)實(shí)現(xiàn)數(shù)據(jù)定義功能,可對(duì)數(shù)據(jù)庫(kù)用戶、基本表、視圖、索引進(jìn)行定義與撤銷。數(shù)據(jù)控制語(yǔ)句(Data Control Language,DCL)用于對(duì)數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一的控制管理,保證數(shù)據(jù)在多用戶共享的情況下能夠安全。
基本的SQL語(yǔ)句有select、insert、update、delete、create、drop、grant、revoke等。其具體使用方式見(jiàn)下表。


自己整理了一篇“一二三四范式有何區(qū)別?”的文章,關(guān)注公眾號(hào):“琉憶編程庫(kù)”,回復(fù):“范式”,我發(fā)給你。

三、什么是事務(wù)?

事務(wù)是數(shù)據(jù)庫(kù)中一個(gè)多帶帶的執(zhí)行單元(Unit),它通常由高級(jí)數(shù)據(jù)庫(kù)操作語(yǔ)言(例如SQL)或編程語(yǔ)言(例如C++、Java等)書寫的用戶程序的執(zhí)行所引起。當(dāng)在數(shù)據(jù)庫(kù)中更改數(shù)據(jù)成功時(shí),在事務(wù)中更改的數(shù)據(jù)便會(huì)提交,不再改變;否則,事務(wù)就取消或者回滾,更改無(wú)效。
例如網(wǎng)上購(gòu)物,其交易過(guò)程至少包括以下幾個(gè)步驟的操作:
1)更新客戶所購(gòu)商品的庫(kù)存信息。
2)保存客戶付款信息。
3)生成訂單并且保存到數(shù)據(jù)庫(kù)中。
4)更新用戶相關(guān)信息,如購(gòu)物數(shù)量等。
在正常的情況下,這些操作都將順利進(jìn)行,最終交易成功,與交易相關(guān)的所有數(shù)據(jù)庫(kù)信息也成功地更新。但是,如果遇到突然掉電或是其他意外情況,導(dǎo)致這一系列過(guò)程中任何一個(gè)環(huán)節(jié)出了差錯(cuò),例如在更新商品庫(kù)存信息時(shí)發(fā)生異常、顧客銀行賬戶余額不足等,都將導(dǎo)致整個(gè)交易過(guò)程失敗。而一旦交易失敗,數(shù)據(jù)庫(kù)中所有信息都必須保持交易前的狀態(tài)不變,例如最后一步更新用戶信息時(shí)失敗而導(dǎo)致交易失敗,那么必須保證這筆失敗的交易不影響數(shù)據(jù)庫(kù)的狀態(tài),即原有的庫(kù)存信息沒(méi)有被更新、用戶也沒(méi)有付款、訂單也沒(méi)有生成。否則,數(shù)據(jù)庫(kù)的信息將會(huì)不一致,或者出現(xiàn)更為嚴(yán)重的不可預(yù)測(cè)的后果,數(shù)據(jù)庫(kù)事務(wù)正是用來(lái)保證這種情況下交易的平穩(wěn)性和可預(yù)測(cè)性的技術(shù)。
事務(wù)必須滿足四個(gè)屬性,即原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability),即ACID四種屬性。
(1)原子性
事務(wù)是一個(gè)不可分割的整體,為了保證事務(wù)的總體目標(biāo),事務(wù)必須具有原子性,即當(dāng)數(shù)據(jù)修改時(shí),要么全執(zhí)行,要么全都不執(zhí)行,即不允許事務(wù)部分地完成,避免了只執(zhí)行這些操作的一部分而帶來(lái)的錯(cuò)誤。原子性要求事務(wù)必須被完整執(zhí)行。
(2)一致性
一個(gè)事務(wù)執(zhí)行之前和執(zhí)行之后數(shù)據(jù)庫(kù)數(shù)據(jù)必須保持一致性狀態(tài)。數(shù)據(jù)庫(kù)的一致性狀態(tài)應(yīng)該滿足模式鎖指定的約束,那么在完整執(zhí)行該事務(wù)后數(shù)據(jù)庫(kù)仍然處于一致性狀態(tài)。為了維護(hù)所有數(shù)據(jù)的完整性,在關(guān)系型數(shù)據(jù)庫(kù)中,所有的規(guī)則必須應(yīng)用到事務(wù)的修改上。數(shù)據(jù)庫(kù)的一致性狀態(tài)由用戶來(lái)負(fù)責(zé),由并發(fā)控制機(jī)制實(shí)現(xiàn),例如銀行轉(zhuǎn)賬,轉(zhuǎn)賬前后兩個(gè)賬戶金額之和應(yīng)保持不變,由于并發(fā)操作帶來(lái)的數(shù)據(jù)不一致性包括丟失數(shù)據(jù)修改、讀“臟”數(shù)據(jù)、不可重復(fù)讀和產(chǎn)生幽靈數(shù)據(jù)。
(3)隔離性
隔離性也被稱為獨(dú)立性,當(dāng)兩個(gè)或多個(gè)事務(wù)并發(fā)執(zhí)行時(shí),為了保證數(shù)據(jù)的安全性,將一個(gè)事物內(nèi)部的操作與事務(wù)的操作隔離起來(lái),不被其他正在進(jìn)行的事務(wù)看到。例如對(duì)任何一對(duì)事務(wù)T1、T2,對(duì)T1而言,T2要么在T1開始之前已經(jīng)結(jié)束,要么在T1完成之后再開始執(zhí)行。數(shù)據(jù)庫(kù)有四種類型的事務(wù)隔離級(jí)別:不提交的讀、提交的讀、可重復(fù)的讀和串行化。因?yàn)楦綦x性使得每個(gè)事務(wù)的更新在它被提交之前,對(duì)其他事務(wù)都是不可見(jiàn)的,所以,實(shí)施隔離性是解決臨時(shí)更新與消除級(jí)聯(lián)回滾問(wèn)題的一種方式。
(4)持久性
持久性也被稱為永久性,事務(wù)完成以后,數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)保證它對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)的修改是永久性的,當(dāng)系統(tǒng)或介質(zhì)發(fā)生故障時(shí),該修改也永久保持。持久性一般通過(guò)數(shù)據(jù)庫(kù)備份與恢復(fù)來(lái)保證。
嚴(yán)格來(lái)說(shuō),數(shù)據(jù)庫(kù)事務(wù)屬性(ACID)都是由數(shù)據(jù)庫(kù)管理系統(tǒng)來(lái)進(jìn)行保證的,在整個(gè)應(yīng)用程序運(yùn)行過(guò)程中應(yīng)用無(wú)須去考慮數(shù)據(jù)庫(kù)的ACID實(shí)現(xiàn)。
一般情況下,通過(guò)執(zhí)行COMMIT或ROLLBACK語(yǔ)句來(lái)終止事務(wù),當(dāng)執(zhí)行COMMIT語(yǔ)句時(shí),自從事務(wù)啟動(dòng)以來(lái)對(duì)數(shù)據(jù)庫(kù)所做的一切更改就成為永久性的了,即被寫入磁盤,而當(dāng)執(zhí)行ROLLBACK語(yǔ)句時(shí),自動(dòng)事務(wù)啟動(dòng)以來(lái)對(duì)數(shù)據(jù)庫(kù)所做的一切更改都會(huì)被撤銷,并且數(shù)據(jù)庫(kù)中內(nèi)容返回到事務(wù)開始之前所處的狀態(tài)。無(wú)論什么情況,在事務(wù)完成時(shí),都能保證回到一致狀態(tài)。


四、什么是觸發(fā)器?

觸發(fā)器是一種特殊類型的存儲(chǔ)過(guò)程,它由事件觸發(fā),而不是程序調(diào)用或手工啟動(dòng),當(dāng)數(shù)據(jù)庫(kù)有特殊的操作時(shí),對(duì)這些操作由數(shù)據(jù)庫(kù)中的事件來(lái)觸發(fā),自動(dòng)完成這些SQL語(yǔ)句。使用觸發(fā)器可以用來(lái)保證數(shù)據(jù)的有效性和完整性,完成比約束更復(fù)雜的數(shù)據(jù)約束。
具體而言,觸發(fā)器與存儲(chǔ)過(guò)程的區(qū)別見(jiàn)下表。

根據(jù)SQL語(yǔ)句的不同,觸發(fā)器可分為兩類:DML觸發(fā)器和DLL觸發(fā)器。
DML觸發(fā)器是當(dāng)數(shù)據(jù)庫(kù)服務(wù)器發(fā)生數(shù)據(jù)操作語(yǔ)言事件時(shí)執(zhí)行的存儲(chǔ)過(guò)程,有After和Instead Of這兩種觸發(fā)器。After觸發(fā)器被激活觸發(fā)是在記錄改變之后進(jìn)行的一種觸發(fā)器。Instead Of觸發(fā)器是在記錄變更之前,去執(zhí)行觸發(fā)器本身所定義的操作,而不是執(zhí)行原來(lái)SQL語(yǔ)句里的操作。DLL觸發(fā)器是在響應(yīng)數(shù)據(jù)定義語(yǔ)言事件時(shí)執(zhí)行的存儲(chǔ)過(guò)程。
具體而言,觸發(fā)器的主要作用表現(xiàn)為如下幾個(gè)方面:
1)增加安全性。
2)利用觸發(fā)器記錄所進(jìn)行的修改以及相關(guān)信息,跟蹤用戶對(duì)數(shù)據(jù)庫(kù)的操作,實(shí)現(xiàn)審計(jì)。
3)維護(hù)那些通過(guò)創(chuàng)建表時(shí)的聲明約束不可能實(shí)現(xiàn)的復(fù)雜的完整性約束以及對(duì)數(shù)據(jù)庫(kù)中特定事件進(jìn)行監(jiān)控與響應(yīng)。
4)實(shí)現(xiàn)復(fù)雜的非標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)相關(guān)完整性規(guī)則、同步實(shí)時(shí)地復(fù)制表中的數(shù)據(jù)。
5)觸發(fā)器是自動(dòng)的,它們?cè)趯?duì)表的數(shù)據(jù)做了任何修改之后就會(huì)被激活,例如可以自動(dòng)計(jì)算數(shù)據(jù)值,如果數(shù)據(jù)的值達(dá)到了一定的要求,則進(jìn)行特定的處理。以某企業(yè)財(cái)務(wù)管理為例,如果企業(yè)的資金鏈出現(xiàn)短缺,并且達(dá)到某種程度,則發(fā)送警告信息。
下面是一個(gè)觸發(fā)器的例子,該觸發(fā)器的功能是在每周末進(jìn)行數(shù)據(jù)表更新,如果當(dāng)前用戶沒(méi)有訪問(wèn)WEEKEND_UPDATE_OK表的權(quán)限,那么需要重新賦予權(quán)限。

CREATE OR REPLACE TRIGGER update_on_weekends_check
BEFORE UPDATE OF sal ON EMP
FOR EACH ROW 
DECLARE
my_count number(4);
BEGIN
SELECT COUNT(u_name) 
FROM WEEKEND_UPDATE_OK INTO my_count 
WHERE u_name = user_name; 
IF my_count=0 THEN 
RAISE_APPLICATION_ERROR(20508, "Update not allowed"); 
END IF; 
END;



五、觸發(fā)器分為事前觸發(fā)和事后觸發(fā),二者有什么區(qū)別?語(yǔ)句級(jí)觸發(fā)和行級(jí)觸發(fā)有什么區(qū)別?

事前觸發(fā)發(fā)生在事件發(fā)生之前驗(yàn)證一些條件或進(jìn)行一些準(zhǔn)備工作;事后觸發(fā)發(fā)生在事件發(fā)生之后,做收尾工作,保證事務(wù)的完整性。而事前觸發(fā)可以獲得之前和新的字段值。語(yǔ)句級(jí)觸發(fā)器可以在語(yǔ)句執(zhí)行之前或之后執(zhí)行,而行級(jí)觸發(fā)在觸發(fā)器所影響的每一行觸發(fā)一次。


預(yù)告:本周三(3.6)將更新PHP面試MySQL數(shù)據(jù)庫(kù)的索引,敬請(qǐng)期待。

以上內(nèi)容摘自《PHP程序員面試筆試寶典》書籍,目前本書沒(méi)有電子版,可到各大電商平臺(tái)購(gòu)買紙質(zhì)版。

更多PHP相關(guān)的面試知識(shí)、考題可以關(guān)注公眾號(hào)獲取:琉憶編程庫(kù)

對(duì)本文有什么問(wèn)題或建議都可以進(jìn)行留言,我將不斷完善追求極致,感謝你們的支持。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/30933.html

相關(guān)文章

  • PHP面試總結(jié)

    摘要:而在面試過(guò)程中,也是經(jīng)常會(huì)遇到的,所以,無(wú)論是面試準(zhǔn)備還是日常開發(fā),我們都應(yīng)該關(guān)注這方面的東西。二分法的基本做法是確定要查找的區(qū)間。區(qū)間內(nèi)選取二分點(diǎn)。根據(jù)二分點(diǎn)的值,綜合左右區(qū)間情況以及求解的目的,舍去一半無(wú)用的區(qū)間。 showImg(https://images.pexels.com/photos/935977/pexels-photo-935977.jpeg); 前言 面試是你進(jìn)入...

    alin 評(píng)論0 收藏0
  • 個(gè)人建議PHP面試的準(zhǔn)備

    摘要:個(gè)人也建議不要滿足于自己當(dāng)下所知道的,多去拓展自己,多去學(xué)新的東西。作為一個(gè)面試者來(lái)說(shuō),知識(shí)點(diǎn)的記憶準(zhǔn)備為的是更好的應(yīng)對(duì)面試中技術(shù)面中問(wèn)到的各種問(wèn)題。 你好,是我琉憶——PHP程序員面試筆試系列圖書的作者。 隨著越來(lái)越多的人開始邁入PHP開發(fā)工程師的隊(duì)列,不管是一個(gè)PHP新手還是一個(gè)有一兩年開發(fā)經(jīng)驗(yàn)的PHPer都不得不去面對(duì)找工作前面試這件事。 我現(xiàn)在以個(gè)人對(duì)面試的經(jīng)歷和見(jiàn)解來(lái)全面的對(duì)...

    macg0406 評(píng)論0 收藏0
  • 如何"有計(jì)劃,高效率,優(yōu)簡(jiǎn)歷"應(yīng)對(duì)面試

    摘要:雖然有了十全的計(jì)劃,但如何高效率去記住上面那么多東西是一個(gè)大問(wèn)題,看看我是怎么做的。 前言 前一篇文章講述了我在三月份毫無(wú)準(zhǔn)備就去面試的后果,一開始心態(tài)真的爆炸,但是又不服氣,一想到每次回來(lái)后家人朋友問(wèn)我面試結(jié)果的期待臉,越覺(jué)得必須付出的行動(dòng)來(lái)證明自己了。 面經(jīng)傳送門:一個(gè)1年工作經(jīng)驗(yàn)的PHP程序員是如何被面試官虐的? 下面是我花費(fèi)兩個(gè)星期做的準(zhǔn)備,主要分三部分: 有計(jì)劃——計(jì)劃好...

    gyl_coder 評(píng)論0 收藏0
  • 一個(gè) 16年畢業(yè)生所經(jīng)歷的 PHP 面試

    摘要:正確做法是給加索引,還有聯(lián)合索引,并不能避免全表掃描。 前言:有收獲的話請(qǐng)加顆小星星,沒(méi)有收獲的話可以 反對(duì) 沒(méi)有幫助 舉報(bào)三連 有心的同學(xué)應(yīng)該會(huì)看到我這個(gè)noteBook下面的其它知識(shí),希望對(duì)你們有些許幫助。 本文地址 時(shí)間點(diǎn):2017-11 一個(gè)16年畢業(yè)生所經(jīng)歷的php面試 一、什么是面試 二、面試準(zhǔn)備 1. 問(wèn):什么時(shí)候開始準(zhǔn)備? 2. 問(wèn):怎么準(zhǔn)備? 三、面試...

    dabai 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<