A. 初級MySQL問題:
-
什麼是 MySQL?
- MySQL 是一個開源關聯式資料庫管理系統 (RDBMS),它使用結構化查詢語言 (SQL) 來存取、管理和操作資料庫中儲存的資料。
-
MySQL 有哪些主要特性?
- 開源、跨平台支援、高效能、支援複雜查詢、安全功能、ACID 合規性、可擴充性、複製和叢集。
-
什麼是關聯式資料庫?
- 關聯式資料庫是一種將資料儲存在由行和列組成的表中的資料庫。每個表都有唯一的鍵,表之間的關係是使用外鍵建立的。
-
什麼是 SQL?
- SQL(結構化查詢語言)是一種標準程式語言,用於管理和操作關聯式資料庫,包括查詢、插入、更新和刪除資料等任務。
-
MySQL 有哪些不同的資料型別?
- MySQL支援多種資料類型,包括:
-
數字:INT、FLOAT、DOUBLE、DECIMAL
-
字串:VARCHAR、TEXT、CHAR
-
日期和時間:日期、日期時間、時間戳記、時間
-
二進位:BLOB、二進位
-
什麼是主鍵?
- 主鍵是表格記錄的唯一識別碼。它確保主鍵列中不儲存重複值,並且每個表只能有一個主鍵。
-
什麼是外鍵?
- 外鍵是一個表中的欄位(或欄位集合),它唯一標識另一個表的一行,在兩個表之間建立連結並強制引用完整性。
-
CHAR 和 VARCHAR 有什麼差別?
-
CHAR 是固定長度字串,而 VARCHAR 是可變長度字串。當字串的長度可預測時使用 CHAR,而對於不同的長度,VARCHAR 更節省空間。
-
MySQL 中的 AUTO_INCRMENT 是什麼?
-
AUTO_INCRMENT 是 MySQL 中的功能,可以自動為表中的新記錄產生唯一標識符,通常用於主鍵列。
-
SQL 中的 JOIN 子句是什麼?
-
JOIN 用於根據相關列組合兩個或多個表中的行。類型包括 INNER JOIN、LEFT JOIN、RIGHT JOIN 和 FULL JOIN。
-
什麼是內連結?
-
INNER JOIN 僅傳回在連接的兩個表中具有匹配值的行。
-
什麼是左連接?
-
LEFT JOIN 傳回左表中的所有行以及右表中的符合行。如果未找到符合項,則為右表中的欄位傳回 NULL 值。
-
SQL 中的 UNION 是什麼?
-
UNION 會組合兩個或更多 SELECT 查詢的結果集,刪除查詢之間的重複行。所有 SELECT 語句中的欄位必須具有相同的編號和資料類型。
-
UNION 和 UNION ALL 有什麼差別?
-
UNION 刪除重複行,而 UNION ALL 則包括合併結果集中的所有重複行。
-
什麼是 GROUP BY 子句?
-
GROUP BY 將具有相同值的行分組為總計行,通常與 SUM()、AVG()、COUNT()、MIN() 和 MAX() 等聚合函數一起使用。
B. 中級MySQL問題:
-
MySQL 中的索引是什麼?
- 索引是一種資料結構,可以提高表上資料檢索操作的速度。用於快速定位數據,無需掃描全表。
-
MySQL 中有哪些不同類型的索引?
- MySQL中常見的索引類型包括:
-
主索引:為主鍵自動建立。
-
唯一索引:確保索引列中的所有值都是唯一的。
-
全文索引:用於文字搜尋。
-
複合索引:多列索引。
-
什麼是標準化?
- 規範化是組織資料庫表以減少冗餘並提高資料完整性的過程。它涉及將大表劃分為較小的相關表。
-
什麼是非規範化?
- 非規範化是組合表以減少聯接數量並提高查詢效能的過程,通常用於讀取密集型應用程式。
-
HAVING 子句是什麼?
-
HAVING 用於在應用聚合後過濾記錄,通常與 GROUP BY 一起使用。它與 WHERE 類似,但 WHERE 在聚合之前應用。
-
什麼是預存程序?
- 預存程序是一組可以作為單一單元執行的 SQL 語句。它儲存在資料庫中,可以透過特定的名稱來調用,常用於封裝複雜的邏輯。
-
MySQL 中的觸發器是什麼?
- 觸發器是一組 SQL 語句,當表上發生指定事件(INSERT、UPDATE、DELETE)時會自動執行。
-
MySQL 中的視圖是什麼?
- 視圖是基於 SELECT 查詢結果的虛擬表。它不是物理存儲數據,而是提供了一種簡化複雜查詢的方法。
-
MySQL 中的事務是什麼?
- 交易是作為單一工作單元執行的 SQL 語句序列。它遵循 ACID 屬性(原子性、一致性、隔離性、持久性)。
-
什麼是 ACID 屬性?
-
原子性:事務中的所有操作都已完成或沒有。
-
一致性:交易將資料庫從一種有效狀態轉變為另一種有效狀態。
-
隔離:交易之間互不干擾。
-
持久性:一旦提交事務,更改就是永久性的。
C. 進階 MySQL 問題:
-
MySQL 中的複製是什麼?
- 複製是將資料從一台 MySQL 伺服器(主伺服器)複製到一台或多台伺服器(從伺服器)以實現冗餘和負載平衡的過程。
-
MySQL 中有哪些不同類型的複製?
-
主從複製:資料寫入主機並複製到從機。
-
主複製:兩台伺服器都可以充當主伺服器並相互複製資料。
-
群組複製:高可用MySQL叢集的多主複製。
-
什麼是 InnoDB 儲存引擎?
- InnoDB 是 MySQL 中的預設儲存引擎,提供對 ACID 相容事務、外鍵和崩潰復原的支援。
-
刪除、截斷和刪除有什麼不同?
-
DELETE:依照條件從表格中刪除行。可以回滾。
-
TRUNCATE:從表中刪除所有行,但保留其結構。無法回滾。
-
DROP:刪除整個表,包括其結構。無法回滾。
-
如何最佳化 MySQL 中的慢速查詢?
- 技術包括使用正確的索引、分析查詢執行計劃(EXPLAIN)、重寫查詢以提高效率、使用 JOIN 而不是子查詢、避免 SELECT * 以及確保硬體資源充足。
以上是常見 MYSQL 面試問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!