mysql高级 triggers,stored procedure,view,index,transaction,lock.

本文介绍了MySQL中的高级特性,包括触发器、存储过程、索引、视图、事务及锁等核心概念及其基本用法。通过具体示例展示了如何创建、使用这些特性来优化数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.youkuaiyun.com/mayongzhan - 马永占,myz,mayongzhan

triggers,stored procedure,index,view,transaction,lock
有很大部分是根据手册写的 ,之所以php和mysql的书如此之少,关键是手册写的太好了…哎.只做最简单的介绍.需要详细的话,看手册,就把这文章当做要学的列表吧 : )---myz
触发—TRIGGERS
这个我的理解就是外键级联删除的升级 .前些天有个东西需要做外键级联添加…这个就需要triggers了.
创建
CREATE TABLE testTable(id INT);
CREATE TRIGGER 触发器名 BEFORE INSERT ON testTable
INSERT INTO testTable2 SET name=NEW.id
这里粗略讲一下 .BEFORE是规定在INSERT ON testTable 之前执行还是之后执行
INSERT ON testTable就是 testTable的插入事件,当然还有update和delete
后面的就是触发器要执行的程序 ,可以些多条语句.用BEGIN…END括起来.
存储程序—STORED PROCEDURE
这个分为 procedure 和function,其实就是功能上的差异,前者简单些.
都有 create drop alter语法.还有show 的语法.
delimiter //
CREATE PROCEDURE newProc (OUT param1 INT)
BEGIN
SELECT COUNT(*) INTO param1 FROM t;
END
//
delimiter ;
CALL newProc(@test)
SELECT @test;
再加上触发器 ,完美…………
索引—INDEX
适当的建立索引 ,多了影响速度,少了也会影响速度.
在列 d和a上添加索引
ALTER TABLE t2 ADD INDEX (d), ADD INDEX (a);
在表t中删除d列的索引
ALTER TABLE t DROP INDEX d
FULLTEXT 索引
FULLTEXT索引只能对 CHAR, VARCHAR和TEXT列提供索引,并且只能在MyISAM表中,这个用在搜索文章内容的时候很有用.
视图—VIEW
创建 ,修改,删除基本上和表的相同
CREATE VIEW v AS SELECT id, name, height,width,height*width AS area FROM t
事务—TRANSACTION (InnoDB中使用)
提交
START TRANSACTION
SELECT * FROM t;
INSERT INTO t SELECT * FROM t;
INSERT INTO t2 SELECT * FROM t2;
COMMIT
撤消
START TRANSACTION
ROLLBACK
锁—LOCK
LOCK TABLES和 UNLOCK TABLES
读锁
LOCK TABLES t READ;
SELECT * FROM t;
---ERROR 1100: Table 't' was not locked with LOCK TABLES
写锁
LOCK TABLES t WRITE;
INSERT INTO t SELECT * FROM t;
---ERROR 1100: Table 't' was not locked with LOCK TABLES
解锁
LOCK TABLES t WRITE;
SELECT * FROM t;
UNLOCK TABLES;
v
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值