国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

淺談MySql 視圖、觸發器以及存儲過程

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

視圖

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

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

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

視圖的優點:

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

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

視圖的缺點:

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

視圖的創建以及修改

--創建的基本語法是:create view <視圖名稱> as select 語句;create view <視圖名稱> (字段) as select 語句;create or replace view <視圖名稱>;--修改的語法是:alter view <視圖名稱> as select 語句;--視圖刪除語法:drop view <視圖名稱> ;

觸發器

什么是觸發器?

觸發器就是監視某種情況,并觸發某種操作。

創建、刪除觸發器的語法:

--創建觸發器的語法:create trigger 觸發器名稱 after/before insert/update/delete on 表名 for each rowbeginsql語句;end--after/before:可以設置為事件發生前或后--insert/update/delete:它們可以在執行insert、update或delete的過程中觸發--for each row:每隔一行執行一次動作--刪除觸發器的語法:drop trigger 觸發器名稱;

演示

--創建一個員工遲到表:create table work_time_delay(empno int not null comment ’雇員編號’,ename varchar(50) comment ’雇員姓名’,status int comment ’狀態’);--delimiter // 自定義語句的結束符號​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:指的是事件發生before或者after保存的新數據

存儲過程

什么是存儲過程?

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

存儲過程的優點:

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

存儲過程的缺點:

封裝復雜 沒有靈活性

創建存儲過程語法

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

演示

--創建一個簡單的存儲過程: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 視圖、觸發器以及存儲過程的詳細內容,更多關于MySql 視圖、觸發器以及存儲過程的資料請關注好吧啦網其它相關文章!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 欧美性另类69xxxx极品 | 一区二区三区四区免费视频 | 成人中文字幕在线观看 | 久久精品亚洲精品一区 | 日韩在线国产 | 中文字幕在线观看国产 | 国产99高清一区二区 | 一区免费在线观看 | 欧美在线一| 久久无码精品一区二区三区 | 精品久久网站 | 日本在线免费播放 | 夜色成人免费观看 | 久久久久久免费一区二区三区 | 国产高清在线免费视频 | 亚洲国产成人私人影院 | 国产伦精品一区二区三区网站 | 91精品国产综合成人 | 欧美一级www片免费观看 | 日本成年人视频网站 | 露脸国产野战最新在线视频 | 亚洲精品久久一区二区无卡 | 九九九精品视频 | 成人区精品一区二区不卡亚洲 | 欧美日韩乱国产 | 精品成人免费一区二区在线播放 | 欧美色穴 | 免费国产a国产片高清不卡 免费国产不卡午夜福在线 免费国产不卡午夜福在线观看 | 久久久青草| 欧美成人性色生活片天天看 | 亚洲天堂久久新 | 热伊人99re久久精品最新地 | 欧美jizzhd精品欧美 | 久久久久久久久久免观看 | 亚洲码一区二区三区 | 69凹凸国产成人精品视频 | 岬奈一区二区中文字幕 | 91香蕉国产线观看免 | 一及黄色 | 久久久久综合 | 特级片免费看 |