MySQL常見問題及答案匯總
MySQL常見問題及答案匯總,MySQL是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。數(shù)據(jù)庫按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫。每個數(shù)據(jù)庫都有一個或多個不同的 API 用于創(chuàng)建,訪問,管理,搜索和復(fù)制所保存的數(shù)據(jù)。
在學(xué)習(xí)MySQL時會有很多問題,接下來我們一來學(xué)習(xí)下~
1、一張表,里面有 ID 自增主鍵,當(dāng) insert 了 17 條記錄之后,刪除了第 15,16,17 條記錄,再把 Mysql 重啟,再 insert 一條記錄,這條記錄的 ID 是 18 還是 15 ?
(1)如果表的類型是 MyISAM,那么是 18因?yàn)?MyISAM 表會把自增主鍵的最大 ID 記錄到數(shù)據(jù)文件里,重啟 MySQL 自增主鍵的最大ID 也不會丟失
(2)如果表的類型是 InnoDB,那么是 15InnoDB 表只是把自增主鍵的最大 ID 記錄到內(nèi)存中,所以重啟數(shù)據(jù)庫或者是對表進(jìn)行OPTIMIZE 操作,都會導(dǎo)致最大 ID 丟失
2、Mysql 的技術(shù)特點(diǎn)是什么?
Mysql 數(shù)據(jù)庫軟件是一個客戶端或服務(wù)器系統(tǒng),其中包括:支持各種客戶端程序和庫的多線程SQL 服務(wù)器、不同的后端、廣泛的應(yīng)用程序編程接口和管理工具。
3、Heap 表是什么?
HEAP 表存在于內(nèi)存中,用于臨時高速存儲。
BLOB 或 TEXT 字段是不允許的
只能使用比較運(yùn)算符=,<,>,=>,= <
HEAP 表不支持 AUTO_INCREMENT
索引不可為 NULL
4、Mysql 服務(wù)器默認(rèn)端口是什么?
Mysql 服務(wù)器的默認(rèn)端口是 3306。
5、與 Oracle 相比,Mysql 有什么優(yōu)勢?
Mysql 是開源軟件,隨時可用,無需付費(fèi)。Mysql 是便攜式的帶有命令提示符的 GUI。使用 Mysql 查詢?yōu)g覽器支持管理
6、如何區(qū)分 FLOAT 和 DOUBLE?
以下是 FLOAT 和 DOUBLE 的區(qū)別:
浮點(diǎn)數(shù)以 8 位精度存儲在 FLOAT 中,并且有四個字節(jié)。
浮點(diǎn)數(shù)存儲在 DOUBLE 中,精度為 18 位,有八個字節(jié)。
7、區(qū)分 CHAR_LENGTH 和 LENGTH?
CHAR_LENGTH 是字符數(shù),而 LENGTH 是字節(jié)數(shù)。Latin 字符的這兩個數(shù)據(jù)是相同的,但是對于 Unicode 和其他編碼,它們是不同的。
8、請簡潔描述 Mysql 中 InnoDB 支持的四種事務(wù)隔離級別名稱,以及逐級之間的區(qū)別?
SQL 標(biāo)準(zhǔn)定義的四個隔離級別為:
- read uncommited :讀到未提交數(shù)據(jù)
- read committed:臟讀,不可重復(fù)讀
- repeatable read:可重讀
- serializable :串行事物
9、在 Mysql 中 ENUM 的用法是什么?
ENUM 是一個字符串對象,用于指定一組預(yù)定義的值,并可在創(chuàng)建表時使用。
Create table size(name ENUM('Smail,'Medium','Large');
10、如何定義 REGEXP?
REGEXP 是模式匹配,其中匹配模式在搜索值的任何位置。
11、CHAR 和 VARCHAR 的區(qū)別?
以下是 CHAR 和 VARCHAR 的區(qū)別:
CHAR 和 VARCHAR 類型在存儲和檢索方面有所不同
CHAR 列長度固定為創(chuàng)建表時聲明的長度,長度值范圍是 1 到 255
當(dāng) CHAR 值被存儲時,它們被用空格填充到特定長度,檢索 CHAR 值時需刪除尾隨空格。
12、列的字符串類型可以是什么?
字符串類型是:
- SET
- BLOB
- ENUM
- CHAR
- TEXT
- VARCHAR
13、如何獲取當(dāng)前的 Mysql 版本?
SELECT VERSION();用于獲取當(dāng)前 Mysql 的版本。