国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL面試題入門:四大范式、SQL生命周期、SQL六大語言、索引、最左匹配原則....

這篇具有很好參考價值的文章主要介紹了MySQL面試題入門:四大范式、SQL生命周期、SQL六大語言、索引、最左匹配原則....。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、數(shù)據(jù)庫四大范式?

第一范式:屬性不可分割,即每個屬性都是不可分割的原子項。(實體的屬性即表中的列)

第二范式:滿足第一范式;且不存在部分依賴,即非主屬性必須完全依賴于主屬性。(主屬性即主鍵;完全依賴是針對于聯(lián)合主鍵的情況,非主鍵列不能只依賴于主鍵的一部分)

第三范式:滿足第二范式;且不存在傳遞依賴,即非主屬性不能與非主屬性之間有依賴關(guān)系,非主屬性必須直接依賴于主屬性,不能間接依賴主屬性。(A -> B, B ->C, A -> C)

BCNF(BC范式) 它構(gòu)建在第三范式的基礎(chǔ)上,如果關(guān)系模型R是第一范式,且每個屬性都不傳遞依賴于R的候選鍵 (其他非主鍵字段),那么稱R為BCNF的模式。

  • 1NF: 字段是最小的的單元不可再分
  • 2NF:滿足1NF,表中的字段必須完全依賴于全部主鍵而非部分主鍵 (一般我們都會做到)
  • 3NF:滿足2NF,非主鍵外的所有字段必須互不依賴
  • 4NF:滿足3NF,消除表中的多值依賴

PS:
滿足BCNF的關(guān)系模式,肯定也滿足3NF;同理,滿足3NF的關(guān)系模式,肯定也滿足2NF

2、SQL生命周期?

  1. 應(yīng)用服務(wù)器與數(shù)據(jù)庫服務(wù)器建立一個連接
  2. 數(shù)據(jù)庫進程拿到SQL請求
  3. 解析并生成執(zhí)行計劃執(zhí)行
  4. 讀取數(shù)據(jù)到內(nèi)存并進行邏輯處理
  5. 通過步驟一的連接,發(fā)送結(jié)果到客戶端
  6. 關(guān)閉連接,釋放資源。

3、SQL六種語言?

3.1.數(shù)據(jù)庫定義語言 DDL (Data Definition Language)

面向的對象: 數(shù)據(jù)庫 和 表(邏輯結(jié)構(gòu)、表結(jié)構(gòu)、視圖、索引)

關(guān)鍵字: create、alter、drop、truncate(刪除當前表再新建一個相同的表)

3.2. 數(shù)據(jù)庫查詢語言 DQL (Data Query Language)

面向的對象: 表、字段

語句順序:select (distinct)…from…join…on…where…group by…h(huán)aving…order by…limit

執(zhí)行順序:from…on…join…where…group by…h(huán)aving…select(distinct)…order by…limit

where和having的區(qū)別:

1.WHERE子句用來篩選 FROM 子句中指定的操作所產(chǎn)生的行,在執(zhí)行分組之前進行應(yīng)用;GROUP BY子句用來分組 WHERE 子句的輸出;HAVING子句用來從分組的結(jié)果中篩選行,在執(zhí)行分組之后進行應(yīng)用。

2.where子句中的條件表達式having都可以跟,而having子句中的有些表達式where不可以跟;having子句可以用集合函數(shù)(sum、count、avg、max和min),而where子句不可以。

3.where可以用于select、update、delete和insert語句中;having只能用于select語句中

3.3. 數(shù)據(jù)庫操縱語言 DML (Data Manipulation Language)

面向的對象: 記錄(行)

關(guān)鍵字: insert、update、delete

注意:
開發(fā)中很少使用delete,刪除有物理刪除邏輯刪除,其中邏輯刪除可以通過給表添加一個字段(isDel),若值為1,代表刪除;若值為0,代表沒有刪除。

此時,對數(shù)據(jù)的刪除操作就變成了update操作了。

truncate和delete的區(qū)別:
truncate是刪除表,再重新創(chuàng)建這個表。屬于DDL,delete是一條一條刪除表中的數(shù)據(jù),屬于DML。

3.4. 數(shù)據(jù)庫控制功能 DCL (Data Control Language)

面向的對象: 用戶、權(quán)限、事務(wù)。

關(guān)鍵字: grant,revoke

3.5、事務(wù)處理語言 DPL

事務(wù)處理語句能確保被DML語句影響的表的所有行及時得以更新。TPL語句包括BEGIN TRANSACTION、COMMIT和ROLLBACK。

3.6、指針控制語言 CCL

它的語句,像DECLARE CURSOR、FETCH INTO和UPDATE WHERE CURRENT用于對一個或多個表單獨行的操作。

4、索引?

4.1什么是索引?

  • 官方介紹索引是幫助MySQL高效獲取數(shù)據(jù)數(shù)據(jù)結(jié)構(gòu)。更通俗的說,數(shù)據(jù)庫索引好比是一本書前面的目錄,能加快數(shù)據(jù)庫的查詢速度。
  • 一般來說索引本身也很大,不可能全部存儲在內(nèi)存中,因此索引往往是存儲在磁盤上的文件中的(可能存儲在單獨的索引文件中,也可能和數(shù)據(jù)一起存儲在數(shù)據(jù)文件中)。
  • 我們通常所說的索引,包括聚集索引、覆蓋索引、組合索引、前綴索引、唯一索引等,沒有特別說明,默認都是使用B+樹結(jié)構(gòu)組織(多路搜索樹,并不一定是二叉的)的索引。**

4.2索引類型?

  1. 主鍵索引

     索引列中的值必須是唯一的,`不允許有空值`。
    
  2. 普通索引

     MySQL中基本索引類型,沒有什么限制,`允許`在定義索引的列中`插入重復(fù)值和空值。`
    
  3. 全文索引

     只能在文本類型CHAR,VARCHAR, TEXT 類型字段上創(chuàng)建全文索引。字段長度比較大時,如果創(chuàng)建普通索引,
     在進行l(wèi)ike模糊查詢時效率比較低,這時可以創(chuàng)建全文索引。 MyISAM和InnoDB中都可以使用全文索引。
    
  4. 唯一索引

    索引列中的值必須是`唯一`的,但是`允許為空值`。
    
  5. 空間索引

     MySQL在5.7之后的版本支持了空間索引,而且支持`OpenGIS`幾何數(shù)據(jù)模型。
     MySQL在空間索引這方面遵循OpenGIS幾何數(shù)據(jù)模型規(guī)則。
    
  6. 前綴索引

    在文本類型如CHAR,VARCHAR,TEXT類列上創(chuàng)建索引時,可以指定索引列的長度,但是數(shù)值類型不能指定。
    
  7. 其他(按照索引列數(shù)量分類)

    1. 單列索引

    2. 組合索引: 組合索引的使用,需要遵循最左前綴匹配原則(最左匹配原則) 。一般情況下在條件允許的情況下使用組合索引替代多個單列索引使用。

4.3索引的優(yōu)勢和劣勢?

4.3.1優(yōu)勢
  • 可以提高數(shù)據(jù)檢索的效率,降低數(shù)據(jù)庫的IO成本,類似于書的目錄。
  • 通過索引列對數(shù)據(jù)進行排序,降低數(shù)據(jù)排序的成本,降低了CPU的消耗。
    • 被索引的列會自動進行排序,包括【單列索引】和【組合索引】,只是組合索引的排序要復(fù)雜一些。
    • 如果按照索引列的順序進行排序,對應(yīng)order by語句來說,效率就會提高很多。
4.3.2劣勢
  • 索引會占據(jù)磁盤空間
  • 索引雖然會提高查詢效率,但是會降低更新表的效率
    • 比如每次對表進行增刪改操作,MySQL不僅要保存數(shù)據(jù),還有保存或者更新對應(yīng)的索引文件。

5、最左匹配原則?

過濾條件要使用索引必須按照索引建立時的順序,依次滿足,一旦跳過某個字段,索引后面的字段都無法使用。

(>、<、between、like)都會停止匹配。

ps:創(chuàng)建的索引列都存在,Mysql的優(yōu)化器會自動給你排序。

6、哪些情況不要創(chuàng)建索引?

  1. 表記錄太少

     300w數(shù)據(jù)時MySQL性能就開始下降了,這時就可以開始優(yōu)化了。
    
  2. 經(jīng)常增刪改的表

     提高了查詢速度,同時卻會降低更新表速度,如對標進行INSRERT、UPDATE、DELETE
     因為更新表時,MySQL不僅要保存數(shù)據(jù)還要保存一下索引文件
    
  3. where條件里用不到的字段不創(chuàng)建索引

7、為什么索引后查詢效率高呢?

這個就涉及到索引數(shù)據(jù)結(jié)構(gòu)了,類比書籍的目錄頁,索引通過B+樹的結(jié)構(gòu)存放數(shù)據(jù),橫向數(shù)據(jù)多,縱向的高低越低,和磁盤交互就越少,查詢得速度就越快。

8、MySQL有關(guān)權(quán)限表都有哪些?

  • user:用戶賬號、全局權(quán)限
  • db:庫級別權(quán)限
  • host:廢棄
  • tables_priv:表級別權(quán)限
  • colums_priv:列級別權(quán)限
  • procs_priv:存儲過程和存儲函數(shù)相關(guān)的權(quán)限
  • proxies_priv:代理用戶權(quán)限

9、事務(wù)的ACID?

  1. 原子性(Atomicity):事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包含的各操作要么都做,要么都不做

  2. 一致性(Consistency):事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。
    因此當數(shù)據(jù)庫只包含成功事務(wù)提交的結(jié)果時,就說數(shù)據(jù)庫處于一致性狀態(tài)。

    如果數(shù)據(jù)庫系統(tǒng)運行中發(fā)生故障,有些事務(wù)尚未完成就被迫中斷,這些未完成事務(wù)對數(shù)據(jù)庫所做的修改有一部分已寫入物理數(shù)據(jù)庫,這時數(shù)據(jù)庫就處于一種不正確的狀態(tài),或者說是不一致的狀態(tài)。

  3. 隔離性(Isolation):一個事務(wù)的執(zhí)行不能對其它事務(wù)形成干擾。 即一個事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對其它并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個事務(wù)之間不能互相干擾。

  4. 持續(xù)性(Durability):也稱永久性,指一個事務(wù)一旦提交,它對數(shù)據(jù)庫中的數(shù)據(jù)的改變就應(yīng)該是永久性的。 接下來的其它操作或故障不應(yīng)該對其執(zhí)行結(jié)果有任何影響。

10、索引的數(shù)據(jù)結(jié)構(gòu)?

  • Hash表
  • 二叉查找樹
  • 平衡二叉樹
  • B樹:改造二叉樹
  • B+樹:改造B樹

你知道的越多,你不知道的就越多文章來源地址http://www.zghlxwxcb.cn/news/detail-858560.html

到了這里,關(guān)于MySQL面試題入門:四大范式、SQL生命周期、SQL六大語言、索引、最左匹配原則....的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【慢SQL性能優(yōu)化】 一條SQL的生命周期

    一張簡單的圖說明下,MySQL架構(gòu)有哪些組件和組建間關(guān)系,接下來給大家用SQL語句分析 例如如下SQL語句 其中 name 為索引,我們按照 時間順序 來分析一下 客戶端:如MySQL命令行工具、Navicat、DBeaver或其他應(yīng)用程序發(fā)送SQL查詢到MySQL服務(wù)器。 連接器:負責與客戶端建立連接、管

    2024年02月05日
    瀏覽(16)
  • 前端面試題——詳解VUE的生命周期

    前端面試時,很多面試官都會問這樣一道題,“學(xué)習過vue嗎,了解VUE的生命周期嗎”,因為vue它是現(xiàn)在前端用的最多的一個框架,想要找前端工作的朋友們還是有必要掌握一下vue的生命周期以及每個周期的作用。下面給大家詳解一下vue的生命周期,也歡迎大家對其進行補充!

    2024年02月15日
    瀏覽(24)
  • 面試題-React(六):React組件和生命周期

    面試題-React(六):React組件和生命周期

    一、React組件 React組件簡介: React組件是構(gòu)建用戶界面的基本單元。它們將界面拆分成獨立、可重用的部分,使得代碼更加模塊化、可維護性更高。React組件可以是函數(shù)組件或類組件,它們接收輸入的數(shù)據(jù)(稱為props)并返回表示用戶界面的React元素。 創(chuàng)建React組件: 在React中

    2024年02月11日
    瀏覽(24)
  • 每天一道面試題:Spring的Bean生命周期

    Spring的Bean生命周期包括以下步驟: 1、 實例化(Instantiation) :當Spring容器接收到創(chuàng)建Bean的請求時,它會先實例化Bean對象。這個過程可以通過構(gòu)造函數(shù)、工廠方法或者反序列化等方式完成; 2、 屬性賦值(Populate Properties) :在實例化Bean對象后,Spring容器會通過setter方法或

    2024年02月08日
    瀏覽(23)
  • vue2面試題:對vue生命周期的理解

    生命周期(life cycle)的概念應(yīng)用很廣泛,在政治、經(jīng)濟、環(huán)境、技術(shù)、社會等諸多領(lǐng)域都會經(jīng)常出現(xiàn),可通俗理解為“從搖籃到墳?zāi)埂钡恼麄€過程,在vue中從實例的創(chuàng)建到銷毀過程就是生命周期,即從創(chuàng)建、初始化數(shù)據(jù)、編譯模板、掛載Dom–渲染、更新–渲染、卸載等一系列

    2024年01月25日
    瀏覽(31)
  • Vue快速入門,常用指令,生命周期

    Vue快速入門,常用指令,生命周期

    Vue常用指令 ?案例: ? Vue生命周期 ? ?

    2024年02月03日
    瀏覽(28)
  • 一文讀懂 Spring Bean 的生命周期,unity高級工程師面試題

    一文讀懂 Spring Bean 的生命周期,unity高級工程師面試題

    實例化 該對象不再被使用時通過垃圾回收機制進行回收 而對于 Spring Bean 的生命周期來說: 實例化 Instantiation 屬性賦值 Populate 初始化 Initialization 銷毀 Destruction 實例化 - 屬性賦值 - 初始化 - 銷毀 只有四個步驟,這樣拆解的話是不是感覺也不難?不像其他人寫的那樣直接一上

    2024年04月09日
    瀏覽(48)
  • Spring Bean的生命周期 -- Spring入門(三)

    Spring Bean的生命周期 -- Spring入門(三)

    為了鞏固所學(xué)的知識,作者嘗試著開始發(fā)布一些學(xué)習筆記類的博客,方便日后回顧。當然,如果能幫到一些萌新進行新技術(shù)的學(xué)習那也是極好的。作者菜菜一枚,文章中如果有記錄錯誤,歡迎讀者朋友們批評指正。 (博客的參考源碼以及可以在我主頁的資源里找到,如果在學(xué)

    2024年02月15日
    瀏覽(25)
  • Android入門教程之Activity(生命周期,啟動...)

    Android入門教程之Activity(生命周期,啟動...)

    Activity 是一個應(yīng)用組件,用戶可與其提供的屏幕進行交互,以執(zhí)行撥打電話、拍攝照片、發(fā)送電子郵件或查看地圖等操作。 每個 Activity 都會獲得一個用于繪制其用戶界面的窗口。窗口通常會充滿屏幕,但也可小于屏幕并浮動在其他窗口之上。 Activity 1. Activity 的使用 我們新建

    2024年02月04日
    瀏覽(28)
  • vue2 生命周期,工程化開發(fā)入門

    vue2 生命周期,工程化開發(fā)入門

    1.生命周期 生命周期介紹 生命周期的四個階段 生命周期鉤子 聲明周期案例 2.工程化開發(fā)入門 工程化開發(fā)和腳手架 項目運行流程 組件化 組件注冊 思考:什么時候可以發(fā)送初始化渲染請求?(越早越好)什么時候可以開始操作dom?(至少dom得渲染出來) Vue生命周期:就是一

    2024年02月11日
    瀏覽(91)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包