补充
(1)date类型的数据(xxxx-xx-xx)要加引号,单引号或双引号均可。如'1991-07-04'
(2)一个单引号引发的MYSQL性能问题分析http://www.jb51.net/article/26488.htm
-->我们在写SQL查询的时候还是不厌其烦的加上单引号吧,似乎那没有坏处
1.常见的存储引擎(了解两种)
Myisam:高速不支持事务;
InnoDB:支持行锁定和事务处理,速度比Myisam稍慢。
2.事务的概念
经典案例:
银行转钱,A减少的和B增加的要完整进行(原子性),且数目一样(一致性)
事务是DBMS的执行单位,它由有限个数据库操作语句组成。但并不是任何的数据库操作序列都能成为事务,必须满足4个条件(ACID):
(1)原子性(Autmic):一个原子事务要么全部执行,要么全部不执行。一旦有任务执行失败,整个事务的任何操作都会撤销;全部成功事务会被提交,对数据的修改时永久性的。
(2)一致性(Consistency):开发人员来保证,如A转出的金额和B收入的金额一样。
(3)隔离性(Isolation):事务必须在不干扰其他事务的前提下进行。
(4)持久性(Durability):已经提交的事务不会丢失。
3.事务涉及的命令
可能涉及到三个命令:
--声明事务的开始
begin(或start transaction)
--提交整个事务
commit
--回滚到事务的初始状态
rollback
部分回滚:
SAVEPOINT savepoint_name(在某一命令后标记)
ROLLBACK TO SAVEPOINT savepoint_name
开启事务后必须需要提交。
提交(commit)后的事务即使rollback也还是更改了。
关于commit,mysql中的每条语句都会自动的commit,默认开启自动提交功能。使用事务begin开启了事务后,就关闭了自动提交。可以手动开启或关闭自动提交。
set autocommit=0;
其他链接:
事务中的锁,行锁与表锁
http://blog.sina.com.cn/s/blog_703074da0101ghsh.html