婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 淺談MySql 視圖、觸發(fā)器以及存儲過程

淺談MySql 視圖、觸發(fā)器以及存儲過程

熱門標簽:400電話到哪辦理優(yōu)惠 怎么更改高德地圖標注 博樂電銷機器人 云南大數(shù)據(jù)外呼系統(tǒng) 機器人打電銷電話 上海市三維地圖標注 南寧外呼系統(tǒng)招商 鄭州網絡外呼系統(tǒng)價錢 電話機器人是電腦呼號嗎

視圖

什么是視圖?視圖的作用是什么?

視圖(view)是一種虛擬存在的表,是一個邏輯表,它本身是不包含數(shù)據(jù)的。作為一個select語句保存在數(shù)據(jù)字典中的

通過視圖,可以展現(xiàn)基表(用來創(chuàng)建視圖的表叫做基表base table)的部分數(shù)據(jù),說白了視圖的數(shù)據(jù)就是來自于基表。

視圖的優(yōu)點:

  • 簡單:使用視圖的用戶完全不需要關心后面對應的表的結構、關聯(lián)條件和篩選條件,對用戶來說已經是過濾好的復合條件的結果集。
  • 安全:使用視圖的用戶只能訪問他們被允許查詢的結果集,對表的權限管理并不能限制到某個行某個列,但是通過視圖就可以簡單的實現(xiàn)。
  • 數(shù)據(jù)獨立:一旦視圖的結構確定了,可以屏蔽表結構變化對用戶的影響,源表增加列對視圖沒有影響;源表修改列名,則可以通過修改視圖來解決,不會造成對訪問者的影響。
  • 不占用空間:視圖是邏輯上的表,不占用內存空間​。

總而言之,使用視圖的大部分情況是為了保障數(shù)據(jù)安全性,提高查詢效率。

視圖的缺點:

  • 性能差:sql server 必須把視圖查詢轉化成對基本表的查詢,如果這個視圖是由一個復雜的多表查詢所定義,那么,即使是視圖的一個簡單查詢,sql server 也要把它變成一個復雜的結合體,需要花費一定的時間。
  • 修改限制:當用戶試圖修改試圖的某些信息時,數(shù)據(jù)庫必須把它轉化為對基本表的某些信息的修改,對于簡單的試圖來說,這是很方便的,但是,對于比較復雜的試圖,可能是不可修改的。

視圖的創(chuàng)建以及修改

--創(chuàng)建的基本語法是:
create view 視圖名稱> as select 語句;
create view 視圖名稱> (字段) as select 語句;
create or replace view 視圖名稱>;

--修改的語法是:
alter view 視圖名稱> as select 語句;

--視圖刪除語法:
drop view 視圖名稱> ;

觸發(fā)器

什么是觸發(fā)器?

觸發(fā)器就是監(jiān)視某種情況,并觸發(fā)某種操作。

創(chuàng)建、刪除觸發(fā)器的語法:

--創(chuàng)建觸發(fā)器的語法:
create trigger 觸發(fā)器名稱 after/before insert/update/delete on 表名 
for each row
begin
sql語句;
end

--after/before:可以設置為事件發(fā)生前或后
--insert/update/delete:它們可以在執(zhí)行insert、update或delete的過程中觸發(fā)
--for each row:每隔一行執(zhí)行一次動作

--刪除觸發(fā)器的語法:
drop trigger 觸發(fā)器名稱;

演示

--創(chuàng)建一個員工遲到表:
create table work_time_delay(
empno int not null comment '雇員編號',
ename varchar(50) comment '雇員姓名',
status int comment '狀態(tài)'
);

--delimiter // 自定義語句的結束符號
​
delimiter //

create trigger trig_work after insert on work_time_delay
for each row
begin
 update employee set sal=sal-100 where empno=new.empno;
end
//

--new:指的是事件發(fā)生before或者after保存的新數(shù)據(jù)

存儲過程

什么是存儲過程?

存儲過程就是把復雜的一系列操作,封裝成一個過程。類似于 shell,python 腳本等。

存儲過程的優(yōu)點:

  • 復雜操作,調用簡單
  • 速度快

存儲過程的缺點:

  • 封裝復雜
  • 沒有靈活性

創(chuàng)建存儲過程語法

--創(chuàng)建存儲過程語法:
create procedure 名稱 (參數(shù)....)
begin
 過程體;
 過程體;
end
--參數(shù):
-- in|out|inout 參數(shù)名稱 類型(長度)
-- in:表示調用者向過程傳入值(傳入值可以是字面量或變量)
-- out:表示過程向調用者傳出值(可以返回多個值)(傳出值只能是變量)
-- inout:既表示調用者向過程傳入值,又表示過程向調用者傳出值(值只能是變量)

--聲明變量:declare 變量名 類型(長度) default 默認值;
--給變量賦值:set @變量名=值;
--調用存儲命令:call 名稱(@變量名);
--刪除存儲過程命令:drop procedure 名稱;
--查看創(chuàng)建的存儲過程命令:show create procedure 名稱\G;

演示

--創(chuàng)建一個簡單的存儲過程:
delimiter //
create procedure name(in n int)
begin
 select * from employee limit n;
end
//

--調用存儲過程
set @n=5;
//

call name(@n);
create procedure name()
begin
 declare n int default 6;
 select * from employee limit n;
end
//

--調用存儲過程
call name();
//

以上就是淺談MySql 視圖、觸發(fā)器以及存儲過程的詳細內容,更多關于MySql 視圖、觸發(fā)器以及存儲過程的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 存儲過程解密(破解函數(shù),過程,觸發(fā)器,視圖.僅限于SQLSERVER2000)
  • SQLSERVER對加密的存儲過程、視圖、觸發(fā)器進行解密(推薦)
  • 基于mysql事務、視圖、存儲過程、觸發(fā)器的應用分析
  • MySql視圖觸發(fā)器存儲過程詳解
  • MySQL系列之五 視圖、存儲函數(shù)、存儲過程、觸發(fā)器

標簽:恩施 杭州 益陽 寧夏 秦皇島 定西 澳門 白銀

巨人網絡通訊聲明:本文標題《淺談MySql 視圖、觸發(fā)器以及存儲過程》,本文關鍵詞  淺談,MySql,視圖,觸發(fā)器,;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺談MySql 視圖、觸發(fā)器以及存儲過程》相關的同類信息!
  • 本頁收集關于淺談MySql 視圖、觸發(fā)器以及存儲過程的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 钦州市| 上虞市| 临桂县| 陕西省| 广西| 黄浦区| 西峡县| 平阳县| 通州市| 杭州市| 额尔古纳市| 铁岭市| 化州市| 霍邱县| 始兴县| 北辰区| 诸城市| 盐池县| 金平| 阜宁县| 大余县| 蒲城县| 敦煌市| 沿河| 曲水县| 康乐县| 井冈山市| 永定县| 任丘市| 洛南县| 松阳县| 邢台市| 宿州市| 油尖旺区| 苗栗县| 孟州市| 当阳市| 佛冈县| 罗源县| 聊城市| 阳高县|