常见约束:
含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性
分类:
六大约束:
- NOT NULL:非空约束。用于保证该字段的值,不能为空。 比如姓名、学号等。
- DEFAULT:默认。用于保证该字段的默认值。比如性别
- PRIMARY KEY 主键:用于保证该字段的值具有唯一性。并且非空。学号,员工编号。
- UNIQUE:唯一。用于保证该字段的值具有唯一性。可以为空、比如座位号。
- CHECK:检查约束(MySQL中不支持)比如年龄,性别。
- FOREIGN KEY :外键。用于限制两个表的关系,用于保证该字段值,必须来自于主表的关联列的值,在从表添加外键约束,用于引用主表中的某列值。
添加约束的实际:
1、创建表时。
2、修改表时。
约束的添加约束:
1、列级约束。六大约束语法上都支持,但是外键约束没有效果
2、表级约束。除了非空,默认,其他的都支持
添加了外键约束,不能直接修改主表,所以需要级联删除和级联置空。
TCL 事务控制语言
事务:一个或一组sql语句促成一个执行单元,这个执行单元要么全部执行,要么全部不执行。
案例:转账。
张三丰 1000
郭襄 1400
update 表 set 张三丰的余额 =900 where name=‘张三丰’
update 表 set 郭襄的余额 =1500 where name=‘郭襄’
事务的特性(ACID)
原子性:一个事务不可在分割,要么都执行要么都不执行。
一致性:一个事务执行会使数据从一个一致性状态切换到另一个一致性状态。
隔离性:一个事务的执行不受其他事务的影响。
持久性:一个事务一旦提交,则会永久的改变数据库的数据。
insert 、update、delete 默认是一条事务。
如果要将多条语句设置成一条事务,需要使用显示事务。
显示事务:事务具有明显的开启和结束的标记。
前提:必须先设置自动提交功能的禁用。set autocommit=0
步骤一 : 开启事务
set autocommit=0
start transaction;可选
步骤2:编写事务中的sql语句(select insert update delete)
语句1
语句2
‘’‘’‘’
步骤二:结束事务
commit 提交事务
rollback:回滚事务
演示: