版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)庫程序員面試分類真題24簡答題1.
如何確定MySQL是否處于運(yùn)行狀態(tài)?如何開啟MySQL服務(wù)?正確答案:分為Linux和Windows來討論。
1)在Linux下啟動(dòng)MySQL服務(wù):(江南博哥)
在Linux下,也可以通過“netstat-nip|grepmysqld”來查看MySQL服務(wù)的狀態(tài):
[root@testdb/]#netstat
-nlp|grepmysqld
tcp
0
0:::3306
:::*
LISTEN
13853/mysqld
unix2
[ACC]
STREAM
LISTENING
38511
13853/mysqld
/var/lib/mysq157/mysql.sock
也可以使用mysqld_safe命令啟動(dòng)MySQL數(shù)據(jù)庫,通過mysqladmin來關(guān)閉MySQL數(shù)據(jù)庫:
在數(shù)據(jù)庫啟動(dòng)的時(shí)候可以加上從指定參數(shù)文件進(jìn)行啟動(dòng),如下:
mysqld_safe--defaults-file=/etc/f&
2)在Windows下啟動(dòng)MySQL服務(wù):
D:\MySQL\MySQL-advanced-5.6.21-win32\bin>netstartmysql
MySQL服務(wù)正在啟動(dòng)...
MySQL服務(wù)已經(jīng)啟動(dòng)成功。
進(jìn)入Windows的服務(wù)可以看到:
[考點(diǎn)]啟動(dòng)
2.
創(chuàng)建GBK字符集的數(shù)據(jù)庫NEWLHR,并查看已建庫的完整語句。正確答案:[考點(diǎn)]創(chuàng)建數(shù)據(jù)庫
3.
如何查看當(dāng)前數(shù)據(jù)庫里有哪些用戶?正確答案:可以通過查詢mysql.user表來查詢數(shù)據(jù)庫的用戶。[考點(diǎn)]創(chuàng)建數(shù)據(jù)庫
4.
如何查看數(shù)據(jù)庫的版本、當(dāng)前登錄用戶和當(dāng)前的數(shù)據(jù)庫名稱?正確答案:通過VERSION()函數(shù)可以查詢版本,通過USER()函數(shù)可以查詢當(dāng)前登錄數(shù)據(jù)庫的用戶,通過DATABASE()函數(shù)可以獲取當(dāng)前連接的數(shù)據(jù)庫名稱,如下:
[考點(diǎn)]創(chuàng)建數(shù)據(jù)庫
5.
如何連接到MySQL數(shù)據(jù)庫?正確答案:連接到MySQL數(shù)據(jù)庫有多種寫法,假設(shè)MySQL服務(wù)器的地址為30,可以通過如下幾種方式來連接MySQL數(shù)據(jù)庫:
1)mysql-p。
2)mysql-uroot-p。
3)mysql-uroot-h30-p。[考點(diǎn)]連接數(shù)據(jù)庫
6.
哪個(gè)命令可以查看所有數(shù)據(jù)庫?正確答案:運(yùn)行命令:showdatabases;。[考點(diǎn)]連接數(shù)據(jù)庫
7.
如何切換到某個(gè)特定的數(shù)據(jù)庫?正確答案:運(yùn)行命令:usedatabase_name;。[考點(diǎn)]連接數(shù)據(jù)庫
8.
列出數(shù)據(jù)庫內(nèi)所有的表。正確答案:在當(dāng)前數(shù)據(jù)庫運(yùn)行命令:showtables;。[考點(diǎn)]連接數(shù)據(jù)庫
9.
在MySQL中,VARCHAR與CHAR的區(qū)別是什么?VARCHAR(50)中的50代表的含義是什么?正確答案:CHAR是一種固定長度的類型,VARCHAR則是一種可變長度的類型。
CHAR列的長度固定為創(chuàng)建表時(shí)聲明的長度。長度可以為0~255的任何值。當(dāng)保存CHAR值時(shí),在它們的右邊填充空格以達(dá)到指定的長度。當(dāng)檢索到CHAR值時(shí),尾部的空格被刪除掉。在存儲(chǔ)或檢索過程中不進(jìn)行大小寫轉(zhuǎn)換。
VARCHAR列中的值為可變長字符串。長度可以指定為0~65535之間的值。VARCHAR的最大有效長度由最大行大d,~ll使用的字符集確定。在MySQL4.1之前的版本,VARCHAR(50)的“50”指的是50字節(jié)(Byte)。如果存放UTF8漢字時(shí),那么最多只能存放16個(gè)(每個(gè)漢字3字節(jié))。從MySQL4.1版本開始,VARCHAR(50)的“50”指的是50字符(Character),無論存放的是數(shù)字、字母還是UTF8漢字(每個(gè)漢字3字節(jié)),都可以存放50個(gè)。
CHAR和VARCHAR類型聲明的長度表示保存的最大字符數(shù)。例如,CHAR(30)可以占用30個(gè)字符。對(duì)于MyISAM表,推薦CHAR類型;對(duì)于InnoDB表,推薦VARCHAR類型。另外,在進(jìn)行檢索的時(shí)候,若列值的尾部含有空格,則CHAR列會(huì)刪除其尾部的空格,而VARCHAR則會(huì)保留空格。[考點(diǎn)]數(shù)據(jù)類型
10.
MySQL中運(yùn)算符“<=>”的作用是什么?正確答案:比較運(yùn)算符“<=>”表示安全的等于,這個(gè)運(yùn)算符和“=”類似,都執(zhí)行相同的比較操作,不過“<=>”可以用來判斷NULL值,在兩個(gè)操作數(shù)均為NULL時(shí),其返回值為1而不為NULL,而當(dāng)一個(gè)操作數(shù)為NULL時(shí),其返回值為0而不為NULL。示例如下:
[考點(diǎn)]數(shù)據(jù)類型
11.
MySQL數(shù)據(jù)類型有哪些屬性?正確答案:數(shù)據(jù)類型的屬性包括auto_increment、binary、default、index、notnull、null、primarykey、unique和zerofill,具體見下表。屬性列auto_increment1)auto_increment能為新插入的行賦予一個(gè)唯一的整數(shù)標(biāo)識(shí)符,該屬性只用于整數(shù)類型2)auto_increment一般從1開始,每行增加1??梢酝ㄟ^“ALTERTABLETB_NAMEAUTO_INCREMENT=n;”語句強(qiáng)制設(shè)置自動(dòng)增長列的初始值,但是該強(qiáng)制的默認(rèn)值是保留在內(nèi)存中的。如果該值在使用之前數(shù)據(jù)庫重新啟動(dòng),那么這個(gè)強(qiáng)制的默認(rèn)值就會(huì)丟失,需要在數(shù)據(jù)庫啟動(dòng)以后重新設(shè)置3)可以使用LAST_INSERT_ID()查洵當(dāng)前線程最后插入記錄使用的值。如果一次插入了多條記錄,那么返回的是第一條記錄使用的自動(dòng)增長值4)MySQL要求將auto_increment屬性用于作為主鍵的列5)每個(gè)表只允許有一個(gè)auto_increment列6)自動(dòng)增長列可以手工插入,但是插入的值如果是空或者0,那么實(shí)際插入的將是自動(dòng)增長后的值7)對(duì)于InnoDB表,自動(dòng)增長列必須是索引。如果是組合索引,也必須是組合索引的第一列,但是對(duì)于MylSAM表,自動(dòng)增長列可以是組合索引的其他列,這樣插入記錄后,自動(dòng)增長列是按照組合索引的前幾列進(jìn)行排序后遞增的binarybinary屬性只用于CHAR和VARCHAR值。當(dāng)為列指定了該屬性時(shí),將以區(qū)分大小寫的方式排序和比較defaultdefault屬性確保在沒有任何值可用的情況下,賦予某個(gè)常量值,這個(gè)值必須是常量,因?yàn)镸ySQL不允許插入函數(shù)或表達(dá)式值。此外,此屬性無法用于BLOB或TEXT列。如果已經(jīng)為此列指定了NULL屬性,那么當(dāng)沒有指定默認(rèn)值時(shí)默認(rèn)值將為NULL,否則默認(rèn)值將依賴于字段的數(shù)據(jù)類型index如果所有其他因素都相同,要加速數(shù)據(jù)庫查詢,那么使用索引通常是最重要的一個(gè)步驟。索引一個(gè)列會(huì)為該列創(chuàng)建一個(gè)有序的鍵數(shù)組,每個(gè)鍵指向其相應(yīng)的表行。以后針對(duì)輸入條件可以搜索這個(gè)有序的鍵數(shù)組,與搜索整個(gè)未索引的表相比,這將在性能方面得到極大的提升notnull如果將一個(gè)列定義為notnull,那么將不允許向該列插入null值。建議在重要情況下始終使用notnull屬性,因?yàn)樗峁┝艘粋€(gè)基本驗(yàn)證,確保已經(jīng)向奩洵傳遞了所有必要的值null為列指定null屬性時(shí),該列可以保持為空,而不論行中其他列是否已經(jīng)被填充。null精確的說法是“無”,而不是空字符串或0primarykeyprimarykey屬性用于確保指定行的唯一性。指定為主鍵的列中,值不能重復(fù),也不能為空。為指定為主鍵的列賦予auto_increment屬性是很常見的,因?yàn)榇肆胁槐嘏c行數(shù)據(jù)有任何關(guān)系,而只是作為一個(gè)唯一標(biāo)識(shí)符。主鍵又分為以下兩種:1)單字段主鍵。如果輸入數(shù)據(jù)庫中的每行都已經(jīng)有不可修改的唯一標(biāo)識(shí)符,一般會(huì)使用單字段主鍵。注意,此主鍵一旦設(shè)置就不能再修改2)多字段主鍵。如果記錄中任何一個(gè)字段都不可能保證唯一性,那么就可以使用多字段主鍵。這時(shí),多個(gè)字段聯(lián)合起來確保唯一性。如果出現(xiàn)這種情況,那么指定一個(gè)auto_increment整數(shù)作為主鍵是更好的辦法unique被賦予unique屬性的列將確保所有值都有不同的值,只是null值可以重復(fù)。一般會(huì)指定一個(gè)列為unique,以確保該列的所有值都不同zerofillzerofill屬性可用于任何數(shù)值類型,用0填充所有剩余字段空間。例如,無符號(hào)int的默認(rèn)寬度是10;因此,當(dāng)“零填充”的int值為4時(shí),將表示它為0000000004[考點(diǎn)]數(shù)據(jù)類型
12.
MySQL如何實(shí)現(xiàn)插入時(shí),如果不存在則插入,如果存在則更新的操作?正確答案:在Oracle中由MERGEINTO來實(shí)現(xiàn)記錄已存在就更新的操作,mysql沒有MERGEINTO語法,但是有REPLACEINTO的寫法,同樣實(shí)現(xiàn)記錄已存在就更新的操作。
SQLServer中的實(shí)現(xiàn)方法是
ifnotexists(select1fromtwhereid=1)
insertintot(id,
update_time)values(1,getdate())
else
updatetsetupdate_time=getdate()whereid=1
MySQL的REPLACEINTO有3種形式:
1.REPLACEINTOTBL_NAUE(COL_NAME)VALUES(')
2.REPLACEINTOTBL_NAME(COL_NAME)SELECT'
3.REPLACEINTOTBL_NAMESETCOL_NAME=VALUE'
其中,“INTO”關(guān)鍵字可以省略,不過最好加上“INTO”,這樣意思更加直觀。另外,對(duì)于那些沒有給予值的列,MySQL將自動(dòng)為這些列賦上默認(rèn)值。
13.
用哪些命令可以查看MySQL數(shù)據(jù)庫中的表結(jié)構(gòu)?正確答案:查看MySQL表結(jié)構(gòu)的命令有如下幾種:
1)DESC表名。
2)SHOWCOLUMNSFROM表名。
3)DESCRIBE表名。
4)SHOWCREATETABLE表名。
5)USEINFORMATION_SCHEMA。
14.
如何創(chuàng)建TABB表,完整拷貝TABA表的結(jié)構(gòu)和索引,而且不要數(shù)據(jù)?正確答案:CREATETABLETABBLIKETABA;。
15.
如何查看某一用戶的權(quán)限?正確答案:SHOWGRANTSFORUSERNAME;。
16.
如何得知當(dāng)前BINARYLOG文件和POSITION值?正確答案:SHOWMASTERSTATUS;。
17.
用什么命令切換BINARYLOG?正確答案:FLUSHLOGS;。
18.
用什么命令整理表數(shù)據(jù)文件的碎片?正確答案:OPTIMIZETABLETABLENAME;。
19.
如何得到TA_LHR表的建表語句?正確答案:SHOWCREATETABLETA_LHR;。
20.
MySQL和Oracle如何修改命令提示符?正確答案:MySQL的默認(rèn)提示符為“mysql”,可以使用prompt命令來修改,如下:
全局:exportMYSQL_PS1="(\u@\h)[\d]>"
蘭前會(huì)話:prompt(\u@\h)[\d]\R:\m:\s>\_
其中,“\u”代表用戶名,“\h”代表服務(wù)器地址,“\d”代表當(dāng)前數(shù)據(jù)庫,“\R:\m:\s”代表時(shí)分秒,例如,23:10:10。
Oracle的默認(rèn)命令提示符為“SQL”,可以使用“SETSQLPROMPT”命令來修改,如下:
SQL>SHOWSQLPROMPT
sqlprompt"SQL>"
SQL>SETSQLPROMPT"_USEW'@'_CONNECT_IDENTIFIER>"
SYS@lhrdb>
SYS@lhrdb>SHOWS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度數(shù)據(jù)中心機(jī)房設(shè)備安裝工程一切險(xiǎn)保險(xiǎn)協(xié)議3篇
- 專屬2024房產(chǎn)中介代理協(xié)議范例版B版
- 2025年度高新技術(shù)產(chǎn)業(yè)園區(qū)廠房租賃管理協(xié)議范本4篇
- 2025年度柴油運(yùn)輸合同涉及多式聯(lián)運(yùn)及無縫銜接4篇
- 專業(yè)服務(wù)協(xié)議草案(2024年修訂版)版B版
- 2025年度茶葉產(chǎn)業(yè)鏈金融服務(wù)合作協(xié)議8篇
- 2025年度城市綠道場地平整與生態(tài)景觀合同4篇
- 2025年度廠房建筑安全防護(hù)設(shè)施承包合同4篇
- 2025年度高科技產(chǎn)業(yè)員工勞動(dòng)合同范本4篇
- 2025年度廠房裝修項(xiàng)目進(jìn)度管理與支付協(xié)議4篇
- 2023年浙江省公務(wù)員考試面試真題解析
- GB/T 5796.3-2022梯形螺紋第3部分:基本尺寸
- GB/T 16407-2006聲學(xué)醫(yī)用體外壓力脈沖碎石機(jī)的聲場特性和測量
- 簡潔藍(lán)色科技商業(yè)PPT模板
- 錢素云先進(jìn)事跡學(xué)習(xí)心得體會(huì)
- 道路客運(yùn)車輛安全檢查表
- 宋曉峰辣目洋子小品《來啦老妹兒》劇本臺(tái)詞手稿
- 附錄C(資料性)消防安全評(píng)估記錄表示例
- 噪音檢測記錄表
- 推薦系統(tǒng)之協(xié)同過濾算法
- 提高筒倉滑模施工混凝土外觀質(zhì)量QC成果PPT
評(píng)論
0/150
提交評(píng)論