一,约束
约束 | 描述 | 关键字 |
非空约束 | 保证列中所有数据不能有null值 | NOT NULL |
唯一约束 | 保证列中所有数据各不相同 | UNIQUE |
主健约束 | 主键是一行数据的唯一标识。要求非空且唯一 | PRIMARY KEY |
检查约束 | 保证列中的值满足某一条件 | CHECK |
默认约束 | 保存数据时,未指定值则采用默认值 | DEFAULT |
外键约束 | 外键用来让两个表的数据之间建立链接。侯证数据的一致性和完整性 | FRElIGN IKEY |
MySQL不支持检查约束
auto_incerement当列的类型时数字型,并且唯一约束则自增长
——外键约束——
外键:用来让两个表的数据之间建立连接,保证数据的一致性和完整性
constraint [外键名称] foreign key(外键列名) references 主表(主表列名);
建完表后添加外键:alter table 表名 add constraint 外键名称 foreign key (外键字段) references 主表名称(主表字段名)
删除约束:alter table 表名 drop foreign key 外键名称;
二,多表查询
分为连接查询、子查询
1、连接查询
内连接
隐式内连接:select 字段列表 from 表1,,表2... where 条件;
显式内连接:select 字段列表 from 表1 [inner] join 表2 on 条件;
外联接
左外连接:select 字段列表 from 表1 left [outer] join 表2 on 条件;
右外连接:select 字段列表 from 表1 right [outer] join 表2 on 条件;
2、子查询
就是嵌套查询
一般来说
单行单列:作为条件值,使用=!=,>,<等进行条件判断select 字段列表 from 表 where 字段名=(子查询)
多行单列:作为条件值,使用in等关键字进行条件判断select 字段列表 from 表 where 字段名 in (子查询)
多行多列:作为虚拟表select 字段列表 from(子查询) where 条件;
三,事务
1、数据库的事务(Transaction)是一种机制、一个操作序列,包含了一组数据库操作命令
2、事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么同时成功,要么同时失败
3、事务是一个不可分割的工作逻辑单元
开启事务:start transaction或者begin
提交事务:commit
回滚事务(遇到异常):rollback
4、事务的四大特征
原子性(Atomicity):事务是不可分割的最小操作单位,要么同时成功,要么同时失败。
一致性(Consistency):事务完成时,必须使所有的数据都保持一致状态
隔离性(lsolation):多个事务之间,操作的可见性
持久性(Durability):事务一