Python11/26--mysql之視圖/觸發器/事務/存儲過程

視圖mysql

1.什麼是視圖        sql

  視圖就是經過查詢獲得一張虛擬表,而後保存下來,下次用的時候直接使用便可安全

2.爲何用視圖框架

  若是要頻繁使用一張虛擬表,能夠不用重複查詢優化

3.如何用視圖spa

  select * from 表1 inner join 表2 on 表1.id  = 表2.表1_id ;事務

注意:1.在硬盤中,視圖只有表結構文件,沒有表數據文件開發

     2.視圖一般是用於插敘,儘可能不要修改視圖中的數據it

觸發器:io

1.什麼是觸發器

  在知足對某張表數據的增、刪、改的狀況下(沒有查),自動觸發的功能稱之爲觸發器

2.爲什麼要用觸發器?

  觸發器專門針對咱們對某張表數據的增、刪、改的行爲,這類行爲一旦執行就會啓動觸發器

,即自動運行另一段sql代碼

3.建立觸發器語法
    create trigger 觸發器的名字 after(也能夠用before表明在以前觸發) insert(能夠換成delete,update)     on 表名 for each row(結尾這三個是固定語法)                              釋義:在這個表名插入一條記錄              以後觸發一條觸發器的行爲

          begin

      當上門的create 觸發器 觸發時,自動執行 這段sql代碼。。

    end

觸發器這樣命名會好一點: 觸發器名_after_insert_哪張表名

 

事務:

1.什麼是事務

  開啓一個事務能夠包含一些sql語句,這些sql語句要麼同時成功,要麼都不能成功,稱之爲事務的          原子性

2.事務的做用

  能夠監測一系列操做的安全性、準確性,能夠對事務控制範圍內的數據進行回滾等操做

3.怎麼使用事務

  start transaction  #開啓事務

  開始執行sql 語句。

  能夠執行rollback 回滾到修改數據以前的狀態

  在沒有執行commit以前這些修改的任何操做數據都不會刷新到硬盤

 

 

存儲過程:

1.定義:存儲過程包含了一系列可執行的sql語句,存儲過程存放於mysql中,經過調用他的名字能夠執                行其內部的一堆sql

2.三種開發模型:

  一、應用程序:只須要開發應用程序的邏輯

     mysql:編寫好存儲過程,用來給應用程序調用

     優勢:開發效率,執行效率都高

     缺點:考慮到人爲因素、跨部門溝通等問題,會致使擴展性差  

  二、應用程序:除了開發應用程序的邏輯,還須要編寫原生sql

     mysql:

    優勢:比方式1 拓展性高(非技術層面)

    缺點:開發效率、執行效率都不如方式1,編寫原生sql太過於複雜,須要考慮sql語句的優化

  3.應用程序:開發應用程序的邏輯,不須要編寫原生的sql,基於別人編寫好的框架來處理數據,

   mysql:

   優勢:不用再編寫純生sql,這意味着開發效率要比方式2高 ,同時拓展性也高

   缺點:執行效率連方式2 都不如

3.建立存儲過程:

  create procedure 存儲過程名(可傳參)

  begin

     sql語句 

  end

  call  存儲過程名(可傳參)   # call 是調用

2

相關文章
相關標籤/搜索