1、 SQL 的 select 语句完整的执行顺序
1 )from 子句组装来自不同数据源的数据;
2 )where 子句基于指定的条件对记录行进行筛选;
3 )group by 子句将数据划分为多个分组;
4)使用聚集函数进行计算;
5)使用 having 子句筛选分组;
6)计算所有的表达式;
7) select 的字段;
8)使用 order by 对结果集进行排序。
2、事务的基本要素(ACID)
原子性( Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。
一致性( Consistency):事务开始前和结束后,数据库的完整性约束没有被破坏 。
隔离性( Isolation):是指多个用户并发访问数据库时,一个用户的事务不能被其它用户的事务所干扰,多个并发事务之间数据要相互隔离,不能相互影响。
持久性( Durability):事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚。
3、MySQL事务隔离级别
4、简述在 MySQL数据库中 MyISAM和 InnoDB的区别
1.MyISAM存储引擎
主要特点: MySQL5.5版本之前的默认存储引擎 支持表级锁(表级锁是MySQL中锁定粒度最大的一种锁,表示对当前操作的整张表加锁); 不支持事务,外键。
适用场景:对事务的完整性没有要求,或以select、insert为主的应用基本都可以选用MYISAM。在Web、数据仓库中应用广泛。
特点:
1)不支持事务、外键
2)每个myisam在磁盘上存储为3个文件,文件名和表名相同,扩展名分别是
.frm ------- 存储表定义;
.MYD -------- MYData 存储数据;
.MYI -------- MYIndex,存储索引。
2.InnoDB存储引擎
主要特点: MySQL5.5版本之后的默认存储引擎; 支持事务; 支持行级锁(行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁); 支持聚集索引方式存储数据。
5、什么是锁?
答:数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。
基本锁类型:锁包括行级锁和表级锁