索引
在基本表上建立乙個或多個索引,可以提供多種訪問路徑,加快查詢速度。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;
刪除觸發器:
droptrigger 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...