插入数据
单条插入:
INSERT INTO 表名(字段1,字段2,....) VALUES(数据1,数据2,....);
多条插入:
方法一:INSERT INTO 表名(字段1,字段2,....) VALUES(数据1,数据2,....),(数据1,数据2,....),....;
方法二:INSERT INTO 表名(字段1,字段2,....) 子查询;
表名后面的字段可省略,若省略,则默认包括所有字段,若有的字段不写,则默认填入空值NULL。
修改数据
UPDATE 表名 SET 字段1 = 数据1,字段2 = 数据2,... WHERE 条件;
若字段的数据类型为char、varchar、date,则数据需要加单引号,若为int、double、float则不需要。
删除数据
DELETE FROM 表名 WHERE 条件;
不加条件则删除表中全部记录。若有字段设置了自增,则delete不会删除自增计数,若想删除自增,需要使用TRUNCATE(截断)。
TRUNCATE TABLE 表名;
TRUNCATE和DELETE区别:
TRUNCATE是DDL(数据定义语言),只能删除表中所有记录,释放存储空间,使用ROLLBACK不可以回滚。
DELETE是DML(数据操纵语言),可以删除指定记录,不释放存储空间,使用ROLLBACK可以回滚。
事务
事务也称工作单元,是由一个或多个SQL语句所组成的操作序列,这些SQL语句要么全部执行成功,要么全部执行失败。
事务处理语言(Transaction Process Language)TPL用来对组成事务的DML语句的操作结果进行确认或取消。确认即让DML操作生效,使用提交(COMMIT)命令实现;取消即让DML操作失效,使用回滚(ROLLBACK)命令实现。
事务组成:
在数据库中,事务有一组相关的DML或SELECT语句,加上一个TPL语句(COMMIT、ROLLBACK)或一个DDL语句(CREATE、ALTER、DROP、TRUNCATE等)或一个DCL(GRANT、REVOKE)语句。
事务特征:ACID。
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
MySQL的事务处理主要有两种方法
1.用BEGIN,ROLLBACK,COMMIT来实现。
BEGIN开始一个事务、ROLLBACK事务回滚、COMMIT事务提交。
2.直接用set来改变MySQL的自动提交模式
MySQL默认使自动提交的,也就是提交一个sql,就直接执行。可以通过
set autocommit = 0 禁止自动提交
set autocommit = 1 开启自动提交
来实先事务的处理。
当禁止自动提交时,所有 的sql都将作为事务处理,知道用commit确认或rollback结束。