日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库mysql面试题 it_【模块三】数据库篇--MySQL面试题☞参考答案

發(fā)布時(shí)間:2023/11/30 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库mysql面试题 it_【模块三】数据库篇--MySQL面试题☞参考答案 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【一】初級(jí)

【二】中級(jí)

執(zhí)行過程

【1】客戶端向MySQL服務(wù)器發(fā)送一條查詢請(qǐng)求

【2】服務(wù)器首先檢查查詢緩存,如果命中緩存,則立刻返回存儲(chǔ)在緩存中的結(jié)果。否則進(jìn)入下一階段

【3】服務(wù)器進(jìn)行SQL解析、預(yù)處理、再由優(yōu)化器生成對(duì)應(yīng)的執(zhí)行計(jì)劃

【4】MySQL根據(jù)執(zhí)行計(jì)劃,調(diào)用存儲(chǔ)引擎的API來執(zhí)行查詢

【5】將結(jié)果返回給客戶端,同時(shí)緩存查詢結(jié)果

多種Join

交集:

select * from A inner join B on A.key = B.key

并集:

select * from A full outer join B on A.key = B.key

差集:

select * from A left outer join B on A.key = B.key where B.key IS NULL

select * from A right outer join B on A.key = B.key where A.key IS NULL

以A表為主表,A表數(shù)據(jù)全部取到

select * from A left outer join B on A.key = B.key

以B表為主表,B表數(shù)據(jù)全部取到

select * from A right outer join B on A.key = B.key

取A,B全集,并去掉A,B的交集

select * from A full outer join B on A.key = B.key where A.key IS NULL or B.key IS NULL

數(shù)據(jù)庫設(shè)計(jì)

表結(jié)構(gòu)設(shè)計(jì):遵循三范式 NF(Normal Form)

(1)簡(jiǎn)單歸納:

第一范式(1NF):字段不可分

第二范式(2NF):有主鍵,非主鍵字段依賴主鍵

第三范式(3NF):非主鍵字段不能相互依賴

(2)本質(zhì)解釋:

1NF:原子性。 字段不可再分,否則就不是關(guān)系數(shù)據(jù)庫

2NF:唯一性 。一個(gè)表只說明一個(gè)事物

3NF:每列都與主鍵有直接關(guān)系,不存在傳遞依賴

字段設(shè)計(jì)

1.字段類型選擇:盡量小

--變長(zhǎng)字段使用varchar,定長(zhǎng)使用char

--冗余字段,合理參考范式,以空間換時(shí)間

--int類型詳解:https://www.jb51.net/article/93777.htm

Q:int(3)中數(shù)字3的含義是什么?

答:這里的3代表的并不是存儲(chǔ)在數(shù)據(jù)庫中的具體的長(zhǎng)度,以前總是會(huì)誤以為int(3)只能存儲(chǔ)3個(gè)長(zhǎng)度的數(shù)字.不論是int(3)還是int(11),它在數(shù)據(jù)庫里面存儲(chǔ)的都是4個(gè)字節(jié)的長(zhǎng)度。加上zerofill后,,才能看出3代表的效果,比如 int(3) zerofill,當(dāng)你插入到數(shù)據(jù)庫里的是10,則實(shí)際插入為010,插入的數(shù)字超過3位,定義的3不再起作用。

Q:不同int型后的默認(rèn)位數(shù)M分別是多少?

答: TINYINT[(M)] [UNSIGNED] [ZEROFILL]? M默認(rèn)為4

SMALLINT[(M)] [UNSIGNED] [ZEROFILL] M默認(rèn)為6

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] M默認(rèn)為9

INT[(M)] [UNSIGNED] [ZEROFILL]?? M默認(rèn)為11

BIGINT[(M)] [UNSIGNED] [ZEROFILL] M默認(rèn)為20

2.命名規(guī)則

-多個(gè)單詞以 "_" 連接

-重要數(shù)據(jù)表模型加上create_user,create_time,last_modify_user,last_modify_time字段

3.主鍵

-每張表必須建立一個(gè)自增id作為主鍵

4.索引

-where限定條件后查詢字段加索引

SQL優(yōu)化

【三】高級(jí)

總結(jié)

以上是生活随笔為你收集整理的数据库mysql面试题 it_【模块三】数据库篇--MySQL面试题☞参考答案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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