當前位置:編程學習大全網 - 源碼下載 - Django裏面怎麽實現數據庫視圖啊就是虛擬表(django創建數據庫表)

Django裏面怎麽實現數據庫視圖啊就是虛擬表(django創建數據庫表)

視圖相當於虛擬的表,可以使用正常SQL語句進行增刪查改的操作,返回壹張表。其實說白了與表的功能基本壹樣。

觸發器,是在執行增刪改的時候觸發的壹些SQL操作。可以在增刪改之後觸發SQl,也可以在增刪改的時候替代SQL。有兩種不同的觸發模式而已。

壹下是來自官方的標準解釋:

什麽是視圖?

在SQL中,視圖是基於SQL語句的結果集的可視化的表。

視圖包含行和列,就像壹個真實的表。視圖中的字段就是來自壹個或多個數據庫中的真實的表中的字段。我們可以向視圖添加SQL函數、WHERE以及JOIN語句,我們也可以提交數據,就像這些來自於某個單壹的表。

註釋:數據庫的設計和結構不會受到視圖中的函數、where或join語句的影響。

SQLCREATEVIEW語法

CREATEVIEWview_nameAS

SELECTcolumn_name(s)

FROMtable_name

WHEREcondition

註釋:視圖總是顯示最近的數據。每當用戶查詢視圖時,數據庫引擎通過使用SQL語句來重建數據。

觸發器是壹種特殊類型的存儲過程,它不同於之前的我們介紹的存儲過程。觸發器主要是通過事件進行觸發被自動調用執行的。而存儲過程可以通過存儲過程的名稱被調用。

0?1什麽是觸發器

觸發器對表進行插入、更新、刪除的時候會自動執行的特殊存儲過程。觸發器壹般用在check約束更加復雜的約束上面。觸發器和普通的存儲過程的區別是:觸發器是當對某壹個表進行操作。諸如:update、insert、delete這些操作的時候,系統會自動調用執行該表上對應的觸發器。SQLServer2005中觸發器可以分為兩類:DML觸發器和DDL觸發器,其中DDL觸發器它們會影響多種數據定義語言語句而激發,這些語句有create、alter、drop語句。

DML觸發器分為:

1、after觸發器(之後觸發)

a、insert觸發器

b、update觸發器

c、delete觸發器

2、insteadof觸發器(之前觸發)

其中after觸發器要求只有執行某壹操作insert、update、delete之後觸發器才被觸發,且只能定義在表上。而insteadof觸發器表示並不執行其定義的操作(insert、update、delete)而僅是執行觸發器本身。既可以在表上定義insteadof觸發器,也可以在視圖上定義。

觸發器有兩個特殊的表:插入表(instered表)和刪除表(deleted表)。這兩張是邏輯表也是虛表。有系統在內存中創建者兩張表,不會存儲在數據庫中。而且兩張表的都是只讀的,只能讀取數據而不能修改數據。這兩張表的結果總是與被改觸發器應用的表的結構相同。當觸發器完成工作後,這兩張表就會被刪除。Inserted表的數據是插入或是修改後的數據,而deleted表的數據是更新前的或是刪除的數據。

  • 上一篇:源代碼索引
  • 下一篇:我出生於農歷1988年4月5日。我應該是什麽星座?
  • copyright 2024編程學習大全網