索引和觸發器操作

2022-04-15 01:11:00 字數 1931 閱讀 4209

索引

在基本表上建立乙個或多個索引,可以提供多種訪問路徑,加快查詢速度。sql新標準不主張使用索引,而是以在建立表時直接定義主鍵,一般系統會自動在主鍵上建立索引。

在特殊需要時,建立和刪除索引由資料庫管理員(dba)或表的屬主負責完成。

sql中索引一般格式為:

create

[unique][

cluster

]index

索引on表 (列名1>

[asc|desc

], 列名2>

[asc|desc

], ...)

ps:unique表示唯一索引,即此索引的每乙個索引值只對應唯一的資料記錄。cluster表示聚簇索引,即索引項的順序與表中記錄的物理順序一致的有序索引。乙個基本表上最多只能建立乙個聚簇索引。對於經常更新的列不宜建立聚簇索引。

mysql支援的索引:

b型樹索引(btree)-- innodb和myisam儲存引擎支援

雜湊索引(hash)    -- memory儲存引擎支援

方式1:建立表時建立普通索引

方式2:在已經存在的表上建立普通索引

方式3:通過alter  table建立普通索引

刪除索引:

drop

index

索引名on 表名;

觸發器:

觸發器:

實現由一些表事件觸發的某個操作。不是程式呼叫,不是手工啟動,而是由事件觸發。用於在表發生更改時,自動進行一些處理。

觸發語句:insert/update/delete。其他sql語句不會啟用觸發器

建立觸發器:

create

trigger

trigger_insert

before

insert

onstudent

foreach row

insert

into

student_new

select

*from student;

建立包含多條執行語句的觸發器

delimiter $$ --將結束符號設定為$$

create

trigger

trigger_update_multi

before

update

oncourse

foreach row

begin

insert

into student (sno, sname) values(111111

,』zhibo』);

insert

into student (sno, sname) values(222222

,』henry』);

end$$delimiter ; --將結束符號設定為;

檢視觸發器

show triggers;

刪除觸發器:

drop

trigger trigger_name;

觸發器操作

1 作用 我們可以監視某錶的變化,當發生某種變化時,觸發某個動作 eg。觀察以下場景,電子 有商品表和訂單表 需要完成下單和減少庫存的邏輯!insert into o gid,num values 2,3 update g set goods num goods num 3 where id 2 用...

MySQL 觸發器 索引

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

替代觸發器和系統觸發器

為什麼使用instead of觸發器?在簡單的檢視上往往可以執行insert update delete操作的,但在複雜檢視上是有限制的,比如有分組 集合運算子的,這時就需要建立替代觸發器 instead of是只適用於檢視上的一種觸發器,不能指定before和after選項,create orre...