去 BAT 面試,總結了這 55 道 MySQL 面試題!

2021-03-02 Java技術棧

Java技術棧

www.javastack.cn

優秀的Java技術公眾號


1、一張表,裡面有ID自增主鍵,當insert了17條記錄之後,刪除了第15,16,17條記錄,再把Mysql重啟,再insert一條記錄,這條記錄的ID是18還是15 ?


2、Mysql的技術特點是什麼?

Mysql資料庫軟體是一個客戶端或伺服器系統,其中包括:支持各種客戶端程序和庫的多線程SQL伺服器、不同的後端、廣泛的應用程式編程接口和管理工具。

3、Heap表是什麼?

HEAP表存在於內存中,用於臨時高速存儲。

BLOB或TEXT欄位是不允許的

只能使用比較運算符=,<,>,=>,= <

HEAP表不支持AUTO_INCREMENT

索引不可為NULL

4、Mysql伺服器默認埠是什麼?

Mysql伺服器的默認埠是3306。

5、與Oracle相比,Mysql有什麼優勢?

Mysql是開源軟體,隨時可用,無需付費。

Mysql是可攜式的

帶有命令提示符的GUI。

使用Mysql查詢瀏覽器支持管理

6、如何區分FLOAT和DOUBLE?

以下是FLOAT和DOUBLE的區別:

7、區分CHAR_LENGTH和LENGTH?

CHAR_LENGTH是字符數,而LENGTH是字節數。Latin字符的這兩個數據是相同的,但是對於Unicode和其他編碼,它們是不同的。

8、請簡潔描述Mysql中InnoDB支持的四種事務隔離級別名稱,以及逐級之間的區別?

SQL標準定義的四個隔離級別為:

read uncommited :讀到未提交數據

read committed:髒讀,不可重複讀

repeatable read:可重讀

serializable :串行事物

9、在Mysql中ENUM的用法是什麼?

ENUM是一個字符串對象,用於指定一組預定義的值,並可在創建表時使用。

