数据库基础3

事务

如果一个包含多个业务的操作,被事务管理,那么这些操作要么同时成功,要么同时失败。
	开启事务:start transaction
	事务回滚:rollback
	提交事务:commit
mysql数据库中默认自动提交:
	一条DML数据语句会自动提交一次事务。
	@@autocommit----1,自动提交,0手动提交
	set @@sutocommit=0;自动提交

事务的四大特征

1.原子性,事务是原子性的,不可分割的最小操作单位,要么同时成功,要么同时失败。
2.持久性,当事务提交或回滚后,数据库会持久化的保存数据。
3.隔离性,多个事务之间,相互独立。
4.一致性,事务操作前后,数据的总量不变。

事务的隔离级别

	多个事务之间隔离的,相互独立的,但是如果多个事务操作同一批数据,就会有一些问题,
设置不同的隔离级别能够解决这些问题。
存在问题:
	脏读:一个事务读取到另一个事务中没有提交的数据称为脏读。
	不可重复读:在同一个事务中,两次读到的数据不一样。
	幻读:一个事务操作数据表中的所有记录,另一个事务添加了一条数据,则第一个事务查询不到自己的修改。
隔离级别:
	read uncommitted:读未提交
		脏读,虚读,幻读
	read commited:读已提交
		虚读、幻读
	repeatable read:可重复读
		虚读、幻读
	serializable:串行读
		可以解决所有问题
	注意:隔离级别从小到大,安全性越来越高,效率越来越低
数据库设置隔离级别:
	select @@tx_isolation查询隔离级别
	set global transaction isolation level 级别字符串;设置隔离级别

DDL-操作数据库和表;DML-增删改表中数据;DQL-查询表中数据;DCL-管理用户

DCL----管理用户

1.管理用户
	1.添加用户
		-- 创建用户
		CREATE USER '用户名'@'主机名'IDENTIFIED BY '密码';
	2.删除用户
		DROP USER '用户名'@'主机名';
	3.修改用户
		-- 修改密码
		UPDATE USER SET PASSWORD = PASSWORD('新密码')WHERE USER = '用户名';
		SET PASSWORD FOR '用户名'@'主机名' = PASSWORD ('新密码');
	4.查询用户
		-- 切换到MySQL数据库
		USE mysql;
		-- 查询user表
		SELECT *FROM USER;
2.权限授予
	1.查询权限
		SHOW GRANTS FOR 'root'@'localhost';
	2.授予权限
		GRANT SELECT,DELETE,UPDATE ON `db3`.`mytable` TO 'root'@'localhost';
		GRANT ALL ON `db3`.`mytable` TO 'root'@'localhost';
	3.撤销权限
		REVOKE UPDATE ON `db3`.`mytable` FROM 'root'@'localhost';

猜你喜欢

转载自blog.csdn.net/qq_42351519/article/details/112920630