表级锁,一般是指表结构共享锁锁,是不可对该表执行DDL操作,但对DML操作都不限制。
根据锁的类型分,共有6种
LMODE
1、NULL,可以某些情况下,如分布式数据库的查询会产生此锁。
2、SS,表结构共享锁
3、SX,表结构共享锁+被操作的记录的排它锁
4、S, 表结构共享锁+所有记录共享锁
5、SRX 表结构共享锁+所有记录排它锁
6、X 表结构排它锁+所有记录排它锁
Q:行级锁和表级锁的区别?
锁定的范围不一样。
行级锁锁定的是相关的行,别人仍然可以操作该表的其他行;
而表级锁则锁定整个表,其他人对该表的访问会受到更多的限制。所以,二者的主要区别就是锁的粒度不一样,带来的结果及时并发能力的不同。锁的粒度越细,并发性越好。
Q:数据库中的DML,DDL,DCL操作分别是指什么?DML----Data Manipulation Language 数据操纵语言
如insert,delete,update,select(插入、删除、修改、检索)
DDL----Data Definition Language 数据库定义语言
如 create procedure之类
DCL----Data Control Language 数据库控制语言
如grant,deny,revoke等,只有管理员才有这样的权限。
需要分清哪些命令是DML,哪些是DDL
DDL是数据定义语言,如drop,alter,truncate等都是DDL
insert,update,delete,merge等都是DML
在oracle里DML是可以rollback的,而DDL是不可以的
注意:
DML需要提交,而truncate是自动提交的,所以truncate是DDL