MySQL 面試題 14 道
在公眾號后臺回復(fù):JGNB,可獲取杰哥原創(chuàng)的 PDF 手冊。
分享在面試中經(jīng)常被問到的 MySQL 題目,本文總結(jié)了面試中的經(jīng)典問題。
1.主鍵(primary key)和候選鍵(candidate key)有什么區(qū)別?
候選鍵 - 候選鍵可以是任何列或可以作為數(shù)據(jù)庫中唯一鍵的列組合。一張表中可以有多個候選鍵。每個候選鍵都可以作為主鍵。
主鍵 - 主鍵是唯一標識記錄的列或列組合。只有一個候選鍵可以是主鍵。
2. NOW() 和 CURRENT_DATE() 有什么區(qū)別?
NOW () 命令用于以小時、分鐘和秒顯示當前年、月、日。
CURRENT_DATE() 僅顯示當前年、月和日期。
3. MySQL 表中允許多少個觸發(fā)器?
以下是 MySQL 表中允許的觸發(fā)器。
插入前
插入后
更新前
更新后
刪除前
刪除后
4.我們可以為索引創(chuàng)建多少列?
16
5. 如何將數(shù)據(jù)從一張表復(fù)制到另一張表?
INSERT INTO table2 (id,uid,changed,status,assign_status) SELECT id,uid,now(),'Pending','Assigned' FROM table1
6.如何在不復(fù)制數(shù)據(jù)的情況下復(fù)制表?
CREATE TABLE users_bck SELECT * FROM users WHERE 1=0;
7.什么是 MySQL?
MySQL 是一個免費提供的開源關(guān)系數(shù)據(jù)庫管理系統(tǒng) (RDBMS),它使用結(jié)構(gòu)化查詢語言 (SQL)。
SQL 是用于在數(shù)據(jù)庫中添加、訪問和管理內(nèi)容的最流行的語言。它以其快速處理、久經(jīng)考驗的可靠性、易用性和使用靈活性而著稱。MySQL 是幾乎每個開源 PHP 應(yīng)用程序的重要組成部分?;?PHP 和 MySQL 的腳本的好例子是 WordPress、Joomla、Magento 和 Drupal。
8.列出MySQL的特點?
關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS):MySQL 是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng)。
易于使用:MySQL 易于使用。您只需掌握 SQL 的基本知識。只需幾個簡單的 SQL 語句,您就可以構(gòu)建 MySQL 并與之交互。
它是安全的:MySQL 包含一個可靠的數(shù)據(jù)安全層,可以保護敏感數(shù)據(jù)免受入侵者的侵害。密碼在 MySQL 中是加密的。
它是可擴展的:MySQL 可以處理幾乎任何數(shù)量的數(shù)據(jù),多達 5000 萬行或更多。默認文件大小限制約為 4 GB。但是,您可以將此數(shù)字增加到 8 TB 數(shù)據(jù)的理論限制。
在許多操作系統(tǒng)上兼容:MySQL 兼容在許多操作系統(tǒng)上運行。
允許回滾:MySQL 允許事務(wù)回滾、提交和崩潰恢復(fù)。
高性能:由于其獨特的存儲引擎架構(gòu),MySQL 更快、更可靠、更便宜。
高靈活性:MySQL 支持大量的嵌入式應(yīng)用程序,這使得 MySQL 非常靈活。
高生產(chǎn)力:MySQL 使用觸發(fā)器、存儲過程和視圖,允許開發(fā)人員提供更高的生產(chǎn)力。
9. transaction 和 ACID 屬性是什么意思?
事務(wù)是工作的邏輯單元,應(yīng)該執(zhí)行所有步驟或不執(zhí)行任何步驟。ACID 是原子性、一致性、隔離性和持久性的縮寫,它們是任何事務(wù)的屬性。
10. 什么是堆表?
堆是沒有聚集索引的表??梢栽诖鎯槎训谋砩蟿?chuàng)建一個或多個非聚集索引。數(shù)據(jù)存儲在堆中而不指定順序。通常數(shù)據(jù)最初是按照行插入表中的順序存儲的,但是數(shù)據(jù)庫引擎可以在堆中移動數(shù)據(jù)以有效地存儲行;因此無法預(yù)測數(shù)據(jù)順序。要保證從堆返回的行的順序,您必須使用 ORDER BY 子句。要指定行的存儲順序,請在表上創(chuàng)建聚集索引,使表不是堆。
11. 聚集表與堆表
堆表
數(shù)據(jù)不按任何特定順序存儲
具體數(shù)據(jù)不能快速檢索,除非也有非聚集索引
數(shù)據(jù)頁未鏈接,因此順序訪問需要回溯到索引分配映射 (IAM) 頁
由于沒有聚集索引,因此不需要額外的時間來維護索引
由于沒有聚集索引,所以不需要額外的空間來存儲聚集索引樹
這些表在 sys.indexes 目錄視圖中的 index_id 值為 0
集群表
數(shù)據(jù)按照聚集索引鍵的順序存儲
如果查詢使用索引列,可以根據(jù)聚集索引鍵快速檢索數(shù)據(jù)
鏈接數(shù)據(jù)頁以實現(xiàn)更快的順序訪問
需要額外的時間來維護基于 INSERTS、UPDATES 和 DELETES 的聚集索引
需要額外的空間來存儲聚集索引樹
這些表在 sys.indexes 目錄視圖中的 index_id 值為 1
12. 區(qū)分 FLOAT 和 DOUBLE?
以下是 FLOAT 和 DOUBLE 的區(qū)別:
浮點數(shù)以八位精度存儲在 FLOAT 中,它有四個字節(jié)。
浮點數(shù)以 18 位精度存儲在 DOUBLE 中,它有 8 個字節(jié)。
13. 使用 CREATE 語句可以創(chuàng)建哪些對象?
以下對象是使用 CREATE 語句創(chuàng)建的:
DATABASE
EVENT
FUNCTION
INDEX
PROCEDURE
TABLE
TRIGGER
USER
VIEW
14.主鍵和唯一鍵有什么區(qū)別
雖然兩者都用于強制定義的列的唯一性,但主鍵會創(chuàng)建聚集索引,而唯一鍵會在列上創(chuàng)建非聚集索引。主鍵不允許'NULL',但唯一鍵允許它。
來自:Linux迷
鏈接:https://www.linuxmi.com/git-stash.html
推薦閱讀:
面試數(shù)十家Linux運維工程師,總結(jié)了這些面試題(含答案)

