mysql数据库面试题,mysql存储过程面试题
1 .存储过程和函数之间的差异
存储过程是一组用户定义的sql语句,其中包含用户可以调用的特定表或其他对象的任务。 另一方面,函数是一种数据库定义的方法,通常接收参数并返回值,而不考虑特定的用户表。
2 .事务是什么?
事务是作为逻辑单元执行的一系列操作,逻辑工作单元需要四个属性:原子、完整性、隔离性、持久性(ACID )属性,这就是事务。
原子事务必须是原子工作单元; 关于那个数据修正,是全部执行还是不全部执行。
一致性事务必须在完成时使所有数据保持一致。 在相关数据库中,所有规则都必须应用于事务更改以维护所有数据的完整性。 事务结束时,所有内部数据结构(如b树索引和双向链表)都必须正确。
由隔离性合并事务所进行的修改,应当与其他合并事务所进行的修改隔离。 事务显示数据时的数据状态可以是另一并发事务更改数据之前的状态,也可以是另一事务更改数据之后的状态,事务不显示中间状态的数据。 这被称为串行性。 这是因为重新加载开始数据,重新播放一系列事务,然后数据以与原始事务相同的状态结束。
持久事务完成后,对系统的影响将是持久的。 即使发生系统故障,此修复也会一直保持。
3 .光标的作用? 如何知道光标是最后一次来?
游标用于搜索结果集的行可以通过确定全局变量@@FETCH_STATUS来确定是否是最后一行。 通常,此变量不为0表示错误或最后一次。
4 .触发器有预触发和后触发,这两种触发器有区别。 语句级触发器和行级触发器有什么区别?
预触发在触发事件发生之前执行,后触发在触发事件发生之后执行。 通常,预触发器可以获取事件之前和新的字段值。
语句级触发器可以在语句执行之前或之后执行,而行级触发器对受触发器影响的每一行调用一次。