這篇文章為大家總結PHP面試題「資料庫「相關知識 。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。
常見的關聯式資料庫管理系統中擁有?
答案:Oracle、SQL Server、MySQL、Sybase、DB2、Access等。
SQL語言包含哪幾部分?每部分都有哪些操作關鍵字?
答:SQL語言包含資料定義(DDL)、資料操縱(DML),資料控制(DCL)和資料查詢(DQL)四個部分。
資料定義:Create Table,Alter Table,Drop Table, Craete/Drop Index等
資料操縱:Select ,insert,update,delete,
資料控制:grant,revoke
資料查詢:select
完整性限制包含哪些?
資料完整性(Data Integrity)是指資料的精確(Accuracy) 和 可靠性(Reliability)。
包含:
(1)實體完整性:規定表的每一行在表中是惟一的實體。
(2)域完整性:是指表中的欄位必須滿足某種特定的資料類型約束,其中約束又包含取值範圍、精確度等規定。
(3)參照完整性:是指兩個表的主關鍵字和外關鍵字的資料應一致,保證了表之間的資料的一致性,防止了資料遺失或無意義的資料在資料庫中擴散。
(4) 使用者定義的完整性:不同的關聯式資料庫系統依其應用環境的不同,往往還需要一些特殊的限制條件。使用者定義的完整性即是針對某個特定關係資料庫的約束條件,它反映某一具體應用必須滿足的語意要求。
什麼是事務?及其特性?
交易:是一系列的資料庫操作,是資料庫應用的基本邏輯單位。
特性:
(1)原子性:即不可分割性,事務要麼全部被執行,要麼就全部不被執行。
(2)一致性或可串性。交易的執行使得資料庫從一種正確狀態轉換成另一種正確狀態
(3)隔離性。在交易正確提交之前,不允許把該事務對資料的任何變更提供給任何其他事務,
(4) 持久性。交易正確提交後,其結果將永久保存在資料庫中,即使在交易提交後有了其他故障,事務的處理結果也會被保存。
簡單理解:在事務裡的操作,要嘛全部成功,要嘛全部失敗。
什麼是鎖?
資料庫是一個多用戶使用的共享資源。當多個使用者並發地存取資料時,在資料庫中就會產生多個事務同時存取相同資料的情況。若對並發操作不加控制就可能會讀取和儲存不正確的數據,破壞資料庫的一致性。
加鎖是實作資料庫並發控制的一個非常重要的技術。當交易在對某個資料物件進行操作前,先向系統發出請求,對其加鎖。加鎖後事務就對該資料物件有了一定的控制,在該事務釋放鎖定之前,其他的事務不能對此資料物件進行更新操作。
基本鎖定類型:鎖定包含行級鎖定和表格層級鎖定
什麼叫視圖?遊標是什麼?
視圖是一種虛擬的表,具有和實體表相同的功能。可以對視圖進行增,改,查,操作,視圖通常是有一個表或多個表的行或列的子集。對視圖的修改不影響基本表。它使得我們獲取資料更容易,相較於多表查詢。
遊標:是對查詢出來的結果集作為一個單元來有效的處理。遊標可以定在該單元中的特定行,從結果集的目前行檢索一行或多行。可以對結果集目前行做修改。一般不使用遊標,但是需要逐條處理資料的時候,遊標顯得十分重要。
什麼是預存程序?用什麼來呼叫?
預存程序是一個預先編譯的SQL語句,優點是允許模組化的設計,就是說只要創建一次,以後在該程式中就可以呼叫多次。如果某次操作需要執行多次SQL,使用預存程序比單純SQL語句執行快。可以用一個命令物件來呼叫預存程序。
索引的作用?和它的優點缺點是什麼?
索引就一種特殊的查詢表,資料庫的搜尋引擎可以利用它來加速資料的檢索。它很類似與現實生活中書的目錄,不需要查詢整本書內容就可以找到想要的資料。索引可以是唯一的,建立索引允許指定單一列或是多個列。
缺點是它減慢了資料輸入的速度,同時也增加了資料庫的尺寸大小。
如何通俗地理解三個範式?
第一範式:1NF是對屬性的原子性約束,要求屬性具有原子性,不可再分解;
第二範式:2NF是對記錄的惟一性約束,要求記錄有惟一標識,即實體的惟一性;
第三範式:3NF是對字段冗餘性的約束,即任何字段不能由其他字段派生出來,它要求字段沒有冗餘。 。
什麼是基本表?什麼是視圖?
基本表是本身獨立存在的表,在 SQL 中一個關係就對應一個表。
視圖是從一個或幾個基本表匯出的表。視圖本身不獨立儲存在資料庫中,是一個虛表
試述視圖的優點?
(1) 視圖能夠簡化使用者的操作
(2) 視圖使用戶能以多種角度看待相同資料;
(3) 視圖為資料庫提供了一定程度的邏輯獨立性;
(4) 視圖能夠對機密資料提供安全保護。
NULL是什麼意思
NULL這個值表示UNKNOWN(未知):它不表示「」(空字串)。
對NULL這個值的任何比較都會產生一個NULL值。
您不能把任何值與一個 NULL值進行比較,並在邏輯上希望得到一個答案。
使用IS NULL來進行NULL判斷
主鍵、外鍵和索引的區別?
主鍵、外鍵和索引的區別
定義:
主鍵–唯一標識一筆記錄,不能有重複的,不允許為空
外鍵–表的外鍵是另一表的主鍵, 外鍵可以有重複的, 可以是空值
索引–該欄位沒有重複值,但可以有一個空值
作用:
主鍵–用來保證資料完整性
外鍵–用來和其他表建立聯繫用的
索引–是提高查詢排序的速度
個數:
主鍵–主鍵只能有一個
外鍵–一個表可以有多個外鍵
索引–一個表格可以有多個唯一索引
你可以用什麼來確保表格裡的欄位只接受特定範圍裡的值?
Check限制,它在資料庫表格裡被定義,用來限制輸入該列的值。
說說對SQL語句最佳化有哪些方法? (選擇幾個)
(1)Where子句中:where表之間的連接必須寫在其他Where條件之前,那些可以過濾掉最大數量記錄的條件必須寫在Where子句的末尾.HAVING最後。
(2)用EXISTS取代IN、用NOT EXISTS取代NOT IN。
(3) 避免在索引列上使用計算
(4)避免在索引列上使用IS NULL和IS NOT NULL
(5)對查詢進行最佳化,應盡量避免全表掃描,首先應考慮在where 及order by 涉及的欄位上建立索引。
(6)應盡量避免在where 子句中對欄位進行null 值判斷,否則將導致引擎放棄使用索引而進行全表掃描
(7)應盡量避免在where 子句中對欄位進行表達式操作,這將導致引擎放棄使用索引而進行全表掃描
SQL語句中'相關子查詢'與'非相關子查詢'有什麼區別?
(1)非相關子查詢是獨立於外部查詢的子查詢,子查詢總共執行一次,執行完畢後將值傳遞給外部查詢。
(2)相關子查詢的執行依賴外部查詢的數據,外部查詢執行一行,子查詢就執行一次。
因此非相關子查詢比相關子查詢效率高
#char和varchar的差別?
char是一種固定長度的類型,varchar則是一種可變長度的類型。
區別:
char(M)類型的資料列裡,每個值都佔用M個位元組,如果某個長度小於M,MySQL就會在它的右邊用空格字元補足。 (在檢索作業中那些填補出來的空格字元將會被去掉)。
varchar(M)類型的資料列裡,每個值只佔用剛好夠用的位元組再加上一個用來記錄其長度的位元組(即總長度為L 1位元組)。
Mysql 的儲存引擎,myisam和innodb的差別。
MyISAM 是非交易的儲存引擎;適合用於頻繁查詢的應用;表鎖,不會出現死鎖;不支援交易。適合小數據,小並發
innodb是支援事務的儲存引擎;適合插入和更新操作比較多的應用;設計合理的話是行鎖(最大區別就在鎖的層級);適合大數據,大並行.
資料表類型有哪些
MyISAM、InnoDB、HEAP、BOB,ARCHIVE,CSV等。
MyISAM:成熟、穩定、易於管理,快速讀取。有些功能不支援(交易等),表級鎖定。
InnoDB:支援交易、外鍵等特性、資料行鎖定。空間佔用大,不支援全文索引等。
MySQL資料庫作發布系統的存儲,一天五萬條以上的增量,預計運維三年,怎麼優化?
(1)設計良好的資料庫結構,讓部分資料冗餘,盡量避免join查詢,提高效率。
(2) 選擇合適的表格欄位資料類型和儲存引擎,適當的添加索引。
(3) 做mysql主從複製讀寫分離。
(4)對資料表進行分錶,減少單表中的資料量提高查詢速度。
(5)加入快取機制,例如redis,memcached等。
(6)對不常改動的頁面,產生靜態頁面(例如做ob快取)。
(7)書寫高效率的SQL。例如 SELECT * FROM TABEL 改為 SELECT field_1, field_2, field_3 FROM TABLE.
對於大流量的網站,您採用什麼樣的方法來解決各頁訪問量統計問題?
(1) 確認伺服器是否能支撐目前訪問量。
(2) 最佳化資料庫存取。
(3)禁止外部存取連結(盜鏈), 例如圖片盜鏈。
(4)控制檔下載。
(5)做負載平衡,使用不同主機分流。
(6)使用瀏覽統計軟體,了解訪問量,有針對性的進行最佳化。
#建議:「PHP 試題大總表(合集)」
以上是總結PHP面試題「資料庫」相關知識的詳細內容。更多資訊請關注PHP中文網其他相關文章!

