大數(shù)據(jù)培訓(xùn)之求職11個高級MySQL數(shù)據(jù)庫面試問題和答案
2018-04-19 13:17:23
2311瀏覽
扣丁學(xué)堂大數(shù)據(jù)視頻教程課程內(nèi)容從入門到SQL概念開始,在MySQL數(shù)據(jù)庫中學(xué)習(xí)并實(shí)踐了SQL常用語法及約束、索引、視圖、SELECT查詢、修改與刪除等基本操作,大數(shù)據(jù)求職之11個高級MySQL數(shù)據(jù)庫面試問題和答案介紹。
1.如何使用SELECT語句找到你正在運(yùn)行的服務(wù)器的版本并打印出當(dāng)前數(shù)據(jù)庫的名稱?
答:下面的語句的結(jié)果會顯示服務(wù)器的版本和當(dāng)前的數(shù)據(jù)庫名稱
mysql>SELECTVERSION(),DATABASE();
+-------------------------+------------+
|VERSION()|DATABASE()|
+-------------------------+------------+
|5.5.34-0ubuntu0.13.10.1|NULL|
+-------------------------+------------+
1rowinset(0.06sec)
在Database一列中顯示NULL是因?yàn)槲覀儺?dāng)前沒有選擇任何數(shù)據(jù)庫。因此,使用下面的語句先選擇一個數(shù)據(jù)庫,就能看到相應(yīng)的結(jié)果。
mysql>useTecmint;
Readingtableinformationforcompletionoftableandcolumnnames
Youcanturnoffthisfeaturetogetaquickerstartupwith-A
Databasechanged
mysql>selectVERSION(),DATABASE();
+-------------------------+------------+
|VERSION()|DATABASE()|
+-------------------------+------------+
|5.5.34-0ubuntu0.13.10.1|tecmint|
+-------------------------+------------+
1rowinset(0.00sec)
2.使用非運(yùn)算符(!)從表”Tecmint”中列出除了”SAM”以外的所有user記錄
答:使用下面的語句
mysql>SELECT*FROMTecmintWHEREuser!=SAM;
+---------------------+---------+---------+---------+---------+-------+
|date|user|host|root|local|size|
+---------------------+---------+---------+---------+---------+-------+
|2001-05-1414:42:21|Anthony|venus|barb|venus|98151|
|2001-05-1508:50:57|TIM|venus|phil|venus|978|
+---------------------+---------+---------+---------+---------+-------+
3.‘AND’運(yùn)算符有可能帶著非運(yùn)算符(!)一起用嗎?
答:當(dāng)我們使用‘=’號時用‘AND’連接,用‘!=’時用‘OR’連接,下面是‘=’和AND運(yùn)算符一起用的例子
mysql>SELECT*FROMmailWHEREuser=SAMANDroot=phil
‘!=’和OR運(yùn)算符的例子
mysql>SELECT*FROMmailWHEREuser!=SAMORroot!=phil
+---------------------+---------+---------+---------+---------+-------+
|date|user|host|root|local|size|
+---------------------+---------+---------+---------+---------+-------+
|2001-05-1414:42:21|Anthony|venus|barb|venus|98151|
+---------------------+---------+---------+---------+---------+-------+
=:等于
!=:不等于
!:代表“非”的運(yùn)算符
AND和OR在MySQL中被看作連接運(yùn)算符
4.IFNULL()當(dāng)打在MySQL中有什么作用?
答:使用IFNULL()方法能使MySQL中的查詢更加精確。IFNULL()方法將會測試它的第一個參數(shù),若不為NULL則返回該參數(shù)的值,否則返回第二個參數(shù)的值
mysql>SELECTname,IFNULL(id,'Unknown')AS'id'FROMtaxpayer;
+---------+---------+
|name|id|
+---------+---------+
|bernina|198-48|
|bertha|Unknown|
|ben|Unknown|
|bill|475-83|
+---------+---------+
5.如果你只想知道從一個結(jié)果集的開頭或者結(jié)尾開始的特定幾條記錄,該如何實(shí)現(xiàn)?
答:我們需要把LIMIT語句接在ORDERBY語句后使用,以達(dá)到上述效果。
顯示一行記錄
mysql>SELECT*FROMnameLIMIT1;
+----+------+------------+-------+----------------------+------+
|id|name|birth|color|foods|cats|
+----+------+------------+-------+----------------------+------+
|1|Fred|1970-04-13|black|lutefisk,fadge,pizza|0|
+----+------+------------+-------+----------------------+------+
顯示5行記錄
mysql>SELECT*FROMprofileLIMIT5;
+----+------+------------+-------+-----------------------+------+
|id|name|birth|color|foods|cats|
+----+------+------------+-------+-----------------------+------+
|1|Fred|1970-04-13|black|lutefisk,fadge,pizza|0|
|2|Mort|1969-09-30|white|burrito,curry,eggroll|3|
|3|Brit|1957-12-01|red|burrito,curry,pizza|1|
|4|Carl|1973-11-02|red|eggroll,pizza|4|
|5|Sean|1963-07-04|blue|burrito,curry|5|
+----+------+------------+-------+-----------------------+------+
顯示按照ORDERBY排序后的第一條記錄
mysql>SELECT*FROMprofileORDERBYbirthLIMIT1;
+----+------+------------+-------+----------------+------+
|id|name|birth|color|foods|cats|
+----+------+------------+-------+----------------+------+
|9|Dick|1952-08-20|green|lutefisk,fadge|0|
+----+------+------------+-------+----------------+------+
6.Oracle和MySQL該如何選擇,為什么?
答:它們都有各自的優(yōu)點(diǎn)和缺點(diǎn)??紤]到時間因素,我傾向于MySQL。
選擇MySQL而不選orcale的原因
MySQL開源
MySQL輕便快捷
MySQL對命令行和圖形界面的支持都很好
MySQL支持通過QueryBrowser進(jìn)行管理
7.MySQL中如何得到當(dāng)前日期?
答:在MySQL中獲取當(dāng)前日期就是如下的SELECT語句這么簡單。
mysql>SELECTCURRENT_DATE();
+----------------+
|CURRENT_DATE()|
+----------------+
|2014-06-17|
+----------------+
8.MySQL中如何將表導(dǎo)出為XML文件?
答:我們可以使用’-e’(export)選項(xiàng)來把MySQL表或整個數(shù)據(jù)庫導(dǎo)出到XML文件。當(dāng)處理大型表的時候我們可能需要手動導(dǎo)出,不過對于小表的話可以直接使用想phpMyAdmin等這樣的工具。
mysql-uUSER_NAME-xml-e'SELECT*FROMtable_name'>table_name.xml
上面的例子中USER_NAME是數(shù)據(jù)庫的用戶名,table_name是待導(dǎo)出為xml文件的表名,table_name.xml是存放數(shù)據(jù)的xml文件
9.MySQL_pconnect是什么?它和MySQL_connect有什么區(qū)別?
答:MySQL_pconnect()打開一個持久的數(shù)據(jù)庫連接,這意味著數(shù)據(jù)庫不是在每次頁面加載的時候被打開一個新連接,因此我們不能使用MySQL_close()來關(guān)閉一個持久的連接。
MySQL_pconnect和MySQL_connect最簡要的區(qū)別是:
與MySQL_pconnect不同,MySQL_connect在每次頁面被加載的時候打開連接,這個連接可以使用MySQL_close()語句來關(guān)閉。
10.當(dāng)你需要查看一個名為’mysql’的數(shù)據(jù)庫中’user’表中的所有索引時,你會如何做?
答:下面的命令將會顯示出‘user’表中所有的索引
mysql>showindexfromuser;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
|Table|Non_unique|Key_name|Seq_in_index|Column_name|Collation|Cardinality|Sub_part|Packed|Null|Index_type|Comment|Index_comment|
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
|user|0|PRIMARY|1|Host|A|NULL|NULL|NULL||BTREE|||
|user|0|PRIMARY|2|User|A|4|NULL|NULL||BTREE|||
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
2rowsinset(0.00sec)
11.什么是CSV表?
答:CSV是逗號分隔值(Comma-SeparatedValues)或也被稱為字符分隔值(Character-SeparatedValues)的縮寫。CSV表以純文本和表格形式來存儲數(shù)據(jù)。
每一條記錄都使用特定的分隔符隔開(如逗號,分號,…),并且每條記錄都有著順序相同的列。CSV表最廣泛地被用來存儲用于導(dǎo)入和導(dǎo)出的電話聯(lián)系人,并能夠用來存儲任何類型的純文本數(shù)據(jù)。
最后想要了解更多關(guān)于大數(shù)據(jù)體系課程,請關(guān)注扣丁學(xué)堂大數(shù)據(jù)培訓(xùn)官網(wǎng)、微信等平臺,扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育平臺為您提供權(quán)威的大數(shù)據(jù)視頻教程系統(tǒng),通過千鋒旗下金牌講師在線錄制的大數(shù)據(jù)視頻教程系統(tǒng),讓你快速掌握大數(shù)據(jù)從入門到精通大數(shù)據(jù)開發(fā)實(shí)戰(zhàn)技能??鄱W(xué)堂大數(shù)據(jù)學(xué)習(xí)群:209080834。
【關(guān)注微信公眾號獲取更多學(xué)習(xí)資料】
查看更多關(guān)于“大數(shù)據(jù)培訓(xùn)資訊”的相關(guān)文章>>
標(biāo)簽:
大數(shù)據(jù)分析
大數(shù)據(jù)培訓(xùn)
大數(shù)據(jù)視頻教程
Hadoop視頻教程
大數(shù)據(jù)開發(fā)工程師
大數(shù)據(jù)在線視頻