php之資料庫的連線與觸發器 V客學院知識分享

2021-08-20 08:29:45 字數 2890 閱讀 7319



第一部分:連線

第一:left join 關鍵字語法(左連線)

select column_name(s)

from table_name1

left join table_name2

on table_name1.column_name=table_name2.column_name

第二:左連線(left join)例項

select persons.lastname, persons.firstname, orders.orderno

from persons

left join orders

on persons.id_p=orders.id_p

order by persons.lastname

第三:right join 關鍵字語法

select column_name(s)

from table_name1

right join table_name2

on table_name1.column_name=table_name2.column_name

第四:右連線(right join)例項

select persons.lastname, persons.firstname, orders.orderno

from persons

right join orders

on persons.id_p=orders.id_p

order by persons.lastname

第五:sql inner join 關鍵字

select column_name(s)

from table_name1

inner join table_name2

on table_name1.column_name=table_name2.column_name

第六:內連線(inner join)例項

select persons.lastname, persons.firstname, orders.orderno

from persons

inner join orders

on persons.id_p=orders.id_p

order by persons.lastname

第七:外連線

drop view if exists v_selectall;

create view v_selectall

asselect persons.lastname, persons.firstname, orders.orderno

from persons

left join orders

on persons.id_p=orders.id_p

union

select persons.lastname, persons.firstname, orders.orderno

from persons

right join orders

on persons.id_p=orders.id_p;

第二部分:觸法器

建立觸發器

在mysql中,建立觸發器語法如下:

create trigger trigger_name

trigger_time

trigger_event on tbl_name

for each row

trigger_stmt

其中:trigger_name:標識觸發器名稱,使用者自行指定;

trigger_time:標識觸發時機,取值為 before 或 after;

trigger_event:標識觸發事件,取值為 insert、update 或 delete;

tbl_name:標識建立觸發器的表名,即在哪張表上建立觸發器;

trigger_stmt:觸發器程式體,可以是一句sql語句,或者用 begin 和 end 包含的多條語句。

第一:語法

1.建立觸法器:create trigger trigger_name

2.觸發的時機:before 或 after

3.標識觸發事件 insert、update 或 delete;

4.建立觸發器的表名  on

5.觸發器程式體    for each row

第二:例項

例項一:

drop trigger if exists t_op; 

create trigger t_op

after insert  on  p_orders

for each row

begin

update p_product set pro_num=pro_num-new.orders_num where pro_id=new.pro_id;

end;

insert into p_orders(pro_id,orders_num) values(1,5);

select * from p_product;

select * from p_orders;

例項二:

drop trigger if exists t_opold; 

create trigger t_opold

before delete  on  p_orders

for each row

begin

update p_product set pro_num=pro_num+old.orders_num where pro_id=old.pro_id;

end;

delete from p_orders where orders_id=3;

select * from p_product;

select * from p_orders;

資料庫之觸發器

觸發器 看到這個名字總是會想到數電中學過的觸發器,有輸入端和輸出端,根據電平的高低來觸發。資料庫中的觸發器是個特殊的儲存過程,主要是通過事件進行觸發而被執行的,而儲存過程可以通過儲存過程名稱而被直接呼叫。作用 使用t sql語句進行複雜的邏輯處理,基於乙個表建立,但是可以對多個表進行操作,因此常常用...

資料庫之觸發器

觸發器 看到這個名字總是會想到數電中學過的觸發器,有輸入端和輸出端,根據電平的高低來觸發。資料庫中的觸發器是個特殊的儲存過程,主要是通過事件進行觸發而被執行的,而儲存過程可以通過儲存過程名稱而被直接呼叫。作用 使用t sql語句進行複雜的邏輯處理,基於乙個表建立,但是可以對多個表進行操作,因此常常用...

資料庫之觸發器

1.概述 觸發器是特殊的儲存過程。儲存過程是由使用者主動去呼叫執行,觸發器是資料庫在發生一些事件的時候主動呼叫。常見的觸發器 sql server 有instead of 和 after for 資料庫為觸發器特別的建立兩張表 inserted表 deleted表 這兩張表由資料庫維護,存在記憶體中...