Java知識分享網 - 輕松學習從此開始!????

Java知識分享網

Java1234官方群24:java1234官方群24
Java1234官方群24:791563025
     

Mycat實現mysql高可用集群視頻教程免費領取

畢設代做,包查重聯系人QQ:1982956321畢設大神

領取國內優秀就業,加薪,跳槽項目課程源碼-vue2+jwt+springboot+mybaits前后端分離通訊錄系統課程

SpringBoot打造企業級進銷存

Java1234 VIP課程

領取微信掃碼登錄Java實現視頻教程

Java1234至尊VIP(特價活動)

MySQL常見筆試題附答案 PDF 下載


分享到:
時間:2020-03-29 20:38來源:http://www.luygg.com 作者:小鋒  侵權舉報
MySQL常見筆試題附答案 PDF 下載
失效鏈接處理
MySQL常見筆試題附答案 PDF 下載

下載地址:

鏈接:https://pan.baidu.com/s/1W_HRBr8EXYAMagaUjEP-4w 
提取碼:udms

相關截圖:


主要內容:
1、一張表,里面有 ID 自增主鍵,當 insert 了 17 條記錄之后,刪除了第 15,16,17 條記錄,
再把 Mysql 重啟,再 insert 一條記錄,這條記錄的 ID 是 18 還是 15 ?
(1)如果表的類型是 MyISAM,那么是 18
因為 MyISAM 表會把自增主鍵的最大 ID 記錄到數據文件里,重啟 MySQL 自增主鍵的最大
ID 也不會丟失
(2)如果表的類型是 InnoDB,那么是 15
InnoDB 表只是把自增主鍵的最大 ID 記錄到內存中,所以重啟數據庫或者是對表進行
OPTIMIZE 操作,都會導致最大 ID 丟失
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 的區別:
浮點數以 8 位精度存儲在 FLOAT 中,并且有四個字節。
浮點數存儲在 DOUBLE 中,精度為 18 位,有八個字節。
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 和 VARCHAR 類型在存儲和檢索方面有所不同
CHAR 列長度固定為創建表時聲明的長度,長度值范圍是 1 到 255
當 CHAR 值被存儲時,它們被用空格填充到特定長度,檢索 CHAR 值時需刪除尾隨空格。
12、列的字符串類型可以是什么?
字符串類型是:
SET
BLOB
ENUM
CHAR
TEXT
VARCHAR
13、如何獲取當前的 Mysql 版本?
SELECT VERSION();用于獲取當前 Mysql 的版本。
14、Mysql 中使用什么存儲引擎?
存儲引擎稱為表類型,數據使用各種技術存儲在文件中。
技術涉及:
Storage mechanism
Locking levels
Indexing
Capabilities and functions.
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
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
28.、LIKE 聲明中的%和_是什么意思?
%對應于 0 個或更多字符,_只是 LIKE 語句中的一個字符。
29、如何在 Unix 和 Mysql 時間戳之間進行轉換?
UNIX_TIMESTAMP 是從 Mysql 時間戳轉換為 Unix 時間戳的命令
FROM_UNIXTIME 是從 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 運算符用于表示^和%。
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 [email protected] 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 服務等。
54、mysql 有關權限的表都有哪幾個?
Mysql 服務器通過權限表來控制用戶對數據庫的訪問,權限表存放在 mysql 數據庫里,由
mysql_install_db 腳本初始化。這些權限表分別 user,db,table_priv,columns_priv 和
host。
55、Mysql 中有哪幾種鎖?
MyISAM 支持表鎖,InnoDB 支持表鎖和行鎖,默認為行鎖
表級鎖:開銷小,加鎖快,不會出現死鎖。鎖定粒度大,發生鎖沖突的概率最高,并發量
最低
行級鎖:開銷大,加鎖慢,會出現死鎖。鎖力度小,發生鎖沖突的概率小,并發度最高
 

------分隔線----------------------------
鋒哥公眾號


鋒哥微信號


日本色在线