Create table size(name ENUM('Smail,'Medium','Large');

10、如何定義REGEXP?

REGEXP是模式匹配,其中匹配模式在搜索值的任何位置。

11、CHAR和VARCHAR的區別?

以下是CHAR和VARCHAR的區別:

當CHAR值被存儲時,它們被用空格填充到特定長度,檢索CHAR值時需刪除尾隨空格。

12、列的字符串類型可以是什麼?

字符串類型是:

SET

BLOB

ENUM

CHAR

TEXT

VARCHAR

13、如何獲取當前的Mysql版本?

SELECT VERSION();用於獲取當前Mysql的版本。

14、Mysql中使用什麼存儲引擎?

存儲引擎稱為表類型,數據使用各種技術存儲在文件中。

技術涉及:

15、Mysql驅動程序是什麼?

以下是Mysql中可用的驅動程序:

PHP驅動程序

JDBC驅動程序

ODBC驅動程序

CWRAPPER

PYTHON驅動程序

PERL驅動程序

RUBY驅動程序

CAP11PHP驅動程序

Ado.net5.mxj

16、TIMESTAMP在UPDATE CURRENT_TIMESTAMP數據類型上做什麼?

創建表時TIMESTAMP列用Zero更新。只要表中的其他欄位發生更改,UPDATE CURRENT_TIMESTAMP修飾符就將時間戳欄位更新為當前時間。

17、主鍵和候選鍵有什麼區別?

表格的每一行都由主鍵唯一標識,一個表只有一個主鍵。

主鍵也是候選鍵。按照慣例,候選鍵可以被指定為主鍵,並且可以用於任何外鍵引用。

18、如何使用Unix shell登錄Mysql

我們可以通過以下命令登錄:

# [mysql dir]/bin/mysql -h hostname -u <UserName> -p <password>

19、 myisamchk是用來做什麼的?

它用來壓縮MyISAM表,這減少了磁碟或內存使用。

20、MYSQL資料庫伺服器性能分析的方法命令有哪些?

 

21、如何控制HEAP表的最大尺寸?

Heal表的大小可通過稱為max_heap_table_size的Mysql配置變量來控制。

22、MyISAM Static和MyISAM Dynamic有什麼區別?

在MyISAM Static上的所有欄位有固定寬度。動態MyISAM表將具有像TEXT,BLOB等欄位,以適應不同長度的數據類型。點擊這裡有一套最全阿里面試題總結。

MyISAM Static在受損情況下更容易恢復。

23、federated表是什麼?

federated表,允許訪問位於其他伺服器資料庫上的表。

24、如果一個表有一列定義為TIMESTAMP,將發生什麼?

每當行被更改時,時間戳欄位將獲取當前時間戳。

25、列設置為AUTO INCREMENT時,如果在表中達到最大值,會發生什麼情況?

它會停止遞增,任何進一步的插入都將產生錯誤,因為密鑰已被使用。

26、怎樣才能找出最後一次插入時分配了哪個自動增量?

LAST_INSERT_ID將返回由Auto_increment分配的最後一個值,並且不需要指定表名稱。

27、你怎麼看到為表格定義的所有索引?

索引是通過以下方式為表格定義的:

SHOW INDEX FROM <tablename>;

28.、LIKE聲明中的%和_是什麼意思?

%對應於0個或更多字符,_只是LIKE語句中的一個字符。

29、如何在Unix和Mysql時間戳之間進行轉換?

30、列對比運算符是什麼?

在SELECT語句的列比較中使用=,<>,<=,<,> =,>,<<,>>,<=>,AND,OR或LIKE運算符。

31、我們如何得到受查詢影響的行數?

行數可以通過以下代碼獲得:

SELECT COUNT(user_id)FROM users;

32、Mysql查詢是否區分大小寫?

不區分

SELECT VERSION(), CURRENT_DATE;

SeLect version(), current_date;

seleCt vErSiOn(), current_DATE;

所有這些例子都是一樣的,Mysql不區分大小寫。

33.、LIKE和REGEXP操作有什麼區別?

LIKE和REGEXP運算符用於表示^和%。

1

2

SELECT * FROM employee WHERE emp_name REGEXP "^b";

SELECT * FROM employee WHERE emp_name LIKE "%b";

34.、BLOB和TEXT有什麼區別?

BLOB是一個二進位對象,可以容納可變數量的數據。有四種類型的BLOB -

TINYBLOB

BLOB

MEDIUMBLOB和

LONGBLOB

它們只能在所能容納價值的最大長度上有所不同。

TEXT是一個不區分大小寫的BLOB。四種TEXT類型

TINYTEXT

TEXT

MEDIUMTEXT和

LONGTEXT

它們對應於四種BLOB類型,並具有相同的最大長度和存儲要求。

BLOB和TEXT類型之間的唯一區別在於對BLOB值進行排序和比較時區分大小寫,對TEXT值不區分大小寫。

35、mysql_fetch_array和mysql_fetch_object的區別是什麼?

以下是mysql_fetch_array和mysql_fetch_object的區別:

mysql_fetch_array() - 將結果行作為關聯數組或來自資料庫的常規數組返回。

mysql_fetch_object - 從資料庫返回結果行作為對象。

36、我們如何在mysql中運行批處理模式?

以下命令用於在批處理模式下運行:

mysql;

mysql mysql.out

37、MyISAM表格將在哪裡存儲,並且還提供其存儲格式?

每個MyISAM表格以三種格式存儲在磁碟上:

·「.frm」文件存儲表定義

·數據文件具有「.MYD」(MYData)擴展名

索引文件具有「.MYI」(MYIndex)擴展名

38.、Mysql中有哪些不同的表格?

共有5種類型的表格:

MyISAM

Heap

Merge

INNODB

ISAM

MyISAM是Mysql的默認存儲引擎。

39、ISAM是什麼?

ISAM簡稱為索引順序訪問方法。它是由IBM開發的,用於在磁帶等輔助存儲系統上存儲和檢索數據。

40、InnoDB是什麼?

lnnoDB是一個由Oracle公司開發的Innobase Oy事務安全存儲引擎。

41、Mysql如何優化DISTINCT?

DISTINCT在所有列上轉換為GROUP BY,並與ORDER BY子句結合使用。

1

SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;

42、如何輸入字符為十六進位數字?

如果想輸入字符為十六進位數字,可以輸入帶有單引號的十六進位數字和前綴(X),或者只用(Ox)前綴輸入十六進位數字。

如果表達式上下文是字符串,則十六進位數字串將自動轉換為字符串。

43、如何顯示前50行?

在Mysql中,使用以下代碼查詢顯示前50行:

SELECT*FROM

LIMIT 0,50;

44、可以使用多少列創建索引?

任何標準表最多可以創建16個索引列。

45、NOW()和CURRENT_DATE()有什麼區別?

NOW()命令用於顯示當前年份,月份,日期,小時,分鐘和秒。

CURRENT_DATE()僅顯示當前年份,月份和日期。

46、什麼樣的對象可以使用CREATE語句創建?

以下對象是使用CREATE語句創建的:

DATABASE

EVENT

FUNCTION

INDEX

PROCEDURE

TABLE

TRIGGER

USER

VIEW

47、Mysql表中允許有多少個TRIGGERS?

在Mysql表中允許有六個觸發器,如下:

BEFORE INSERT

AFTER INSERT

BEFORE UPDATE

AFTER UPDATE

BEFORE DELETE

AFTER DELETE

48、什麼是非標準字符串類型?

以下是非標準字符串類型:

TINYTEXT

TEXT

MEDIUMTEXT

LONGTEXT

49、什麼是通用SQL函數?

CONCAT(A, B) - 連接兩個字符串值以創建單個字符串輸出。通常用於將兩個或多個欄位合併為一個欄位。

FORMAT(X, D)- 格式化數字X到D有效數字。

CURRDATE(), CURRTIME()- 返回當前日期或時間。

NOW() - 將當前日期和時間作為一個值返回。

MONTH(),DAY(),YEAR(),WEEK(),WEEKDAY() - 從日期值中提取給定數據。

HOUR(),MINUTE(),SECOND() - 從時間值中提取給定數據。

DATEDIFF(A,B) - 確定兩個日期之間的差異,通常用於計算年齡

SUBTIMES(A,B) - 確定兩次之間的差異。

FROMDAYS(INT) - 將整數天數轉換為日期值。

50、解釋訪問控制列表

ACL(訪問控制列表)是與對象關聯的權限列表。這個列表是Mysql伺服器安全模型的基礎,它有助於排除用戶無法連接的問題。

Mysql將ACL(也稱為授權表)緩存在內存中。當用戶嘗試認證或運行命令時,Mysql會按照預定的順序檢查ACL的認證信息和權限。

51、MYSQL支持事務嗎?

在預設模式下,MYSQL是autocommit模式的,所有的資料庫更新操作都會即時提交,所以在預設情況下,mysql是不支持事務的。

但是如果你的MYSQL表類型是使用InnoDB Tables 或 BDB tables的話,你的MYSQL就可以使用事務處理,使用SET AUTOCOMMIT=0就可以使MYSQL允許在非autocommit模式,在非autocommit模式下,你必須使用COMMIT來提交你的更改,或者用ROLLBACK來回滾你的更改。

示例如下:

START TRANSACTION;

SELECT @A:=SUM(salary) FROM table1 WHERE type=1;

UPDATE table2 SET summmary=@A WHERE type=1;

COMMIT;

52、 mysql裡記錄貨幣用什麼欄位類型好

NUMERIC和DECIMAL類型被Mysql實現為同樣的類型,這在SQL92標準允許。他們被用於保存值,該值的準確精度是極其重要的值,例如與金錢有關的數據。當聲明一個類是這些類型之一時,精度和規模的能被(並且通常是)指定;點擊這裡有一套最全阿里面試題總結。

例如:

salary DECIMAL(9,2)

在這個例子中,9(precision)代表將被用於存儲值的總的小數位數,而2(scale)代表將被用於存儲小數點後的位數。

因此,在這種情況下,能被存儲在salary列中的值的範圍是從-9999999.99到9999999.99。在ANSI/ISO SQL92中,句法DECIMAL(p)等價於DECIMAL(p,0)。

同樣,句法DECIMAL等價於DECIMAL(p,0),這裡實現被允許決定值p。Mysql當前不支持DECIMAL/NUMERIC數據類型的這些變種形式的任一種。

這一般說來不是一個嚴重的問題,因為這些類型的主要益處得自於明顯地控制精度和規模的能力。

DECIMAL和NUMERIC值作為字符串存儲,而不是作為二進位浮點數,以便保存那些值的小數精度。

一個字符用於值的每一位、小數點(如果scale>0)和「-」符號(對於負值)。如果scale是0,DECIMAL和NUMERIC值不包含小數點或小數部分。

DECIMAL和NUMERIC值得最大的範圍與DOUBLE一樣,但是對於一個給定的DECIMAL或NUMERIC列,實際的範圍可由制由給定列的precision或scale限制。

當這樣的列賦給了小數點後面的位超過指定scale所允許的位的值,該值根據scale四捨五入。

當一個DECIMAL或NUMERIC列被賦給了其大小超過指定(或預設的)precision和scale隱含的範圍的值,Mysql存儲表示那個範圍的相應的端點值。

我希望本文可以幫助你提升技術水平。那些,感覺學的好難,甚至會令你沮喪的人,別擔心,我認為,如果你願意試一試本文介紹的幾點,會向前邁進,克服這種感覺。這些要點也許對你不適用,但你會明確一個重要的道理:接受自己覺得受困這個事實是擺脫這個困境的第一步。

53、MYSQL數據表在什麼情況下容易損壞?

伺服器突然斷電導致數據文件損壞。

強制關機,沒有先關閉mysql 服務等。

54mysql有關權限的表都有哪幾個?

Mysql伺服器通過權限表來控制用戶對資料庫的訪問,權限表存放在mysql資料庫裡,由mysql_install_db腳本初始化。這些權限表分別user,db,table_priv,columns_priv和host。

 

55、Mysql中有哪幾種鎖?

MyISAM支持表鎖,InnoDB支持表鎖和行鎖,默認為行鎖

表級鎖:開銷小,加鎖快,不會出現死鎖。鎖定粒度大,發生鎖衝突的概率最高,並發量最低

行級鎖:開銷大,加鎖慢,會出現死鎖。鎖力度小,發生鎖衝突的概率小,並發度最高

(完)

歡迎加入Java技術知棧識星球

1,000+ 程式設計師已加入討論



點擊閱讀原文獲取更多面試題…

相關焦點

  • mysql經典面試題(2019年整理)
    mysql經典面試題(2019年整理)MySQL資料庫開發規範MYSQL如何優化?mysql經典面試題(2019年整理)mysql的sql語句優化方法面試題總結Mysql的引擎有哪些?支持事物麼?DB儲存引擎有哪些?
  • MySql面試題及答案大全
    隨著技術的進步和發展,面試官們對面試者的要求越來越高,現在只要是後端開發的職位,面試肯定會問資料庫的相關知識,而mysql作為目前最為流行的免費的關係型資料庫管理系統,肯定是很多公司面試必問的重點,今天阿偉就為大家總結一下mysql的面試題;
  • 2019 最新 200 道 Java 面試題
    ,我做了大量的「功課」,首先我研究了幾乎所有大廠的面試題,還和負責招聘工作的幾個朋友,詳細的探討了 Java 面試所要涉及的知識點,於是就有了今天大家看到的這 200 多道面試題。原因二:節省招聘雙方彼此的時間,有些來公司面試人,無論是有幾年工作經驗的還是剛畢業的,就連這些最基礎的面試題都搞不定,這確實讓人很遺憾。常言道「一屋不掃何以掃天下」,也是同樣的道理,如果連基礎的概念都搞不明白,又怎麼讓面試官相信你能寫出高質量的程序呢?與其浪費彼此的時間,還不如花點時間把自己的基礎知識掌握牢固。
  • 面試官:談談你對MySQL事務的認識?
    這篇文章屬於mysql資料庫系列,我們來談談事務方面的常見面試題。那麼,具體題目有下面這些:1、講講為什麼用事務?事務的四大特性?事務的隔離級別知道吧,你們生產用哪種?2、Innodb中ACID具體是如何實現的?3、redo log和binlog的一致性如何保證?4、大事務有哪些壞處?生產上遇到過大事務麼?你怎麼排查和解決的?
  • 去BAT,你應該要看一看的面試經驗總結
    04自己實現一些基礎的函數自己實現一些基礎的函數,例如strcpy / memcpy / memmov / atoi,同樣的道理,這些必須完全無誤且高效地寫出來,比如你的實現中會動態分配堆內存,那麼這道題目就算答錯
  • 初中級必須知道的MYSQL經典面試題
    資料庫作為一位JAVA工程師,不論你是初級程式設計師,還是中級程式設計師,高級程式設計師,MYSQL面試題是一定會問的,這個是考驗你對資料庫了解的深度和廣度。在我們平時面試過程中,那些mysql面試題是經常被問到的呢?你有哪些問題是不會的呢?
  • MySQL面試必會100道題
    >33.查詢上述語句的執行計劃(是否使用聯合索引等)34.把test表的引擎改成MyISAM35.收回oldboy用戶的select權限36.刪除oldboy用戶37.刪除oldboy資料庫38.使用mysqladmin
  • 網友面試N多家公司,孟哥幫你總結面試題,再也不怕面試了
    參考地址:https://juejin.im/post/6875244112317317128文末,孟哥給大家整理了海量的面試題。先要提前一天做一套線上筆試題,不管有沒有通過,第二天都是要去面試的。主要是項目相關的,業務上的東西問得多,具體的問題有:1,代碼優化2,mysql優化3,jvm內存模型4,spring cloud用過哪些組件 講講熔斷機制5,為什麼離開上家公司不是很難但是沒有offer,心態崩了。
  • Python 爬蟲面試題 170 道
    最近在刷面試題,所以需要看大量的 Python 相關的面試題,從大量的題目中總結了很多的知識,同時也對一些題目進行拓展了,但是在看了網上的大部分面試題都有這幾個問題:有些部分還是 Python2 的代碼回答的很簡單,關鍵的題目沒有點出為什麼
  • Java 最常見的 200+ 面試題:面試必備
    聊回面試題這件事,這份面試清單原本是我們公司內部使用的,可到後來有很多朋友在微信上聯繫到我,讓我幫他們找一些面試方面的資料,而且這些關係也不太好拒絕,一呢,是因為這些找我,要面試題的人,不是我的好朋友的弟弟妹妹,就是我的弟弟妹妹們;二呢,我也不能馬馬虎虎的對付,受人之事忠人之命,我也不能辜負這份信任。
  • BAT七年經驗,卻抵不過外企面試的兩道算法題?
    打開APP BAT七年經驗,卻抵不過外企面試的兩道算法題? 發表於 2019-01-06 10:24:32 又遇年底跳槽季,如果你曾在 BAT 等網際網路大廠有過較為豐富的工作經驗,想要換份工作,面試時會主要考慮哪些因素? 面試外企,卻被兩道算法題難住?
  • 30 道 MySQL 面試題全放送!
    說到存儲層就要說到資料庫,資料庫知識掌握程度也是面試考察的知識點。典型服務架構資料庫分為關係型資料庫和非關係型資料庫,也就是我們常說的 SQL 和 NoSQL,這兩個方向的資料庫代表產品分別是 MySQL 和 Redis ,這次我們主要以面試問答的形式,來學習下關係型資料庫 MySQL 基礎知識。
  • 2020 前端面試|第二波面試題總結
    前言哈,看樣子年後跳槽還是大家比較關心的一件事情了,繼第一波面試題匯總的反響和評論,觀看和點讚的朋友們很多,我繼續將後續面試的一些內容寫出來,有很多面試題答案我自己寫的比較含糊,但是在面試的過程中是描述的表較多的。畢竟寫文字要寫出來太多了。我也只是寫了一個大概,如果對答案不太滿意的同學可以自行查詢標準答案哈。
  • iOS 面試之道:117 道 iOS 面試題全解析
    因為這一系列的因素,促使我有強烈願望改變技術書出版流程和售賣方式,大致七八個月前道長和巧哥跟我聊到計劃從面試的角度寫一本系統的 iOS 技術書籍時候,我們一拍即合,有了今天的這次合作。好了,接下來該認真聊下今天的主角《iOS 面試之道》了。
  • leetcode 刷500道題,筆試/面試穩嗎?
    (1)、數組和相關題型對於算法題,還是有很多種題型需要去總結的,如果你懂這個題型,以後遇到類似的題,相信很快就能做出來的。有哪些題型可以總結呢?我舉上面這些例子,就是想告訴你,對於前期的學習,我建議分類刷題,總結題型,像我上面舉的這些例子,在筆試/面試中還是比較常見的,如果你懂得對應的方法,就可以秒殺了,因為這類題,沒啥邊界或者規律。
  • 樸實無華,總結200道往年BAT機器學習面試題
    刷題,是面試前的必備環節。本文作者總結了往年BAT機器學習面試題,乾貨滿滿,值得收藏。想要入職大廠可謂是千軍萬馬過獨木橋。為了通過層層考驗,刷題肯定是必不可少的。本文作者根據網絡在線發布的BAT機器學習面試1000題系列,整理了一份面試刷題寶典。1.請簡要介紹下SVM。
  • 無領導面試的總結髮言_廣東公務員面試真題1000道詳解
    無領導面試的總結髮言_廣東公務員面試真題1000道詳解由廣東公務員考試網考試快訊欄目由提供,更多關於廣東省考無領導小組面試,廣東公務員考試快訊的內容,請關注廣東公務員考試頻道/廣東公務員考試網!
  • Python 爬蟲面試題 170 道:2019 版
    引言最近在刷面試題,所以需要看大量的 Python 相關的面試題,從大量的題目中總結了很多的知識,同時也對一些題目進行拓展了,但是在看了網上的大部分面試題不是很滿意。一個是有些部分還是 Python2 的代碼,另一個就是回答的很簡單,有些關鍵的題目,也沒有點出為什麼,最重要的是還有一些複製粘貼根本就跑不通,這種相信大家深有體會吧,這樣就導致我們可能需要去找其他人發的類似的教程。
  • 這道面試題,出錯率90%
    大多數公司針對初級、中級都會有筆試的這個環節,甚至很多高級面試也存在筆試環節。對於筆試大家千萬不要掉以輕心,筆試題做不好,很有可能面試就黃了或者隨便找個面試官應付一下就可以回去等通知了。今天我們分享的這個面試題,出現的頻率是相當高。
  • 青島公務員面試這道題太簡單 考生們卻集體「蒙」了
    公務員面試出現一道完全開放題目,讓考生們十分意外。18日上午,青島市公務員招考面試在青島衛校舉行,2455人進入最終面試名單,將在3天的時間裡進行崗位的角逐。與往年相同的是,今年公考面試仍然沒有是非題,多數題目都是談自己的觀點和抉擇。