一、什么是主键
在 MySQL 数据库中,主键(Primary Key)是一种约束,用于唯一标识数据库表中的每一行记录。每个表只能定义一个主键。主键具有以下特性:
- 唯一性:主键的值在整个表中必须是唯一的,不允许重复。
- 非空性:主键的值不能为空,即每一行记录都必须有一个主键值。
- 定义方式:主键可以由一个或多个列来定义,这些列可以是数据库表的任意列。
- 必要性:主键是保证数据完整性和正确性的重要手段之一,它可以用于确保每一条记录的唯一性以及用作其他表的外键引用。
主键的定义可以在创建表时指定,也可以在已存在的表中使用 ALTER TABLE 命令添加。MySQL 提供了多种类型的主键,包括自增主键(Auto-Increment Primary Key)和组合主键(Composite Primary Key)等。
每一张表通常会有一个且只有一个主键 来表示每条数据的唯一性
主键其实是对某一个字段的 约束
-主键特性:1.值不能重复 2.非空(不能赋值为null)
-主键约束写法:
create tablestudent (id int primary key,age int);
-主键+自增的写法:
create tablestudent (id int primary keyauto_increment,age int);
删除主键
alter table users drop primary key;
非空
-非空约束 not null
create tablestudent (id int primary keyauto_increment, age int not null);
二、什么是事务
在MySQL中,事务是一组SQL语句的操作,这些操作要么全部执行成功,要么全部回滚。事务的目的是要确保数据库的一致性和完整性。
事务的四大特性(ACID特性)是指原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
- 原子性:事务中的所有操作要么全部成功执行,要么全部回滚。事务中的任何一步操作出现错误,都会导致整个事务回滚到最初的状态。
- 一致性:事务执行的结果必须使数据库从一个一致性状态变为另一个一致性状态。即事务开始和结束时,数据库的完整性约束没有被破坏。
- 隔离性:事务的执行相互之间是隔离的,即每个事务在并发执行时,都感觉不到其他事务的存在。事务的隔离级别可以通过设置来控制。
- 持久性:在事务提交后,对数据库的修改是永久性的,即对数据库的改变将持久保存在磁盘上。
通过使用事务,可以确保对数据库的并发操作不会导致数据的不一致和错误。在MySQL中,可以使用BEGIN、ROLLBACK和COMMIT语句来控制事务的开始、回滚和提交操作。