一、认识MySQL的存储引擎
1.MySQL 5.5支持的存储引擎有InnoDB,MyISAM等。
2.常用的存储引擎:InnoDB和MyISAM
功能 | InnoDB | MyISAM |
支持事务 | 支持 | 不支持 |
支持全文索引 | 不支持 | 支持 |
外键约束 | 支持 | 不支持 |
表空间大小 | 较大 | 较小 |
数据行锁定 | 支持 | 不支持 |
引用场景:
- MyISAM存储引擎:访问速度较快,可以对不需要事务处理,以访问为主的应用适合!
- InnoDB存储引擎:在事务处理上有优势,可以对需要频繁更新,删除,同时对事务要求比较高,需要实现并发控制的应用!
3.MySQL 5.5以上的版本默认的存储引擎是InnoDB.
#可以通过以下查看默认引擎
show variables like 'storage_engine%';
#修改默认的存储引擎
defaultsrotage- engine=InnoDB;
#注意:修改后要重新启动MySQL服务才生效
4.指定表的存储引擎
create table 表名(
#.......省略代码
)engine=储存引擎;
二、数据的增,删,改
1.插入数据
(1)插入单行数据
insert into 表名 [字段名列表] values (值列表);
(2)插入多行数据
#插入多行数据
insert into 表名 (字段名列表.....)
values (值列表1,值列表),..... ,(值列表N);
(3)将查询结果插入到新表中
create table 新表 (select 字段1,字段2,.....from 原表);
2.更新数据
#更新数据语法
update 表名 set 列名 =更新值 where 更新条件;
#注意:set后面可以跟随多个修改的数据列的值,不限一个,不同列之间使用逗号分开
where 子句是可选的,如果不选,那么整个表的所有数据都会被更新
3.删除数据
(1)使用DELECT输出数据
delete from 表名 where 删除条件;
#注意:如果where条件不加上,那么就会删除整个表的数据。delete 数据的数整条记录,
不会删除单个列,所以在delete后面不能出现列名。
(2)使用TRUCATE TABLE删除数据
truncate table 表名;
#注意:truncate 也可以删除表中的所有行,执行速度比delete执行速度要快,
并且删除后,自增列的标识是会重置的!
注意:truncate table 会删除表中的所有行,到表的结构,列,约束,索引等不会改动,还有truncate table不能用于有外键约束的表!在实际开发中,不建议使用,因为它删除的数据不能够恢复。