数据库中的脏读、不可重复读、幻读及四种隔离级别
脏读脏读,是指在不同的事务下,当前事务可以读到其他事物未提交的数据,即读到脏数据。举个简单的例子,事务A对数据 num进行了更新,使其从1变为2,随后,事务B读取了 num,读取到的值为2,由于某种原因,事务A回滚了当前事务,此时,事务B读到的,就是事务A没有提交的数据,这就是脏读。事务A事务B结果SELECT t.num FROM t WHERE t.id = 1 1BEGIN UPDA...
脏读脏读,是指在不同的事务下,当前事务可以读到其他事物未提交的数据,即读到脏数据。举个简单的例子,事务A对数据 num进行了更新,使其从1变为2,随后,事务B读取了 num,读取到的值为2,由于某种原因,事务A回滚了当前事务,此时,事务B读到的,就是事务A没有提交的数据,这就是脏读。事务A事务B结果SELECT t.num FROM t WHERE t.id = 1 1BEGIN UPDA...
最近在做学校的数据库作业,因为课本是用SQL Server实现的,而我是用MySQL,所以出现了一些问题,比如在SQL Server中,获取前百分之几的数据,只需要 top xxx percent即可,而在MySQL中,如果要获取前xxx条数据,则要用 limit xxx ,神奇的地方来了,limit并不支持动态参数,这就很麻烦了,这个问题比较有意思,所以我在此记录下。这里主要有两个方法:...
问题描述这是我在做数据库作业的时候遇到的一个问题表结构:问题SQL:delete from student s where s.id in (select student_course.student_id as id from student_course join student s2 on s2.id = student_cou...
概念如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功要么同时失败。操作开始事务:START TRANSACTION回滚:ROLLBACK提交:COMMIT事务提交的两种方式自动提交MySQL默认自动提交一条DML(增删改)语句会自动提交一次事务手动提交先开启事务再提交修改事务的默认提交方式查看默认提交方式:SELECT @@aucocommit;1代表自动提交,0代表手动...
约束概念对表中的数据进行限定,保证数据的正确性、有效性和完整性非空约束:not null非空约束:值不能为null创建表时添加非空约束CREATE TABLE stu( id INT, name VARCHAR(20) NOT NULL -- 添加非空约束 );创建表完成后,添加非空约束ALTER TABLE stu MODIFY name VARCHAR(20) NOT N...