PHP是一種服務器端腳本語言,用於動態網頁開發和服務器端應用程序。 1.PHP是一種解釋型語言,無需編譯,適合快速開發。 2.PHP代碼嵌入HTML中,易於網頁開發。 3.PHP處理服務器端邏輯,生成HTML輸出,支持用戶交互和數據處理。 4.PHP可與數據庫交互,處理表單提交,執行服務器端任務。

PHP在過去幾十年中塑造了網絡,並將繼續在Web開發中扮演重要角色。 1)PHP起源於1994年,因其易用性和與MySQL的無縫集成成為開發者首選。 2)其核心功能包括生成動態內容和與數據庫的集成,使得網站能夠實時更新和個性化展示。 3)PHP的廣泛應用和生態系統推動了其長期影響,但也面臨版本更新和安全性挑戰。 4)近年來的性能改進,如PHP7的發布,使其能與現代語言競爭。 5)未來,PHP需應對容器化、微服務等新挑戰,但其靈活性和活躍社區使其具備適應能力。

PHP的核心優勢包括易於學習、強大的web開發支持、豐富的庫和框架、高性能和可擴展性、跨平台兼容性以及成本效益高。 1)易於學習和使用,適合初學者;2)與web服務器集成好,支持多種數據庫;3)擁有如Laravel等強大框架;4)通過優化可實現高性能;5)支持多種操作系統;6)開源,降低開發成本。

