1. 請簡潔描述 MySQL 中 InnoDB 支持的四種事務隔離級別名稱,以及逐級之間的區別?
SQL 標準定義的四個隔離級別為:
read uncommited :讀到未提交數據
read committed:臟讀,不可重復讀
repeatable read:可重讀
serializable :串行事物
2. 在 MySQL 中 ENUM 的用法是什么?
ENUM 是一個字符串對象,用于指定一組預定義的值,并可在創建表時使用。
SQL 語法如下:
Create table size(name ENUM('Smail,'Medium','Large');
3. CHAR 和 VARCHAR 的區別?
CHAR 和 VARCHAR 類型在存儲和檢索方面有所不同。
CHAR 列長度固定為創建表時聲明的長度,長度值范圍是 1 到 255。
當 CHAR 值被存儲時,它們被用空格填充到特定長度,檢索 CHAR 值時需刪除尾隨
空格。
4. 列的字符串類型可以是什么?
字符串類型是:SET
BLOB
ENUM
CHAR
TEXT
VARCHAR
5. MySQL 中使用什么存儲引擎?
存儲引擎稱為表類型,數據使用各種技術存儲在文件中。
技術涉及:
Storage mechanism
Locking levels
Indexing
Capabilities and functions.
6. TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 數據類型上做什么?
創建表時 TIMESTAMP 利用 Zero 更新。只要表中的其他字段發生更改,UPDATECURRENT_TIMESTAMP 修飾符就將時間戳字段更新為當前時間。
7. 主鍵和候選鍵有什么區別?
表格的每一行都有主鍵唯一標識, 一個表只有一個主鍵。主鍵也是候選鍵。按照慣例,候選鍵可以被指定為主鍵,并且可以用于任何外鍵引用。
8. MySQL 數據庫服務器性能分析的方法命令有哪些?
Show status 一些值得監控的變量值:
Bytesreceived 和 Bytessent 和服務器之間來往的流量。 Com 服務器正在執行的命令。 Created 在查詢執行期限間創建的臨時表和文件。 Handler 存儲引擎操作。 Select 不同類型的聯接執行計劃。 Sort_* 幾種排序信息。 Show session status like ‘Select’; Show profiles SETprofiling=1; Show profilesG Show profile;
9. LIKE 和 REGEXP 操作有什么區別?
LIKE 和 REGEXP 運算符用于表示 ^ 和%。
SELECT * FROM <tablename> WHERE * REGEXP "^b";
SELECT * FROM <tablename> WHERE * LIKE "%b";
10. BLOB 和 TEXT 有什么區別?
BLOB
BLOB 是一個二進制對象,可以容納可變數量的數據。有四種類型的 BLOB TINYBLOB
BLOB MEDIUMBLOB 和? LONGBLOB
它們只能在所能容納價值的最大長度上有所不同。
TEXT
TEXT 是一個不區分大小寫的 BLOB。四種 TEXT 類型
TINYTEXT
TEXT
MEDIUMTEXT 和
LONGTEXT
它們對應于四種 BLOB 類型,并具有相同的最大長度和存儲要求。BLOB 和 TEXT 類型之間的唯一區別在于對 BLOB 值進行排序和比較時區分大小寫,對 TEXT 值不區分大小寫。
11. 數據庫的三范式?
第一范式:數據庫表的每一個字段都是不可分割的。
第二范式:數據庫表中的非主屬性只依賴于主鍵。
第三范式:不存在非主屬性對關鍵字的傳遞函數依賴關系。
12. MySQL 表中允許有多少個 TRIGGERS?
在 MySQL 表中允許有六個觸發器,如下:
BEFORE INSERT
AFTER INSERT
BEFORE UPDATE
AFTER UPDATE
BEFORE DELETE and
AFTER DELETE
13. 什么是通用 SQL 函數?
數學函數
Abs(num)求絕對值
floor(num)向下取整
ceil(num)向上取整
字符串函數
insert (s1,index,length,s2) 替換函數
S1 表示被替換的字符串o s2 表示將要替換的字符串
Index 表示被替換的位置, 從 1 開始
Lebgth 表示被替換的長度
upper(str),ucase(str)將字母改為大寫
lower(str),lcase(str)將字母改為小寫
left(str,length)返回 str 字符串的前 length 個字符
right(str,length)返回 str 字符串的后 length 個字符
substring(str,index,length)返回 str 字符串從 index 位開始長度為
length 個字符(index 從 1 開始)
reverse(str)將 str 字符串倒序輸出
日期函數
curdate()、current_date( ) 獲取當前日期
curtime()、current_time( ) 獲取當前日期
now()獲取當前日期和時間
datediff(d1、d2)d1 和 d2 之間的天數差
adddate(date,num)返回 date 日期開始,之后 num 天的日期
subdate(date,num)返回 date 日期開始,之前 num 天的日期聚合函數
Count(字段)根據某個字段統計總記錄數(當前數據庫保存到多少條數據)
sum(字段)計算某個字段的數值總和
avg(字段)計算某個字段的數值的平均值
Max(字段)、min(字段)求某個字段最大或最小值
14. MySQL 中有哪幾種鎖?
MyISAM 支持表鎖,InnoDB 支持表鎖和行鎖,默認為行鎖。
表級鎖:開銷小,加鎖快,不會出現死鎖。鎖定粒度大,發生鎖沖突的概率最高,并發量最低。
行級鎖:開銷大,加鎖慢,會出現死鎖。鎖力度小,發生鎖沖突的概率小,并發度最高。
【關注】轉發了解更多內容