1.如何區分FLOAT和DOUBLE?
區別:浮點數以8位精度存儲在FLOAT中,並且有四個字節。浮點數存儲在DOUBLE中,精度為18位,有八個字節。
2.怎么.區分CHAR_LENGTH和LENTH?
:CHAR_LENGTH是字符數,而LENGTH是字節數,Latin字符的這兩個數據是相同的,但是對於Unicode和其他編碼,他們是不同的。
3.請簡介描述Mysql和InnoDB支持的四種事物隔離級別名稱,以及逐級之間的區別?
SQL標准定義的四個隔離級別為:
read uncommited:讀到未提交數據
read commited 臟讀,不可重復讀
repeatable read:可重復讀
serializable :串行事物
4.在Mysql中ENUM的用法是什么?
ENUM是一個字符串對象,用於指定一組預定義的值,並可在創建表時使用。
Create table size(name ENUM('Smail,Medium','Large'));
5.如何定義REGEXP?
REGEXP是模式匹配,其中匹配模式在搜索值的任何位置。
6.CHAR和VARCHAR的區別?
一下是CHAR和VARCHAR的區別:
CHAR和VARCHAR類型在存儲和檢索方面有所不同,
CHAR列長度固定為創建表時聲明的長度,長度值范圍是1-255
當CHAR值被存儲時,他們被用空格填充到特定長度,檢索char值是需要刪除尾隨空格。
7.列的字符串類型可以是什么?
字符串類型是:
SET,BLOB,ENUM,CHAR,TEXT,VARCHAR
8.如何獲取當前的Mysql版本?
Select VERSION();用於獲取當前Mysql的版本。
9.Mysql中使用什么存儲引擎?
存儲引擎稱為表類型,數據使用各種技術存儲在文件中。
技術設計:
Storage mechanism
Locking levels
Indexing
Capabilities and functions
10.Mysql驅動程序是什么?
以下是 Mysql 中可用的驅動程序:
PHP 驅動程序
JDBC 驅動程序
ODBC 驅動程序
CWRAPPER
PYTHON 驅動程序
PERL 驅動程序
RUBY 驅動程序
CAP11PHP 驅動程序
Ado.net5.mxj
11.TIMESTAMP在UPDATE CURRENT_TIMESTAMP數據類型上做什么?
創建表時TIMESTAMP列同Zero更新。只要表中的其他字段發送更改,UPDATE CURRENT_TIMESTAMP修飾符就
將時間戳字段更新為當前時間。
12.主鍵和候選鍵有什么區別?
表格的每一行都由主鍵唯一表示,一個表只有一個主鍵。
主鍵也是候選鍵。按照慣例,候選鍵可以被指定為主鍵,並且可以用於任何外鍵引用。
13.如何使用Unix shell 登陸Mysql?
我們可以通過以下命令登陸:
[mysql dir]/bin/mysql -h hostname -u
14.myisamchk是用來做什么的?
它是用來壓縮MyISAM表,這減少了磁盤或內存使用。
15.Mysql數據庫服務器性能分析的方法命令有哪些?
:https://www.cnblogs.com/jackchen001/p/6964411.html (博客詳解)
16.如何控制HEAP表的最大尺寸?
:Heap表的大小可以通過稱為max_heap_table_size的Msql配置變量來控制。
17.MyISAM Static 和MyISAM Dynamic有什么區別?
在MyISAM Static上的所有字段有固定寬帶、動態MyISAM表將具有像TEXT,BLOB等字段,
以適應不同長度的數據類型。MyISAM Static 在受損情況下更容易恢復。
18.federated表是什么?
federated表,允許訪問位於其他服務器數據庫上的表。
19.如果一個表有一列定義為TIMESTAMP,將發生什么?
每當行被更改時,時間戳字段將獲取當前時間戳。
20.列設置為AUTO INCREMENT時,如果在表中達到最大值,會發生什么情況?
:它會停止遞增,任何進一步插入都將產生錯誤,因為密鑰已經被使用。
21.怎樣才能找出最好一次插入時分配了那字自動遞增量?
:LAST_INSERT_ID將返回由Auto_increment分配的最后一個值,並且不需要知道表名稱。
22.你怎么看到為表格定義的所有索引?
:索引是通過以下方式為表定義的:SHOW INDEX FROM
23.LIKE聲明中的%和_是什么意思?
:%對應於0個或者多個字符,_值是like語句中的一個字符。
24.如何在Unix和Mysql時間戳之間進行轉換?
:UNIX_TIMESTAMP是從Mysql時間戳轉換為Unix時間戳的命令,
FROM_UNIXTIME是從unix時間戳轉換為Mysql時間戳的命令。
25.;列對比運算符是什么?
:在 SELECT 語句的列比較中使用=, <>, <=, <, > =, >, <<, >>, <=>, AND, OR 或 LIKE 運
算符。
26.我們如何得到受查詢影響的行數?
行數可以通過以下代碼獲得:
select count(user_id)from users;
27.Mysql查詢是否區分大小寫?
不區分
SELECT VERSION(), CURRENT_DATE;
SeLect version(), current_date;
seleCt vErSiOn(), current_DATE;
所有這些例子都是一樣的, Mysql 不區分大小寫。
28.LIKE和REGEXP操作有什么區別?
Like和REGEXP操作用於表示^和%。
SELECT * FROM employee WHERE emp_name REGEXP "^b";
SELECT * FROM employee WHERE emp_name LIKE "%b";
29.BLOB和TEXT有什么區別?
BLOB是一個二進制對象,可以容納可變數量的數據,有四種類型的
BLOB-TINYBLOB BLOB MEDIUMBLOB和LONGBLOB
它們總股本部分在所能容納價值的最大長度上有所不同。
TEXT是一個不區分大小寫的BLOB,四種TEXT類型
TINYTEXT
TEXT
MEDIUMTEXT 和
LONGTEXT
它們對應於四種 BLOB 類型,並具有相同的最大長度和存儲要求。
BLOB 和 TEXT 類型之間的唯一區別在於對 BLOB 值進行排序和比較時區分大小寫,對 TEXT
值不區分大小寫。
30.我們如何在mysql中運行批處理模式?
以下命令用於在批處理模式下運行:
Msql;Msql Mysql.out
31.MyISAM表格將在哪里存儲,並且還提高其存儲格式?
每個MyISAM表格以三種表格式存儲在磁盤上:
“.frm”文件存儲表定義,數據文件具有“.MYD”(MYData)擴展名,索引文件具有“.MYI”(MYIndex)擴展名
32.Mysql中有哪些不同的表格?
共有5種類型的表格:
MyISAM Heap Merge INNODB,ISAM,MyISAM是默認存儲引擎。
33.ISAM是什么?
:ISAM簡稱為索引順序訪問方法。它是由IBM開發的,用於在磁盤等輔助存儲系統上存儲和檢索數據。
34.InnoDB是什么?
InnoDB是一個由Oracle公司開發的Innobase Oy事物安全存儲引擎。
35.Mysql如何優化DISTINCT?
DISTINCT在所有列上轉換為GROUP BY,並與ORDER BY子句結合使用。
SELECT DISTINCT t1.a FROM t1,t2 where t1.a=t2.a;
36.如何輸入字符為十六進制數據?
:如果想輸入字符為十六進制數字,可以輸入帶有單引號的十六進制數據和前綴(X),或者只有(Ox)前綴輸入十六
進制數字。
如果表達式上下文是字符串,則十六進制數據串將自動轉換為字符串。
37.如何顯示前50行?
在Mysql中,使用以下代碼查詢顯示前50行:
select * from limit 0,50;
38.可以使用多少列創建索引?
任何標准表最大可以創建16個索引列。
39.NOW()和CURRENT_DATE()有什么區別?
NOW()命令用於顯示當前年份,月份,日期,小時,分鍾和秒。
CURRENT_DATE()僅顯示當前年份,月份,日期。
40.什么樣的對象是使用CREATE語句創建的:
DATABASE-(數據庫),EVENT-(事物),FUNCTION-(函數),INDEX(索引),
PROCEDURE-(存儲過程),TABLE(表) TRIGGER(觸發器),
USER(用戶),VIEW-(視圖)
41.Mysql表中允許有多少個TRIGGERS?
在Mysql表中允許有留個觸發器,如下:
BEFORE INSERT
AFTER INSERT
BEFORE UPDATE
AFTER UPDATE
BEFORE DELETE
AFTER DELETE
42.什么是非標標准字符串類型?
TINYTEXT,TEXT,MEDIUMTEXT,LONGTEXT
43.什么是通用SQL函數?
CONCAT(a,b)-連接兩個字符串值以創建單個字符串輸出。通常用於將兩個或者多個字段合並為一個字段。
FORMAT(X,D)-格式化數字X到D有效數字。
CURRDATE(),CURRTIME()-返回當前日期或時間。
NOW()-將當前日期和時間作為一個值返回。
MONTH().DAY(),YEAR(),WEEK(),WEEKDAT(),從日期值中提取給定數據。
HOUR(),MINUTE(),SECOND()-從時間值中提取給定數據。
DATEDIFF(A,B)-確定兩個日期之間的差異,一般用於計算年齡
SUNTIMES(A,B)-確定兩次之間的差異。
FROMDAYS(INT)-將整數天數轉換為日期值。
44.解釋訪問控制列表
ACL(訪問控制列表) 是與對象關聯的權限列表。這個列表是Mysql服務器安全模型的基礎,它有助於排除童虎無法連接的問題。
Mysql將ACL(也稱授權表)緩存在內存中,當用戶嘗試認證或運行命令時,Mysql會按照預定的順序檢查ACL的認證信息和權限。
45.Mysql支持事物嗎?
在缺省模式下,Mysql是autocommit模式的,所有的數據庫更新操作都會及時提交,所以在缺省情況下,Mysql是不支持事物的。
但是如果你的Mysql表類型是使用InnoDB Tables或 BDB tables的話,你的Mysql就可以使用事物出來,使用SET AUTOCOMMIT=0就可以使用Mysql允許在非autocommit模式,在非自動提交模式下,你必須使用Commit來提交你的更改,或者使用ROLLBACK來回滾你得更改。
實例:START TRANSACTION;
SELECT @A:=SUM(salary) FROM table1 WHERE type=1;
UPDATE table2 SET summmary=@A WHERE type=1;
COMMIT;
46.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 存儲表示那個范圍的相應的端點值。
我希望本文可以幫助你提升技術水平。那些,感覺學的好難,甚至會令你沮喪的人,別擔
心,我認為,如果你願意試一試本文介紹的幾點,會向前邁進,克服這種感覺。這些要點
也許對你不適用,但你會明確一個重要的道理:接受自己覺得受困這個事實是擺脫這個困
境的第一步。
