首頁  >  文章  >  資料庫  >  常見 MYSQL 面試問題

常見 MYSQL 面試問題

Linda Hamilton
Linda Hamilton原創
2024-10-18 14:07:30924瀏覽

COMMON MYSQL INTERVIEW QUESTIONS

A. 初級MySQL問題:

  1. 什麼是 MySQL?

    • MySQL 是一個開源關聯式資料庫管理系統 (RDBMS),它使用結構化查詢語言 (SQL) 來存取、管理和操作資料庫中儲存的資料。
  2. MySQL 有哪些主要特性?

    • 開源、跨平台支援、高效能、支援複雜查詢、安全功能、ACID 合規性、可擴充性、複製和叢集。
  3. 什麼是關聯式資料庫?

    • 關聯式資料庫是一種將資料儲存在由行和列組成的表中的資料庫。每個表都有唯一的鍵,表之間的關係是使用外鍵建立的。
  4. 什麼是 SQL?

    • SQL(結構化查詢語言)是一種標準程式語言,用於管理和操作關聯式資料庫,包括查詢、插入、更新和刪除資料等任務。
  5. MySQL 有哪些不同的資料型別?

    • MySQL支援多種資料類型,包括:
      • 數字:INT、FLOAT、DOUBLE、DECIMAL
      • 字串:VARCHAR、TEXT、CHAR
      • 日期和時間:日期、日期時間、時間戳記、時間
      • 二進位:BLOB、二進位
  6. 什麼是主鍵?

    • 主鍵是表格記錄的唯一識別碼。它確保主鍵列中不儲存重複值,並且每個表只能有一個主鍵。
  7. 什麼是外鍵?

    • 外鍵是一個表中的欄位(或欄位集合),它唯一標識另一個表的一行,在兩個表之間建立連結並強制引用完整性。
  8. CHAR 和 VARCHAR 有什麼差別?

    • CHAR 是固定長度字串,而 VARCHAR 是可變長度字串。當字串的長度可預測時使用 CHAR,而對於不同的長度,VARCHAR 更節省空間。
  9. MySQL 中的 AUTO_INCRMENT 是什麼?

    • AUTO_INCRMENT 是 MySQL 中的功能,可以自動為表中的新記錄產生唯一標識符,通常用於主鍵列。
  10. SQL 中的 JOIN 子句是什麼?

    • JOIN 用於根據相關列組合兩個或多個表中的行。類型包括 INNER JOIN、LEFT JOIN、RIGHT JOIN 和 FULL JOIN。
  11. 什麼是內連結?

    • INNER JOIN 僅傳回在連接的兩個表中具有匹配值的行。
  12. 什麼是左連接?

    • LEFT JOIN 傳回左表中的所有行以及右表中的符合行。如果未找到符合項,則為右表中的欄位傳回 NULL 值。
  13. SQL 中的 UNION 是什麼?

    • UNION 會組合兩個或更多 SELECT 查詢的結果集,刪除查詢之間的重複行。所有 SELECT 語句中的欄位必須具有相同的編號和資料類型。
  14. UNION 和 UNION ALL 有什麼差別?

    • UNION 刪除重複行,而 UNION ALL 則包括合併結果集中的所有重複行。
  15. 什麼是 GROUP BY 子句?

    • GROUP BY 將具有相同值的行分組為總計行,通常與 SUM()、AVG()、COUNT()、MIN() 和 MAX() 等聚合函數一起使用。

B. 中級MySQL問題:

  1. MySQL 中的索引是什麼?

    • 索引是一種資料結構,可以提高表上資料檢索操作的速度。用於快速定位數據,無需掃描全表。
  2. MySQL 中有哪些不同類型的索引?

    • MySQL中常見的索引類型包括:
      • 主索引:為主鍵自動建立。
      • 唯一索引:確保索引列中的所有值都是唯一的。
      • 全文索引:用於文字搜尋。
      • 複合索引:多列索引。
  3. 什麼是標準化?

    • 規範化是組織資料庫表以減少冗餘並提高資料完整性的過程。它涉及將大表劃分為較小的相關表。
  4. 什麼是非規範化?

    • 非規範化是組合表以減少聯接數量並提高查詢效能的過程,通常用於讀取密集型應用程式。
  5. HAVING 子句是什麼?

    • HAVING 用於在應用聚合後過濾記錄,通常與 GROUP BY 一起使用。它與 WHERE 類似,但 WHERE 在聚合之前應用。
  6. 什麼是預存程序?

    • 預存程序是一組可以作為單一單元執行的 SQL 語句。它儲存在資料庫中,可以透過特定的名稱來調用,常用於封裝複雜的邏輯。
  7. MySQL 中的觸發器是什麼?

    • 觸發器是一組 SQL 語句,當表上發生指定事件(INSERT、UPDATE、DELETE)時會自動執行。
  8. MySQL 中的視圖是什麼?

    • 視圖是基於 SELECT 查詢結果的虛擬表。它不是物理存儲數據,而是提供了一種簡化複雜查詢的方法。
  9. MySQL 中的事務是什麼?

    • 交易是作為單一工作單元執行的 SQL 語句序列。它遵循 ACID 屬性(原子性、一致性、隔離性、持久性)。
  10. 什麼是 ACID 屬性?

    • 原子性:事務中的所有操作都已完成或沒有。
    • 一致性:交易將資料庫從一種有效狀態轉變為另一種有效狀態。
    • 隔離:交易之間互不干擾。
    • 持久性:一旦提交事務,更改就是永久性的。

C. 進階 MySQL 問題:

  1. MySQL 中的複製是什麼?

    • 複製是將資料從一台 MySQL 伺服器(主伺服器)複製到一台或多台伺服器(從伺服器)以實現冗餘和負載平衡的過程。
  2. MySQL 中有哪些不同類型的複製?

    • 主從複製:資料寫入主機並複製到從機。
    • 主複製:兩台伺服器都可以充當主伺服器並相互複製資料。
    • 群組複製:高可用MySQL叢集的多主複製。
  3. 什麼是 InnoDB 儲存引擎?

    • InnoDB 是 MySQL 中的預設儲存引擎,提供對 ACID 相容事務、外鍵和崩潰復原的支援。
  4. 刪除、截斷和刪除有什麼不同?

    • DELETE:依照條件從表格中刪除行。可以回滾。
    • TRUNCATE:從表中刪除所有行,但保留其結構。無法回滾。
    • DROP:刪除整個表,包括其結構。無法回滾。
  5. 如何最佳化 MySQL 中的慢速查詢?

    • 技術包括使用正確的索引、分析查詢執行計劃(EXPLAIN)、重寫查詢以提高效率、使用 JOIN 而不是子查詢、避免 SELECT * 以及確保硬體資源充足。

以上是常見 MYSQL 面試問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn