国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

商丘做網(wǎng)站sqlongliqi市場營銷四大基本策略

商丘做網(wǎng)站sqlongliqi,市場營銷四大基本策略,做圖片能去哪些網(wǎng)站,阜陽手機網(wǎng)站開發(fā)文章目錄 基本概述創(chuàng)建觸發(fā)器更改和刪除觸發(fā)器總結(jié) 基本概述 存儲過程,類似于高階語言的函數(shù)或者方法,包含SQL語句序列,是可復(fù)用的語句,保存在數(shù)據(jù)庫中,在服務(wù)器中執(zhí)行。特點是復(fù)用,提高了效率&#xff0c…

文章目錄

    • 基本概述
    • 創(chuàng)建觸發(fā)器
    • 更改和刪除觸發(fā)器
    • 總結(jié)

基本概述

存儲過程,類似于高階語言的函數(shù)或者方法,包含SQL語句序列,是可復(fù)用的語句,保存在數(shù)據(jù)庫中,在服務(wù)器中執(zhí)行。特點是復(fù)用,提高了效率,安全性。

觸發(fā)器(Trigger)是數(shù)據(jù)庫中一種特殊的存儲過程,它可以在數(shù)據(jù)表上定義特定的事件(如插入、更新或刪除操作)發(fā)生時自動執(zhí)行。觸發(fā)器的主要作用是實現(xiàn)數(shù)據(jù)的完整性約束、審計、日志記錄等功能。在SQL語言中,觸發(fā)器的使用非常廣泛,它可以幫助我們更好地管理和維護數(shù)據(jù)庫。

觸發(fā)器的主要特點如下:

  1. 觸發(fā)器是一種特殊類型的存儲過程,它與普通的存儲過程不同之處在于,觸發(fā)器不能被直接調(diào)用,而是在滿足特定條件時自動執(zhí)行。
  2. 觸發(fā)器可以關(guān)聯(lián)到一個或多個數(shù)據(jù)表,當(dāng)這些表的數(shù)據(jù)發(fā)生變化時,觸發(fā)器會自動執(zhí)行。這種關(guān)聯(lián)關(guān)系是通過觸發(fā)器的定義來實現(xiàn)的。
  3. 觸發(fā)器可以分為多種類型,如DML觸發(fā)器(針對INSERT、UPDATE、DELETE操作)、DDL觸發(fā)器(針對CREATE、ALTER、DROP等操作)和LOGON觸發(fā)器(針對用戶登錄操作)。不同類型的觸發(fā)器可以實現(xiàn)不同的功能。
  4. 觸發(fā)器可以訪問被修改的數(shù)據(jù)行,這使得我們可以在觸發(fā)器中對數(shù)據(jù)進行更復(fù)雜的處理。例如,我們可以在插入新數(shù)據(jù)時檢查數(shù)據(jù)的有效性,或者在更新數(shù)據(jù)時自動更新與之相關(guān)的其他數(shù)據(jù)表。
  5. 觸發(fā)器可以級聯(lián)執(zhí)行。當(dāng)一個觸發(fā)器執(zhí)行時,它可以觸發(fā)另一個觸發(fā)器的執(zhí)行。這種級聯(lián)關(guān)系可以幫助我們實現(xiàn)更復(fù)雜的業(yè)務(wù)邏輯。
  6. 觸發(fā)器可以提高數(shù)據(jù)庫的性能。通過在觸發(fā)器中實現(xiàn)一些復(fù)雜的業(yè)務(wù)邏輯,我們可以減少客戶端程序的負(fù)擔(dān),從而提高整個系統(tǒng)的性能。
  7. 觸發(fā)器可以提高數(shù)據(jù)的一致性。通過在觸發(fā)器中實現(xiàn)數(shù)據(jù)的完整性約束,我們可以確保數(shù)據(jù)的準(zhǔn)確性和一致性。
  8. 觸發(fā)器可以實現(xiàn)數(shù)據(jù)庫的審計和日志記錄功能。通過在觸發(fā)器中記錄數(shù)據(jù)的變化情況,我們可以追蹤數(shù)據(jù)庫的操作歷史,從而便于分析和排查問題。
  9. 觸發(fā)器是一種特殊類型的存儲過程,是通過事件觸發(fā)而執(zhí)行的,而存儲過程可以通過存儲過程名稱而被直接調(diào)用。

觸發(fā)器數(shù)據(jù)庫對象,當(dāng)創(chuàng)建一個觸發(fā)器時必須指定:1> 名稱;2> 在其上定義觸發(fā)器的表;3> 觸發(fā)器將何時激發(fā);4> 指明觸發(fā)器執(zhí)行時應(yīng)做的動作。其名稱必須遵循標(biāo)識符的命名規(guī)則,數(shù)據(jù)庫像存儲普通數(shù)據(jù)那樣存儲觸發(fā)器。觸發(fā)器可以引用當(dāng)前數(shù)據(jù)庫以外的對象,但只能在當(dāng)前數(shù)據(jù)庫中創(chuàng)建觸發(fā)器。盡管不能在臨時表或系統(tǒng)表上創(chuàng)建觸發(fā)器,但是觸發(fā)器可以引用臨時表。

觸發(fā)動作實際上是一系列SQL語句,可以有兩種方式:

(1) 對被事件影響的每一行(FOR EACH ROW),每一元組執(zhí)行觸發(fā)過程,稱為行級觸發(fā)器。

(2) 對整個事件只執(zhí)行一次觸發(fā)過程(FOR EACH STATEMENT),稱為語句級觸發(fā)器。該方式是觸發(fā)器的默認(rèn)方式。

創(chuàng)建觸發(fā)器

觸發(fā)器主要包括兩個方面:指明觸發(fā)器的觸發(fā)事件,指明觸發(fā)器執(zhí)行的動作。

觸發(fā)事件包括表中行的插入、刪除和修改,即執(zhí)行 INSERT、DELETE、UPDATE 語句。 在修改操作 (UPDATE)中,還可以指定特定的屬性或?qū)傩越M的修改為觸發(fā)條件。事件的觸發(fā)還有兩個相關(guān)的時間:BEFORE 和 AFTER。BEFORE 觸發(fā)器是在事件發(fā)生之前觸發(fā),AFTER 觸發(fā)器是在事件發(fā)生之后觸發(fā)。創(chuàng)建觸發(fā)器語句格式如下:

CREATE TRIGGER <觸發(fā)器名> [{BEFORE|AFTER}]
{[DELETE|INSERT|UPDATE OF[列名清單]]}
ON 
[REFERENCING <臨時視圖名>]
[FOR EACH ROW|FOR EACH STATEMENT]
[WHEN <觸發(fā)條件>]
BEGIN
<觸發(fā)動作>
END [觸發(fā)器名];

參數(shù)說明:

  • BEFORE:指示 DBMS 在執(zhí)行觸發(fā)語句之前激發(fā)觸發(fā)器。
  • AFTER:指示 DBMS在執(zhí)行觸發(fā)語句之后激發(fā)觸發(fā)器。
  • DELETE:指明是 DELETE 觸發(fā)器,每當(dāng)一個DELETE 語句從表中刪除一行時激發(fā)觸發(fā)器。
  • INSERT:指明是 INSERT 觸發(fā)器,每當(dāng)一個INSERT語句向表中插入一行時激發(fā)觸發(fā)器
  • UPDATE:指明是 UPDATE 觸發(fā)器,每當(dāng) UPDATE 語句修改由 OF 子句指定的列值時,激發(fā)觸發(fā)器。如果忽略 OF 子句,每當(dāng) UDPATE 語句修改表的任何列值時,DBMS 都將激發(fā)觸發(fā)器。
  • REFERENCING <臨時視圖名>:指定臨時視圖的別名 。在觸發(fā)器運行過程中,系統(tǒng)會生成兩個臨時視圖,分別存放被更新值(舊值)和更新后的值(新值)。對于行級觸發(fā)器, 默認(rèn)臨時視圖名分別是 OLD 和 NEW;對于語句級觸發(fā)器,默認(rèn)臨時視圖名分別是 OLD-TABLE 和 NEW-TABLE。一旦觸發(fā)器運行結(jié)束,臨時視圖就不在。
  • WHEN <觸發(fā)條件>:指定觸發(fā)器的觸發(fā)條件。當(dāng)滿足觸發(fā)條件時,DBMS 才激發(fā)觸發(fā)器。觸發(fā)條件中必須包含臨時視圖名,不包含查詢。

示例1. 銀行數(shù)據(jù)庫關(guān)系模式如下:

            Account (Account-no, branch-name, balance)Loan (Loan-no, branch-name, amount)Depositor (customer-name, Account-no)

賬戶關(guān)系模式 Account 中的屬性 Account-no 表示賬號 ,branch-name 表示支行名稱,balance 表示余額。貸款關(guān)系模式 Loan 中的屬性 Loan-no 表示貸款號,branch-name 表示支行名稱,amount 表示金額。存款關(guān)系模式 Depositor 中的屬性 customer-name 表示存款人姓名。SQL-99 創(chuàng)建觸發(fā)器如下所示:

CREATE TRIGGER overdraft_trigger AFTER UPDATE ON Account
REFERENCING NEW ROW AS nrow
FOR EACH ROW 
WHEN nrow.balance < 0 
BEGIN ATOMIC
INSERT INTO borrower
(SELECT customer-name,Account-no
FROM Depositor
WHERE nrow.account-no = Depositor.account-no);
INSERT INTO loan VALUES (nrow.account-no,branch-name,-nrow.balance);
UPDATE account SET balance = 0
WHERE account.account-no = nrow.account-no;
END;

When語句指定一個條件nrow.balance<0。僅對滿足條件的元組才會執(zhí)行余下的觸發(fā)器;BEGIN ATOMIC 子句用來將多行SQL語句集成為一個復(fù)合語句,該子句中的兩條 INSERT INTO 語句執(zhí)行了在borrower和loan關(guān)系中建立新的貸款業(yè)務(wù);UPDATE語句用來將賬戶余額清零;

示例2. 倉庫管理數(shù)據(jù)庫中有如下關(guān)系,請創(chuàng)建一個重新訂購商品的觸發(fā)器。

          inventory(item,level) :表示某種商品在倉庫中的現(xiàn)有量minlevel(item,level) :表示某種商品在倉庫中存有的最小量reorder(item,amount) :表示某種商品小于最小量的時候要訂購的數(shù)量orders(item,amount):表示某種商品被定購的量
CREATE TRIGGER reorder_trigger AFTER UPDATE OF amount on inventory
REFERENCING OLD ROW AS orow,NEW ROW AS nrow
FOR EACH ROW 
WHEN nrow.level <= (SELECT levelFROM minlevelWHERE minlevel.item = orow.item)
AND orow.level > (SELECT levelFROM minlevelWHERE minlevel.item = orow.item)
BEGIN 
INSERT INTO orders
(SELECT item,amount
FROM reorder
WHERE reorder.item = orow.item)
END;

示例3. 若修改某商品的庫存時,使得庫存值小于或等于其最小庫存值,則向采購表插入一條記錄,要求采購的數(shù)量是該商品最小庫存值的兩倍再加上10。

CREATE TRIGGER 采購-trigger AFTER UPDATE ON 商品 [AFTER UPDATE OF 庫存 ON 商品]
REFERENCING NEW ROW AS nrow
FOR EACH ROW
WHEN nrow.庫存<=nrow.最小庫存
BEGIN
INSERT INTO 采購(商品號,采購數(shù)量)
VALUES(nrow.商品號,nrow.最小庫存*2+10)
END;

更改和刪除觸發(fā)器

使用系統(tǒng)命令 ALTER TRIGGER 更改指定的觸發(fā)器的定義,語法如下:

ALTER TRIGGER <觸發(fā)器> [{BEFORE|AFTER}] {[DELETE|INSERT|UPDATE OF [列名清單]]}
ON 表名|視圖名
AS 
BEGIN SQL STATEMENTS
END;

使用 DROP TRIGGER <觸發(fā)器>[,…n],其中,n 表示可以指定多個觸發(fā)器的占位符。

總結(jié)

觸發(fā)器是數(shù)據(jù)庫中一種非常重要的功能,它可以幫助我們實現(xiàn)數(shù)據(jù)的完整性約束、審計、日志記錄等功能。通過合理地使用觸發(fā)器,我們可以提高數(shù)據(jù)庫的性能和數(shù)據(jù)的一致性,從而更好地管理和維護數(shù)據(jù)庫。然而,觸發(fā)器的使用也需要謹(jǐn)慎,因為不當(dāng)?shù)氖褂每赡軙?dǎo)致性能問題和數(shù)據(jù)不一致的問題。因此,在使用觸發(fā)器時,我們需要充分了解其原理和使用方法,以確保其能夠發(fā)揮最大的作用。

http://aloenet.com.cn/news/36975.html

相關(guān)文章:

  • linux如何架設(shè)網(wǎng)站貴陽網(wǎng)絡(luò)推廣排名
  • 微信小程序視頻網(wǎng)站開發(fā)教程靜態(tài)網(wǎng)頁制作
  • 網(wǎng)站建設(shè)圖片怎么做免費b站網(wǎng)頁推廣
  • 網(wǎng)站做數(shù)據(jù)分析的意義北京百度推廣投訴電話
  • 做網(wǎng)站營業(yè)執(zhí)照經(jīng)營范圍怎么填寫免費seo排名軟件
  • 做公司網(wǎng)站用什么系統(tǒng)上海疫情最新數(shù)據(jù)
  • 淮安市哪里可以做網(wǎng)站開魯視頻
  • wordpress頁面教程視頻小紅書搜索優(yōu)化
  • 商標(biāo) 做網(wǎng)站 是幾類站長工具天美傳媒
  • 雅安交通建設(shè)集團網(wǎng)站太原網(wǎng)絡(luò)推廣公司哪家好
  • 鄭州網(wǎng)站建設(shè)網(wǎng)站制作百度官網(wǎng)推廣平臺電話
  • 輕云服務(wù)器 多個網(wǎng)站今日頭條鄭州頭條新聞
  • 泉州網(wǎng)站制作專業(yè)產(chǎn)品怎么做市場推廣
  • 網(wǎng)站建設(shè)的常用詞搜收錄網(wǎng)
  • 動態(tài)購物網(wǎng)站開發(fā)源代碼西地那非能提高硬度嗎
  • 做網(wǎng)站能拿多少錢淘寶指數(shù)查詢工具
  • 電信服務(wù)器做網(wǎng)站網(wǎng)絡(luò)整合營銷理論案例
  • 織夢響應(yīng)式茶葉網(wǎng)站流感用什么藥最好
  • 網(wǎng)站access數(shù)據(jù)怎么做朝陽seo推廣
  • 專業(yè)鄭州做網(wǎng)站的公司百度關(guān)鍵詞seo優(yōu)化
  • 網(wǎng)站域名授權(quán)怎么做什么叫seo
  • 佛山網(wǎng)站建設(shè)收費標(biāo)準(zhǔn)seo索引擎優(yōu)化
  • 國內(nèi)哪里在搞建設(shè)長沙快速排名優(yōu)化
  • 中小企業(yè)服務(wù)肇慶seo
  • 電腦瀏覽器網(wǎng)頁打不開是什么原因關(guān)鍵詞seo排名優(yōu)化軟件
  • 網(wǎng)站委托書找誰做市場推廣怎么做
  • 湖南網(wǎng)站建設(shè)競價推廣教程
  • 一個網(wǎng)站域名多少錢做網(wǎng)站的軟件叫什么
  • dw網(wǎng)站站點建立后怎么做推廣工作的流程及內(nèi)容
  • 四川住房和城鄉(xiāng)建設(shè)九大員網(wǎng)站百度知道官網(wǎng)手機版