五、约束
1) 基本介绍
在创建表的时候,我们可以给表中的字段加上一些约束,来保证这个表中数据的完整性,有效性。
约束的作用就是为了保证:表中的数据有效
2) 约束的分类
? 1*非空约束:not null 约束的字段不能为null
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3X8dUjhQ-1650176600543)(D:\note\Mysql Note\images\photo39.png)]
? 2* 唯一性约束:unique 可以为Null
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KFdGFE90-1650176600549)(D:\note\Mysql Note\images\photo40.png)]
? -name 和email 俩个字段联合起来具有唯一性
? creat table t_vip(
? id int,
? name varchar(32),
? email varchar(255)
? unique(name,email)
);
? 3* 主键约束:primary key(简称pk)
? 1.主键概念
? 主键值(主键字段中的每一个值)是每一行记录的唯一标识。
? 主键值是每一行记录的身份证号
? 注:在mysql 中,如果一个字段同时被not null 和unique 约束的话,该字段自动升级为主键字段(注意 oracle 中不一样)
2.语法:
? create table t_vip(
? no int primary key, //列级约束
? name varchar(32)
? 或 primary key (id) //表级约束
? );
? 注:不能重复,不能为null。 ? 一个字段被primary 修饰称为单一主键,俩个即以上字段被primary 修饰称为复合主键(在开发当中不建议使用)。 ? 一张表中主键只能有一个。 ? 主键值建议使用:int 、bigint、char等类型。不建议varchar 来做主键值 ,主键值一般都是定长。 ? auto_inorement 表示从1递增
? 3.主键还可以分为:
? 自然主键:主键值是一个自然数,和业务没关系
? 业务主键: 主键值和业务紧密联系。例如:拿银行卡账号做主键值。
4* 外键约束:foreigh key
?
? 注:当使用外键约束时,表之间存在继承关系,如果其中一个表具有外键约束的话,那该表为子表,被引用的为父表
? 删除表的顺序:先删子再删父
? 创建表的顺序:先创建父在创建子
? 删除数据的顺序:先删子再删父
? 插入数据的顺序:先插入父在插入子
?
注:子表中的外键引用的父表中的某一字段,被引用的这个字段不一定是主键,但至少有unique约束,也就是説,外键可以为null
5* 检查约束 check(MySQL不支持,oracle支持)
? 注:xxxx.sql 这种文件被称为sql 脚本文件, sql脚本编写大量的sql语句,我们执行sql脚本文件时,该文件中所有的sql语句会全部执行。
? 在mysql中执行sql语句的语法:
? mysql >source sql脚本的位置
|