更新時(shí)間:2020-02-05 10:08:42 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽4486次
數(shù)據(jù)庫(kù)篇
1:數(shù)據(jù)庫(kù)的分類(lèi)
關(guān)系型數(shù)據(jù)庫(kù)ORDBMS:(oracle、MySQL、SqlServer等)
特點(diǎn):二維表存儲(chǔ),使用sql語(yǔ)言操作,有事務(wù)可以控制數(shù)據(jù)操作的完整性可以復(fù)雜的聯(lián)查
非關(guān)系型數(shù)據(jù)庫(kù)nosql:(MongoDB、redis等)
特點(diǎn):鍵值對(duì)或json存儲(chǔ),弱事務(wù)或無(wú)事務(wù)操作數(shù)據(jù)效率更高可以用于充當(dāng)緩存
2:SQL語(yǔ)句分為哪幾種?
SQL語(yǔ)句主要可以劃分為以下幾類(lèi):
DDL(DataDefinitionLanguage):數(shù)據(jù)定義語(yǔ)言,定義對(duì)數(shù)據(jù)庫(kù)對(duì)象(庫(kù)、表、列、索引)的操作。
包括:CREATE、DROP、ALTER、RENAME、TRUNCATE等
DML(DataManipulationLanguage):數(shù)據(jù)操作語(yǔ)言,定義對(duì)數(shù)據(jù)庫(kù)記錄的操作。
包括:INSERT、DELETE、UPDATE、SELECT等
DCL(DataControlLanguage):數(shù)據(jù)控制語(yǔ)言,定義對(duì)數(shù)據(jù)庫(kù)、表、字段、用戶(hù)的訪(fǎng)問(wèn)權(quán)限和安全級(jí)別。
包括:GRANT、REVOKE等
TransactionControl:事務(wù)控制
包括:COMMIT、ROLLBACK、SAVEPOINT等
3:排序
關(guān)鍵字:orderby
使用方法:select*from表名orderby字段排序方式
Orderby都寫(xiě)在查詢(xún)語(yǔ)句的最后,如果不加排序方式,默認(rèn)升序,多個(gè)字段排序用逗號(hào)分隔
4:分組
關(guān)鍵字:groupby
使用方法:select*from表名where條件groupby字段orderby字段排序方式
注意:使用groupby查詢(xún)時(shí),查詢(xún)字段只能是分組字段或聚合函數(shù),當(dāng)查詢(xún)的條件為非聚合函數(shù)時(shí),可以在groupby之前使用where條件判斷,如果查詢(xún)條件為聚合函數(shù),必須在groupby之后使用having進(jìn)行條件判斷,having是在分組之后執(zhí)行的查詢(xún)條件,having后跟的查詢(xún)條件必須是聚合函數(shù)或者分組字段。
groupby多個(gè)字段分組,使用逗號(hào)分隔,只有分組字段完全相同時(shí),才會(huì)正常分租,否則數(shù)據(jù)全部顯示。
5:偽列
Rowid:唯一的物理地址用rowid作為條件查詢(xún)可以提升查詢(xún)效率。
Rownum:查詢(xún)結(jié)果的序號(hào)可以用于條件查詢(xún),不能用于修改和刪除
(1)id,Rowid,Rownum的區(qū)別?
rowid物理位置的唯一標(biāo)識(shí)。
而id是邏輯上的唯一標(biāo)識(shí),所以rowid查找速度要快于id,是目前最快的
定位一條記錄的方式
rowid和rownum都是"偽數(shù)列"
所謂“偽數(shù)列”也就是默認(rèn)隱藏的一個(gè)數(shù)列。
rownum用于標(biāo)記結(jié)果集中結(jié)果順序的一個(gè)字段,
它的特點(diǎn)是按順序標(biāo)記,而且是連續(xù)的,
換句話(huà)說(shuō)就是只有有rownum=1的記錄,才可能有rownum=2的記錄。
rownum關(guān)鍵字只能和<或者<=直接關(guān)聯(lián)
如果是>或者=則需要給他0起個(gè)別名
6:約束
1.主鍵約束(PrimayKeyCoustraint)唯一性,非空性;
altertable表名addconstraint主鍵名稱(chēng)primarykey(字段名)
注意:主鍵字段不能重復(fù)(唯一的),不可以為空
一般使用id作為一張表的主鍵,主鍵在創(chuàng)建時(shí),會(huì)生成一個(gè)索引。
2.唯一約束(UniqueCounstraint)唯一性,可以空,但只能有一個(gè);
Altertableaddconstraint約束名unique(字段名)
3.默認(rèn)約束(DefaultCounstraint)該數(shù)據(jù)的默認(rèn)值;
4.檢查約束(CheckCounstraint)對(duì)該列數(shù)據(jù)的范圍、格式的限制(如:年齡、性別等
Altertable表名addconstraint約束名check(字段名條件)
5.外鍵約束(ForeignKeyCounstraint)需要建立兩表間的關(guān)系;
Altertable表名addconstraint約束名foreignkey(主表字段名)references外鍵到的表名(字段名)
6.非空約束(NotNullCounstraint):設(shè)置非空約束,該字段不能為空。
altertable表名modify字段名[notnull非空|null允許為空]
注意:該字段存儲(chǔ)的數(shù)據(jù)不能為空,但是可以重復(fù)。
7:序列(oracle)
oracle中,是通過(guò)使用序列(sequence)來(lái)處理自動(dòng)增長(zhǎng)列。
(1)可以為表中的列自動(dòng)產(chǎn)生值。
(2)由用戶(hù)創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象,并可由多個(gè)用戶(hù)共享。
(3)一般用于主鍵或唯一列。
(4)可以生成唯一標(biāo)識(shí)
創(chuàng)建序列基本語(yǔ)法:
createsequence序列名稱(chēng)
startwith開(kāi)始數(shù)字
incrementby增長(zhǎng)數(shù)字
minvalue最小值
maxvalue最大值
cycle
nocache
詳細(xì)說(shuō)明:
startwith開(kāi)始數(shù)字從幾開(kāi)始
incrementby增長(zhǎng)步長(zhǎng),每次增長(zhǎng)幾個(gè)數(shù)
minvalue最小值
maxvalue最大值可以不設(shè)置,不設(shè)置應(yīng)寫(xiě)為nomaxvalue,也就是無(wú)窮大
cycle循環(huán),也就是說(shuō)當(dāng)長(zhǎng)增長(zhǎng)到最大值后,再?gòu)淖钚≈甸_(kāi)始重新增長(zhǎng)
nocache不設(shè)緩存
序列的使用
序列當(dāng)前值:序列名.currval
根據(jù)增量獲取序列下一個(gè)值:序列名.nextval
8:表聯(lián)查
根據(jù)兩張或兩張以上表之間的關(guān)聯(lián)關(guān)系,進(jìn)行多張表的同時(shí)展示。
內(nèi)連接(innerjoin):只會(huì)顯示兩張表中關(guān)聯(lián)字段均不為空的數(shù)據(jù)
左連接(leftjoin):會(huì)顯示連接左側(cè)表的所有數(shù)據(jù)(左側(cè)表為主表)
右連接(rightjoin):會(huì)顯示連接右側(cè)表的所有數(shù)據(jù)(右側(cè)表為主表)
全連接(fulljoin):會(huì)將兩張表所有的數(shù)據(jù)全部顯示
9:Delete、truncate、drop都是刪除語(yǔ)句,它們有什么區(qū)別?
delete屬于DML語(yǔ)句,刪除數(shù)據(jù),保留表結(jié)構(gòu),需要commit,可以回滾,如果數(shù)據(jù)量大,很慢。
truncate屬于DDL語(yǔ)句,刪除所有數(shù)據(jù),保留表結(jié)構(gòu),自動(dòng)commit,不可以回滾,一次全部刪除所有數(shù)據(jù),速度相對(duì)較快。
Drop屬于DDL語(yǔ)句,刪除數(shù)據(jù)和表結(jié)構(gòu),不需要commit,刪除速度最快。
10:Where和having都是條件篩選關(guān)鍵字,它們有什么分別?
WHERE是在數(shù)據(jù)分組前進(jìn)行條件過(guò)濾,HAVING子句是在數(shù)據(jù)分組后進(jìn)行條件過(guò)濾,WHERE子句中不能使用聚合函數(shù),HAVING子句可以使用聚合函數(shù)。
以上就是動(dòng)力節(jié)點(diǎn)Java培訓(xùn)機(jī)構(gòu)小編介紹的“Java數(shù)據(jù)庫(kù)面試題大全帶答案”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€(xiàn)咨詢(xún),有專(zhuān)業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)推薦
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743