Mysql數據庫軟件是一個客戶端或服務器系統,其中包括:支持各種客戶端程序和庫的多線程SQL服務器、不同的後端、廣泛的應用程序編程接口和管理工具。
3、Heap表是什麼?HEAP表存在於內存中,用於臨時高速存儲。
- BLOB或TEXT字段是不允許的
- 只能使用比較運算符=,,=>,= <
- HEAP表不支持AUTO_INCREMENT
- 索引不可為NULL
Mysql服務器的默認端口是3306。
5、與Oracle相比,Mysql有什麼優勢?- Mysql是開源軟件,隨時可用,無需付費。
- Mysql是便攜式的
- 帶有命令提示符的GUI。
- 使用Mysql查詢瀏覽器支持管理
以下是FLOAT和DOUBLE的區別:
- 浮點數以8位精度存儲在FLOAT中,並且有四個字節。
- 浮點數存儲在DOUBLE中,精度為18位,有八個字節。
CHAR_LENGTH是字符數,而LENGTH是字節數。Latin字符的這兩個數據是相同的,但是對於Unicode和其他編碼,它們是不同的。
8、請簡潔描述Mysql中InnoDB支持的四種事務隔離級別名稱,以及逐級之間的區別?SQL標準定義的四個隔離級別為:
- read uncommited :讀到未提交數據
- read committed:髒讀,不可重複讀
- repeatable read:可重讀
- serializable :串行事物
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
SELECT VERSION();用於獲取當前Mysql的版本。
14、Mysql中使用什麼存儲引擎?存儲引擎稱為表類型,數據使用各種技術存儲在文件中。
技術涉及:
- Storage mechanism
- Locking levels
- Indexing
- Capabilities and functions.
以下是Mysql中可用的驅動程序:
- PHP驅動程序
- JDBC驅動程序
- ODBC驅動程序
- CWRAPPER
- PYTHON驅動程序
- PERL驅動程序
- RUBY驅動程序
- CAP11PHP驅動程序
- Ado.net5.mxj
創建表時TIMESTAMP列用Zero更新。只要表中的其他字段發生更改,UPDATE CURRENT_TIMESTAMP修飾符就將時間戳字段更新為當前時間。
17、主鍵和候選鍵有什麼區別?表格的每一行都由主鍵唯一標識,一個表只有一個主鍵。
主鍵也是候選鍵。按照慣例,候選鍵可以被指定為主鍵,並且可以用於任何外鍵引用。
18、如何使用Unix shell登錄Mysql?我們可以通過以下命令登錄:
# [mysql dir]/bin/mysql -h hostname -u <username> -p <password>/<username>
19、 myisamchk是用來做什麼的?它用來壓縮MyISAM表,這減少了磁盤或內存使用。
20、MYSQL數據庫服務器性能分析的方法命令有哪些?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>;/<tablename>
28.、LIKE聲明中的%和_是什麼意思?%對應於0個或更多字符,_只是LIKE語句中的一個字符。
29、如何在Unix和Mysql時間戳之間進行轉換?- UNIX_TIMESTAMP是從Mysql時間戳轉換為Unix時間戳的命令
- FROM_UNIXTIME是從Unix時間戳轉換為Mysql時間戳的命令
在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
在Mysql表中允許有六個觸發器,如下:
- BEFORE INSERT
- AFTER INSERT
- BEFORE UPDATE
- AFTER UPDATE
- BEFORE DELETE
- AFTER DELETE
以下是非標準字符串類型:
- TINYTEXT
- TEXT
- MEDIUMTEXT
- LONGTEXT
- 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) - 將整數天數轉換為日期值。
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 服務等。
54、mysql有關權限的表都有哪幾個?
Mysql服務器通過權限表來控制用戶對數據庫的訪問,權限表存放在mysql數據庫裡,由mysql_install_db腳本初始化。這些權限表分別user,db,table_priv,columns_priv和host。
55、Mysql中有哪幾種鎖?- MyISAM支持表鎖,InnoDB支持表鎖和行鎖,默認為行鎖
- 表級鎖:開銷小,加鎖快,不會出現死鎖。鎖定粒度大,發生鎖衝突的概率最高,併發量最低
- 行級鎖:開銷大,加鎖慢,會出現死鎖。鎖力度小,發生鎖衝突的概率小,併發度最高
閱讀更多 優就業浙江IT培訓 的文章