MySQL面试题 | 附答案解析(十三)
常用SQL語句
1. SQL語句主要分為哪幾類
數據定義語言DDL(Data Ddefinition Language)CREATE,DROP,ALTER
主要為以上操作 即對邏輯結構等有操作的,其中包括表結構,視圖和索引。
數據查詢語言DQL(Data Query Language)SELECT
這個較為好理解 即查詢操作,以select關鍵字。各種簡單查詢,連接查詢等 都屬于DQL。
數據操縱語言DML(Data Manipulation Language)INSERT,UPDATE,DELETE
主要為以上操作 即對數據進行操作的,對應上面所說的查詢操作 DQL與DML共同構建了多數初級程序員常用的增刪改查操作。而查詢是較為特殊的一種 被劃分到DQL中。
數據控制功能DCL(Data Control Language)GRANT,REVOKE,COMMIT,ROLLBACK
主要為以上操作 即對數據庫安全性完整性等有操作的,可以簡單的理解為權限控制等。
2. 超鍵、候選鍵、主鍵、外鍵分別是什么?
a.超鍵:在關系中能唯一標識元組的屬性集稱為關系模式的超鍵。一個屬性可以為作為一個超鍵,多個屬性組合在一起也可以作為一個超鍵。超鍵包含候選鍵和主鍵。
b.候選鍵:是最小超鍵,即沒有冗余元素的超鍵。
c.主鍵:數據庫表中對儲存數據對象予以唯一和完整標識的數據列或屬性的組合。一個數據列只能有一個主鍵,且主鍵的取值不能缺失,即不能為空值(Null)。
d.外鍵:在一個表中存在的另一個表的主鍵稱此表的外鍵。
3. SQL 約束有哪幾種?
a.NOT NULL: 用于控制字段的內容一定不能為空(NULL)。
b.UNIQUE: 控件字段內容不能重復,一個表允許有多個 Unique 約束。
c.PRIMARY KEY: 也是用于控件字段內容不能重復,但它在一個表只允許出現一個。
d.FOREIGN KEY: 用于預防破壞表之間連接的動作,也能防止非法數據插入外鍵列,因為它必須是它指向的那個表中的值之一。
e.CHECK: 用于控制字段的值范圍。
4. 六種關聯查詢
a.交叉連接(CROSS JOIN)
b.內連接(INNER JOIN)
c.外連接(LEFT JOIN/RIGHT JOIN)
d.聯合查詢(UNION與UNION ALL)
e.全連接(FULL JOIN)
f.交叉連接(CROSS JOIN)
g.SELECT * FROM A,B(,C)或者SELECT * FROM A CROSS JOIN B (CROSS JOIN C)#沒有任何關聯條件
內連接分為三類
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后的關聯條件匹配右表,沒有匹配到的用NULL填充,可以簡寫成LEFT JOIN
f.右外連接:RIGHT OUTER JOIN, 以右表為主,先查詢出右表,按照ON后的關聯條件匹配左表,沒有匹配到的用NULL填充,可以簡寫成RIGHT JOIN
聯合查詢(UNION與UNION ALL)
SELECT * FROM A UNION SELECT * FROM B UNION …
a.就是把多個結果集集中在一起,UNION前的結果為基準,需要注意的是聯合查詢的列數要相等,相同的記錄行會合并如果使用UNION ALL,不會合并重復的記錄行
b.效率 UNION 高于 UNION ALL
全連接(FULL JOIN)
a.MySQL不支持全連接
b.可以使用LEFT JOIN 和UNION和RIGHT JOIN聯合使用
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進階學習材料和BAT面試給熱愛IT行業的你,如果需要資料的請轉發此文章后再私聊小編回復【java】就能領取2019年java進階學習資料和BAT面試題以及《Effective Java》(第3版)電子版書籍。也可以加群:712263501領取海量學習資料進行學習。
總結
以上是生活随笔為你收集整理的MySQL面试题 | 附答案解析(十三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: “绿杨陌上送行人”下一句是什么
- 下一篇: 椰子鞋多少钱啊?