最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年06月20日 14:42:12   作者:認(rèn)真對(duì)待世界的小白  
這篇文章主要介紹了MySql 視圖、觸發(fā)器以及存儲(chǔ)過(guò)程的的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下

視圖

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

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

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

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

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

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

視圖的缺點(diǎn):

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

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

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

--修改的語(yǔ)法是:
alter view <視圖名稱(chēng)> as select 語(yǔ)句;

--視圖刪除語(yǔ)法:
drop view <視圖名稱(chēng)> ;

觸發(fā)器

什么是觸發(fā)器?

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

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

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

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

--刪除觸發(fā)器的語(yǔ)法:
drop trigger 觸發(fā)器名稱(chēng);

演示

--創(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 // 自定義語(yǔ)句的結(jié)束符號(hào)
​
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ù)

存儲(chǔ)過(guò)程

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

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

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

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

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

  • 封裝復(fù)雜
  • 沒(méi)有靈活性

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

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

--聲明變量:declare 變量名 類(lèi)型(長(zhǎng)度) default 默認(rèn)值;
--給變量賦值:set @變量名=值;
--調(diào)用存儲(chǔ)命令:call 名稱(chēng)(@變量名);
--刪除存儲(chǔ)過(guò)程命令:drop procedure 名稱(chēng);
--查看創(chuàng)建的存儲(chǔ)過(guò)程命令:show create procedure 名稱(chēng)\G;

演示

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

--調(diào)用存儲(chǔ)過(guò)程
set @n=5;
//

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

--調(diào)用存儲(chǔ)過(guò)程
call name();
//

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

相關(guān)文章

  • mysql數(shù)據(jù)庫(kù)decimal類(lèi)型與decimal長(zhǎng)度用法詳解

    mysql數(shù)據(jù)庫(kù)decimal類(lèi)型與decimal長(zhǎng)度用法詳解

    在MySQL中decimal是一種用于存儲(chǔ)精確數(shù)字的數(shù)據(jù)類(lèi)型,下面這篇文章主要給大家介紹了關(guān)于mysql數(shù)據(jù)庫(kù)decimal類(lèi)型與decimal長(zhǎng)度用法的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • MySQL出現(xiàn)2003錯(cuò)誤的三種解決方法

    MySQL出現(xiàn)2003錯(cuò)誤的三種解決方法

    本文主要介紹了MySQL出現(xiàn)2003錯(cuò)誤的解決方法,主要介紹了3種方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • mysql執(zhí)行時(shí)間為負(fù)數(shù)的原因分析

    mysql執(zhí)行時(shí)間為負(fù)數(shù)的原因分析

    今天看到有人把phpmyadmin中的執(zhí)行時(shí)間出現(xiàn)負(fù)數(shù)的情況視為phpmyadmin的bug, 其實(shí)這種情況的本質(zhì)是php中浮點(diǎn)數(shù)(float)的精度問(wèn)題。
    2010-08-08
  • mysql 5.7.13 winx64安裝配置方法圖文教程(win10)

    mysql 5.7.13 winx64安裝配置方法圖文教程(win10)

    這篇文章主要為大家分享了mysql 5.7.13 winx64安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • MySQL的binlog日志使用詳解

    MySQL的binlog日志使用詳解

    這篇文章主要介紹了MySQL的binlog日志使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • windows下mysql 8.0.16 安裝配置方法圖文教程

    windows下mysql 8.0.16 安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了windows下mysql 8.0.16 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • Mysql誤刪除DELETE數(shù)據(jù)找回操作指南

    Mysql誤刪除DELETE數(shù)據(jù)找回操作指南

    如果我們?cè)跀?shù)據(jù)庫(kù)中不小心執(zhí)行了類(lèi)似"delete from t1"這樣的不帶where條件的語(yǔ)句,那么整張表的數(shù)據(jù)就全被刪除了,下面這篇文章主要給大家介紹了關(guān)于Mysql誤刪除DELETE數(shù)據(jù)找回操作的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • MySQL 8.0.12的安裝與卸載教程詳解

    MySQL 8.0.12的安裝與卸載教程詳解

    這篇文章主要介紹了MySQL 8.0.12的安裝與卸載的教程,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-12-12
  • mysql啟動(dòng)報(bào)錯(cuò)MySQL server PID file could not be found

    mysql啟動(dòng)報(bào)錯(cuò)MySQL server PID file could not be found

    這篇文章主要介紹了mysql啟動(dòng)報(bào)錯(cuò)MySQL server PID file could not be found,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • MySQL 的覆蓋索引與回表的使用方法

    MySQL 的覆蓋索引與回表的使用方法

    這篇文章主要介紹了MySQL 的覆蓋索引與回表的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02

最新評(píng)論

郯城县| 莱芜市| 四子王旗| 中卫市| 渝北区| 会东县| 南充市| 西青区| 尼玛县| 贺兰县| 富源县| 保靖县| 肇州县| 拜城县| 阿荣旗| 嵩明县| 福州市| 江西省| 棋牌| 河西区| 拜城县| 海阳市| 台南县| 孝昌县| 塘沽区| 宜城市| 西平县| 南康市| 大荔县| 湘阴县| 尼勒克县| 蕉岭县| 饶阳县| 旌德县| 镇远县| 安庆市| 华蓥市| 科技| 威信县| 牡丹江市| 武宣县|