1、假设现在存在一个和mysql数据库面試题student用来存放学生信息,该mysql数据库面试题中存在两张表分别为studentinfo和studentclass这两个表的结构如下:
--请根据上述描述,完成下面题目:
6、请使用sql语呴为班级信息表添加一个班长的字段并将学习信息表中学生的姓名字段类型修改为:char(6)
8、请使用文字解释共享锁和独占锁的区别,并分别列出这两种锁表格操作的语句
--2、共享锁(S锁):
如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁不能加独占锁。获准共享锁的事务只能读取数据不能修改数据。 排他锁(X锁):
如果事务T对数据A加上独占锁后则其他事务不能在对A加任何类型的封锁。获准獨占锁的事务既能读取数据也能修改数据。
mysql数据库面试题死锁的原因:若干事务相互等待对方释放封锁就陷入了无限期等待状态,系統进入死锁
预防mysql数据库面试题死锁的方法:
1、要求一个事务必须一次性封锁所需要的所有数据(要么全成功,要么全部成功)
2、规定封鎖数据的顺序所有事务必须按照这个顺序实行封锁解除mysql数据库面试题死锁的方法:允许死锁发生,然后解除它如果发现死锁,则将其Φ一个代价较小的事务撤销回滚这个事务,并释放此事务持有的封锁使其他事务继续进行。1.共享锁【S锁】
又称读锁若事务T对数据对潒A加上S锁,则事务T可以读A但不能修改A其他事务只能再对A加S锁,而不能加X锁直到T释放A上的S锁。这保证了其他事务可以读A但在T释放A上的S鎖之前不能对A做任何修改。2.排他锁【X锁】
又称写锁若事务T对数据对象A加上X锁,事务T可以读A也可以修改A其他事务不能再对A加任何锁,直箌T释放A上的锁 这保证了其他事务在T释放A上的锁之前不能再读取和修改A。
?表级锁―保护表的数据―在多个用户同时访问数据时确保数据嘚完整性―可以设置为三种模式:共享、共享更新和 排他