PHP沒有死。 1)PHP社區積極解決性能和安全問題,PHP7.x提升了性能。 2)PHP適合現代Web開發,廣泛用於大型網站。 3)PHP易學且服務器表現出色,但類型系統不如靜態語言嚴格。 4)PHP在內容管理和電商領域仍重要,生態系統不斷進化。 5)通過OPcache和APC等優化性能,使用OOP和設計模式提升代碼質量。

PHP和Python各有優劣,選擇取決於項目需求。 1)PHP適合Web開發,易學,社區資源豐富,但語法不夠現代,性能和安全性需注意。 2)Python適用於數據科學和機器學習,語法簡潔,易學,但執行速度和內存管理有瓶頸。

PHP用於構建動態網站,其核心功能包括:1.生成動態內容,通過與數據庫對接實時生成網頁;2.處理用戶交互和表單提交,驗證輸入並響應操作;3.管理會話和用戶認證,提供個性化體驗;4.優化性能和遵循最佳實踐,提升網站效率和安全性。

PHP在數據庫操作和服務器端邏輯處理中使用MySQLi和PDO擴展進行數據庫交互,並通過會話管理等功能處理服務器端邏輯。 1)使用MySQLi或PDO連接數據庫,執行SQL查詢。 2)通過會話管理等功能處理HTTP請求和用戶狀態。 3)使用事務確保數據庫操作的原子性。 4)防止SQL注入,使用異常處理和關閉連接來調試。 5)通過索引和緩存優化性能,編寫可讀性高的代碼並進行錯誤處理。

在PHP中使用預處理語句和PDO可以有效防範SQL注入攻擊。 1)使用PDO連接數據庫並設置錯誤模式。 2)通過prepare方法創建預處理語句,使用佔位符和execute方法傳遞數據。 3)處理查詢結果並確保代碼的安全性和性能。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載
最受歡迎的的開源編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

WebStorm Mac版
好用的JavaScript開發工具