mysql学习笔记08-24

MysqL约束

约束是作用于表中列上的规则,用于限制加入表的数据

约束的存在保证了数据库中数据的正确性,有效性和完整性。

主键约束

如果将一个列设置为主键,那么该列的值不能重复,且不能为空

id int primary key auto_increment 自增

唯一约束

如果为一个添加唯一约束,那么该列的值就不能重复(可以为空)

idcard char(18) unique

非空约束

一个添加非空约束,那么该列的值就不能为空(可以重复)

name varchar(20) not null

外键约束

外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性

添加约束

ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称)REFERENCES  主表名称(主表列名称);
                                                
删除约束
ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

认约束 DEFAULT

保存数据时,未指定值则采用认值

事务

什么是事务

数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。

简单的说:事务就是将一堆的sql语句(通常是增删改操作)绑定在一起执行,要么都执行成功,要么都执行失败,即都执行成功才算成功,否则就会恢复到这堆sql执行之前的状态。

事务4个特性(ACID)

一般来说,事务是必须满足4个条件(ACID):原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。

**原子性:**一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中如果发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

**一致性:**在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。

**隔离性:**数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。

**持久性:**事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失

事务的开启

认情况下,MysqL每执行一条sql语句,都是一个单独的事务。如果需要在一个事务中包含多条sql语句,那么需要手动开启事务和结束事务。

开启事务:start transaction;
结束事务:commit(提交事务)或rollback(回滚事务)。

在执行sql语句之前,先执行start transaction,这就开启了一个事务(事务的起点),然后可以去执行多条sql语句,最后要结束事务,commit表示提交,即事务中的多条sql语句所做出的影响会持久化到数据库中。或者rollback,表示回滚,即回滚到事务的起点,之前做的所有操作都被撤消了。

事务隔离级别

事务隔离分为不同级别,包括

读未提交(Read uncommitted) 安全性最差,可能发生并发数据问题,性能最好
读提交(read committed) Oracle认的隔离级别
**可重复读(repeatable read)**MysqL认的隔离级别,安全性较好,性能一般
串行化(Serializable) 表级锁,读写都加锁,效率低下,安全性高,不能并发。

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...
win11本地账户怎么改名?win11很多操作都变了样,用户如果想要...