色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:106日期:2023-10-14 13:53:31

視圖

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

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

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

視圖的優(yōu)點(diǎn):

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

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

視圖的缺點(diǎn):

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

視圖的創(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 rowbeginsql語句;end--after/before:可以設(shè)置為事件發(fā)生前或后--insert/update/delete:它們可以在執(zhí)行insert、update或delete的過程中觸發(fā)--for each row:每隔一行執(zhí)行一次動(dòng)作--刪除觸發(fā)器的語法:drop trigger 觸發(fā)器名稱;

演示

--創(chuàng)建一個(gè)員工遲到表:create table work_time_delay(empno int not null comment ’雇員編號(hào)’,ename varchar(50) comment ’雇員姓名’,status int comment ’狀態(tài)’);--delimiter // 自定義語句的結(jié)束符號(hào)​delimiter //create trigger trig_work after insert on work_time_delayfor each rowbegin update employee set sal=sal-100 where empno=new.empno;end//--new:指的是事件發(fā)生before或者after保存的新數(shù)據(jù)

存儲(chǔ)過程

什么是存儲(chǔ)過程?

存儲(chǔ)過程就是把復(fù)雜的一系列操作,封裝成一個(gè)過程。類似于 shell,python 腳本等。

存儲(chǔ)過程的優(yōu)點(diǎn):

復(fù)雜操作,調(diào)用簡單 速度快

存儲(chǔ)過程的缺點(diǎn):

封裝復(fù)雜 沒有靈活性

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

--創(chuàng)建存儲(chǔ)過程語法:create procedure 名稱 (參數(shù)....)begin 過程體; 過程體;end--參數(shù):-- in|out|inout 參數(shù)名稱 類型(長度)-- in:表示調(diào)用者向過程傳入值(傳入值可以是字面量或變量)-- out:表示過程向調(diào)用者傳出值(可以返回多個(gè)值)(傳出值只能是變量)-- inout:既表示調(diào)用者向過程傳入值,又表示過程向調(diào)用者傳出值(值只能是變量)--聲明變量:declare 變量名 類型(長度) default 默認(rèn)值;--給變量賦值:set @變量名=值;--調(diào)用存儲(chǔ)命令:call 名稱(@變量名);--刪除存儲(chǔ)過程命令:drop procedure 名稱;--查看創(chuàng)建的存儲(chǔ)過程命令:show create procedure 名稱G;

演示

--創(chuàng)建一個(gè)簡單的存儲(chǔ)過程:delimiter //create procedure name(in n int)begin select * from employee limit n;end//--調(diào)用存儲(chǔ)過程set @n=5;//call name(@n);create procedure name()begin declare n int default 6; select * from employee limit n;end//--調(diào)用存儲(chǔ)過程call name();//

以上就是淺談MySql 視圖、觸發(fā)器以及存儲(chǔ)過程的詳細(xì)內(nèi)容,更多關(guān)于MySql 視圖、觸發(fā)器以及存儲(chǔ)過程的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: MySQL 數(shù)據(jù)庫
相關(guān)文章:
主站蜘蛛池模板: 一级一级一片免费 | 久久久久久久久久免费视频 | 成年人在线免费观看网站 | 99热久久国产精品这 | 韩国黄色一级毛片 | 成年女人毛片免费播放人 | 性感毛片 | 国产性自拍| 亚洲一区二区三区四区 | 成人片网址 | 欧美午夜免费观看福利片 | 欧美极品大肚孕妇孕交 | 亚洲精品手机在线观看 | 97在线视频免费播放 | 国产精品自拍第一页 | 亚洲毛片视频 | 国产成人偷拍 | 一级毛毛片毛片毛片毛片在线看 | 亚洲精品免费网站 | 九九视频只有精品六 | 国产一级在线观看视频 | 三级韩国一区久久二区综合 | 亚洲精品成人7777在线观看 | 亚洲一区中文字幕在线 | 天堂视频网站 | 国产成人mv 在线播放 | 玖草影院| 521av香蕉 | 一级毛片在线视频 | 五月天婷婷伊人 | 黄色a网 | 在线日本看片免费人成视久网 | 亚洲精品成人网 | 亚洲一区免费看 | 中国胖女人一级毛片aaaaa | 成人国产精品久久久免费 | 欧美三级久久 | 一级特黄a免费大片 | 国产精品日产三级在线观看 | 欧美成人一区二区三区在线视频 | 成人自拍视频在线 |