日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

MySQL面试题 | 附答案解析(十三)

發(fā)布時(shí)間:2023/11/27 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL面试题 | 附答案解析(十三) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

常用SQL語(yǔ)句

1. SQL語(yǔ)句主要分為哪幾類

數(shù)據(jù)定義語(yǔ)言DDL(Data Ddefinition Language)CREATE,DROP,ALTER

主要為以上操作 即對(duì)邏輯結(jié)構(gòu)等有操作的,其中包括表結(jié)構(gòu),視圖和索引。

數(shù)據(jù)查詢語(yǔ)言DQL(Data Query Language)SELECT

這個(gè)較為好理解 即查詢操作,以select關(guān)鍵字。各種簡(jiǎn)單查詢,連接查詢等 都屬于DQL。

數(shù)據(jù)操縱語(yǔ)言DML(Data Manipulation Language)INSERT,UPDATE,DELETE

主要為以上操作 即對(duì)數(shù)據(jù)進(jìn)行操作的,對(duì)應(yīng)上面所說的查詢操作 DQL與DML共同構(gòu)建了多數(shù)初級(jí)程序員常用的增刪改查操作。而查詢是較為特殊的一種 被劃分到DQL中。

數(shù)據(jù)控制功能DCL(Data Control Language)GRANT,REVOKE,COMMIT,ROLLBACK

主要為以上操作 即對(duì)數(shù)據(jù)庫(kù)安全性完整性等有操作的,可以簡(jiǎn)單的理解為權(quán)限控制等。

2. 超鍵、候選鍵、主鍵、外鍵分別是什么?

a.超鍵:在關(guān)系中能唯一標(biāo)識(shí)元組的屬性集稱為關(guān)系模式的超鍵。一個(gè)屬性可以為作為一個(gè)超鍵,多個(gè)屬性組合在一起也可以作為一個(gè)超鍵。超鍵包含候選鍵和主鍵。

b.候選鍵:是最小超鍵,即沒有冗余元素的超鍵。

c.主鍵:數(shù)據(jù)庫(kù)表中對(duì)儲(chǔ)存數(shù)據(jù)對(duì)象予以唯一和完整標(biāo)識(shí)的數(shù)據(jù)列或?qū)傩缘慕M合。一個(gè)數(shù)據(jù)列只能有一個(gè)主鍵,且主鍵的取值不能缺失,即不能為空值(Null)。

d.外鍵:在一個(gè)表中存在的另一個(gè)表的主鍵稱此表的外鍵。

3. SQL 約束有哪幾種?

a.NOT NULL: 用于控制字段的內(nèi)容一定不能為空(NULL)。

b.UNIQUE: 控件字段內(nèi)容不能重復(fù),一個(gè)表允許有多個(gè) Unique 約束。

c.PRIMARY KEY: 也是用于控件字段內(nèi)容不能重復(fù),但它在一個(gè)表只允許出現(xiàn)一個(gè)。

d.FOREIGN KEY: 用于預(yù)防破壞表之間連接的動(dòng)作,也能防止非法數(shù)據(jù)插入外鍵列,因?yàn)樗仨毷撬赶虻哪莻€(gè)表中的值之一。

e.CHECK: 用于控制字段的值范圍。

4. 六種關(guān)聯(lián)查詢

a.交叉連接(CROSS JOIN)

b.內(nèi)連接(INNER JOIN)

c.外連接(LEFT JOIN/RIGHT JOIN)

d.聯(lián)合查詢(UNION與UNION ALL)

e.全連接(FULL JOIN)

f.交叉連接(CROSS JOIN)

g.SELECT * FROM A,B(,C)或者SELECT * FROM A CROSS JOIN B (CROSS JOIN C)#沒有任何關(guān)聯(lián)條件

內(nèi)連接分為三類

a.等值連接:ON A.id=B.id

b.不等值連接:ON A.id > B.id

c.自連接:SELECT * FROM A T1 INNER JOIN A T2 ON T1.id=T2.pid

d.外連接(LEFT JOIN/RIGHT JOIN)

e.左外連接:LEFT OUTER JOIN, 以左表為主,先查詢出左表,按照ON后的關(guān)聯(lián)條件匹配右表,沒有匹配到的用NULL填充,可以簡(jiǎn)寫成LEFT JOIN

f.右外連接:RIGHT OUTER JOIN, 以右表為主,先查詢出右表,按照ON后的關(guān)聯(lián)條件匹配左表,沒有匹配到的用NULL填充,可以簡(jiǎn)寫成RIGHT JOIN

聯(lián)合查詢(UNION與UNION ALL)

SELECT * FROM A UNION SELECT * FROM B UNION …

a.就是把多個(gè)結(jié)果集集中在一起,UNION前的結(jié)果為基準(zhǔn),需要注意的是聯(lián)合查詢的列數(shù)要相等,相同的記錄行會(huì)合并如果使用UNION ALL,不會(huì)合并重復(fù)的記錄行

b.效率 UNION 高于 UNION ALL

全連接(FULL JOIN)

a.MySQL不支持全連接

b.可以使用LEFT JOIN 和UNION和RIGHT JOIN聯(lián)合使用

SELECT * FROM A LEFT JOIN B ON A.id=B.id UNIONSELECT * FROM A RIGHT JOIN B ON A.id=B.id

表連接面試題

有2張表,1張R、1張S,R表有ABC三列,S表有CD兩列,表中各有三條記錄。

R表

S表





最后,小編分類整理了許多java進(jìn)階學(xué)習(xí)材料和BAT面試給熱愛IT行業(yè)的你,如果需要資料的請(qǐng)轉(zhuǎn)發(fā)此文章后再私聊小編回復(fù)【java】就能領(lǐng)取2019年java進(jìn)階學(xué)習(xí)資料和BAT面試題以及《Effective Java》(第3版)電子版書籍。也可以加群:712263501領(lǐng)取海量學(xué)習(xí)資料進(jìn)行學(xué)習(xí)。

總結(jié)

以上是生活随笔為你收集整理的MySQL面试题 | 附答案解析(十三)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。