版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/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