mysql數據庫 視圖,函數,存儲過程,觸發器,索引,外鍵的理解

新手入門mysql數據庫高階

1.視圖

是由查詢結果形成的一種虛擬的表,是表通過某種運算得到的投影。

一張表可以有多個視圖。

創建視圖的方法 新建查詢輸入指令 create view view name as select 語句

也可直接到navicat視圖裏面寫入查詢語句 select 語句。

說明:

視圖與表屬於同一個級別的名字,隸屬於數據庫

視圖也可以設置自己的字段名 ,不會影響到表,但通常不設置。

注意 如果表中修改某一數據 是會影響到視圖中的數據的

視圖的使用,幾乎與表一模一樣。。。

作用:

簡化查詢。。可以將表中常用的數據 形成一個視圖,那麼就直接從視圖中進行操作,從而簡化直接從表中查詢的麻煩。

2.函數

就是函數,實現一些功能。。 比如一下函數 函數名爲first 參數是輸入IN型 i int型的。 實現輸入參數i 得到yyid值爲i那一條記錄。

[

結果

在這裏插入圖片描述

3.存儲過程

sql語句集。

一般的sql語句每執行一次就編譯一次,存儲過程只在創造時編譯一次,之後在使用的時候不會編譯,提高數據庫執行速度。

當對數據庫執行復雜操作時,比如對多表進行curd操作,那麼就可以將複雜操作用存儲過程封裝起來,與數據庫的事務處理結合起來一起使用。

存儲過程可以反覆使用。

說明:

存儲過程中的參數有輸入參數(in),輸出參數(out),默認輸入參數。

存儲過程可以有編程元素,函數調用,控制語句,變量 以及各種sql語句

當存儲過程中只有一條語句時,可以不用有begin end

存儲過程以select sql語句作爲結果集返回。

4.觸發器

特殊的存儲過程,它是自動執行的,不能被調用。

特性:

有begin end體 begin end之間的語句可以寫的複雜或簡單

觸發頻率 針對每一行執行

觸發器定義在表上 ,附着在表上。

創建觸發器

語法:

create trigger trigger name

after/before insert/select/update/delete on 表名

for each row

beign

//sql語句 (觸發的語句)

end

實例 購買一瓶可樂 就減少一個庫存。

#首先創建商品表

create table it_goods(yyid int,goods_name varchar(10),goods_number int)charset utf8;

insert into it_goods values(1,”可樂“,22),(2,“雪碧”,23),(3,“美年達”,43),(4,“樂虎”,10);

#創建一個訂單表

create table it_order(order_id int, goods_id int,much int)charset utf8;

insert into it_goods values(1,2,3)

分析如何創建觸發器:

監視地點:it_order 表

監視時間:it_order 表的inert操作

觸發時間: it_order表的insert之後

出發時間:it_goods表的減少一個庫存

2.根據分析創建觸發器

create trigger my_trigger

after insert on it_order

for each row

beign

update set goods_number=goods_number-1 where yyid=1;

end;

4.索引

索引是一種數據結構

索引體現在搜索的性能上。

主鍵是默認的索引。

覆蓋索引

如果

5.外鍵

外鍵就是其他表的主鍵。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章