MySQL 11章 索引 觸發器

2022-04-12 05:42:27 字數 3059 閱讀 7031

一、    索引:  1

、 為什麼要使用索引:

一本書需要目錄能快速定位到尋找的內容,同理,資料表中的資料很多時候也可以為他們建立相應的「目錄」,稱為索引,當建立索引後查詢資料也會更加高效  2

、 mysql中的索引型別:

1) 普通索引:在不新增任何關鍵字的情況下建立的索引,他沒有其他特殊功能,就是為了提高查詢效率

2) 唯一索引:使用unique關鍵字標記,被新增唯一索引的字段值不重複

3) 全文索引:使用full text關鍵字標記,mysql在針對一些資料量較大的字段建議建立全文索引,以便在查詢時檢索更快  3

、 建立索引:

1) 在建立資料表結構時就使用關鍵字建立唯一索引:unique關鍵字

2) 使用create index語句完成:

語法:create index

《索引名稱》

on表名(欄位名列表)

舉例:--在tb_student表的student_name上新增唯一索引

create

unique

index inx_student_name_u on

tb_student (student_name);

--檢視索引

show index

from

tb_student ;

3) 在修改資料表時為其新增索引的方式完成:

語法:alter

table

《表名》

add index

《索引名》

(欄位名列表)

舉例:--在tb_student2中的address欄位上建立全文索引。

--從tb_student複製乙份新錶tb_student2

create

table tb_student2 select

*from

tb_student;

select

*from

tb_student2;

--建立全文索引 需要將資料表的引擎修改為myisam

alter

table tb_student2 add fulltext index

inx_address_f (address);

show

index

from

tb_student2;

4) 檢視索引:

語法:show

index

from

《表名》

舉例:show

index

from

tb_student;

5) 刪除索引

語法:drop

index

《索引》

on《表名》

舉例:drop

index inx_address_f on

tb_student2;

*

:針對記錄的crud操作語句:表中的記錄

insert

into,delete,update,select

*:針對資料庫物件的crud操作語句:資料庫、表、觸發器、索引、儲存過程、檢視

create,drop,alter

,show

二、 觸發器:  1

、 什麼是觸發器?

當滿足設定好的條件時會自動執行事先設定好的任務的一種資料庫物件,稱為觸發器。  2

、 觸發器的幾個要素:

1) 觸發地點:具體是針對哪個資料表建立觸發器

2) 觸發事件:具體是執行什麼操作(增刪改)時會啟動觸發器

3) 觸發時機:具體是在操作之前還是之後啟動觸發器  3

、 建立觸發器:

語法:create

trigger

《觸發器名》

/*觸發時機

*/ /*

觸發事件

*/on

《表名》

/*觸發地點

*/for each row /*

固定寫法:針對每一行都生效

*/begin

#為觸發器事先設定的要執行的任務

end;

說明:在觸發器中的取值需要通過old或new關鍵字來獲取欄位的「老值」、「新值」。

舉例:    delimiter

//create

trigger

trig_studentscore

before

insert

ontb_score

foreach row

begin

if new.student_score <

0then

set new.student_score =0;

elseif new.student_score

>

100then

set new.student_score =

100;

endif

;    

end//

delimiter ;

--執行觸發器中對應的觸發事件,啟動觸發器,驗證觸發器是否正常工作

insert

into tb_score values(null,"s08",2,-

3.3,'

2019-10-11');

insert

into tb_score values(null,"s08",2,80.5,'

2019-10-11');

insert

into tb_score values(null,"s08",2,120,'

2019-10-11');

select

*from tb_score where student_no =

's08';

desc

tb_score;

--檢視當前資料庫下的所有觸發器

show triggers;

MySQL 觸發器 索引

博文目錄 觸發器索引 觸發器是mysql響應insert,update,delete語句時自動執行的一條sql語句,只有表支援觸發器,檢視不支援。觸發器需要的資訊 insert觸發器 create trigger tr insert tablea after insert on t tablea f...

觸發器 mysql觸發器

觸發器是一種特殊的儲存過程,它在插入 刪除或修改特定表中的資料時觸發執行,它比資料庫本身標準的功能有更精細和更複雜的資料控制能力。和儲存過程一樣,很少使用。1 觸發器的作用 2 建立觸發器 建立測試環境 mysql create database test db query ok,1 row aff...

my sql 觸發器 mysql建立觸發器

首先,我們來了解一下什麼是觸發器,觸發器,就是在對一張表資料進行增 insert 刪 delete 改 update 的時候,為了保持資料的一致性,對別的表也要進行相應的資料修改。我們都知道mysql最後事務提交後,資料是會儲存到磁碟上的,那麼每次在insert,delete,update時候舊資料...