首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MYSQL数据库-约束

零、前言 本章主要讲解学习MYSQl数据库约束 约束 真正约束字段是数据类型,但是数据类型约束很单一,需要有一些额外约束,更好保证数据合法性,从业务逻辑角度保证数据正确性...包含班级名和班级所在教室 如果班级没有名字,你不知道你在哪个班级,如果教室名字可以为空,就不知道在哪上课 所以在设计数据库时候,一定要在中进行限制,满足上面条件数据就不能插入到中,这就是...在关系数据库中,索引是一种单独、物理数据库中一列或多列值进行排序一种存储结构,它是某个中一列或若干列值集合和相应指向中物理标识这些值数据页逻辑指针清单 索引作用相当于图书目录...这样可以使对应于SQL语句执行得更快,可快速访问数据库特定信息 7、唯一键 一张中有往往有很多字段需要唯一性,数据不能重复,但是一张中只能有一个主键:唯一键就可以解决中有多个字段需要唯一性约束问题...解决方案就是通过外键完成。建立外键本质其实就是把相关性交给mysql去审核了,提前告诉mysql之间约束关系,那么当用户插入不符合业务逻辑数据时候,mysql不允许你插入

7.5K30

MySQL数据库约束

约束,实质上就是用数据类型去约束字段,但是数据类型约束手法很单一,比如,我们在设置身份证号这个字段,数据类型唯一起约束是它属于char类型或者varchar类型,不能是浮点型也不能是日期时间类型...主键 主键:primary key用来唯一约束该字段里面的数据,不能重复,不能为空,一张中最多只能有一个主键,主键所在列通常是整数类型。...而我们设计员工工号时候,需要一种约束:而所有的员工工号都不能重复。具体指的是在公司业务上不能重复,我们设计时候,需要这个约束,那么就可以将员工工号设计成为唯 一键。...:外键约束主要定义在从上,主表则必须是有主键约束或unique约束。...,提前告诉mysql之间约束关系,那么当用户插入不符合业务逻辑数据时候,mysql不允许你插入。

23030
您找到你想要的搜索结果了吗?
是的
没有找到

MySql约束

中一定要有各种约束,通过约束,让我们未来插入数据库数据是符合预期约束本质是通过技术收到逼迫程序员插入正确数据,反过来,站在mysql视角,凡是插入进来数据,都是符合数据约束。...站在正常业务逻辑中: 如果班级没有名字,你不知道你在哪个班级 如果教室名字可以为空,就不知道在哪上课 所以我们在设计数据库时候,一定要在中进行限制,满足上面条件数据就不能插入到中。...而我们设计员工工号时候,需要一种约束:而所有的员工工号都不能重复。 具体指的是在公司业务上不能重复,我们设计时候,需要这个约束,那么就可以将员工工号设计成为唯一键。...外键foreign key 外键用于定义主表和从之间关系:外键约束主要定义在从上,主表则必须是有主键约束或unique约束。...建立外键本质其实就是把相关性交给mysql去审核了,提前告诉mysql之间约束关系,那么当用户插入不符合业务逻辑数据时候,mysql不允许你插入。

17130

MYSQL约束

索引: 在关系数据库中,索引是一种单独、物理数据库中一列或多列值进行排序一种存储结 构,它是某个中一列或若干列值集合和相应指向中物理标识这些值数据页逻辑指针清单。...数据库使用索引以找到特定值,然后顺指针找到包含该值行。...这样可以使对应于SQL语句执行得更快,可快速访问数据库特定信息 七、唯一键 一张中有往往有很多字段需要唯一性,数据不能重复,但是一张中只能有一个主键:唯一键就可以解决中有多个字段需要唯一性约束问题...而我们设计员工工号时候,需要一种约束:而所有的员工工号都不能重复。 具体指的是在公司业务上不能重复,我们设计时候,需要这个约束,那么就可以将员工工号设计成为唯一键。...int auto_increment primary key, name varchar(5) unique ); 八、外键 外键用于定义主表和从之间关系:外键约束主要定义在从上,主表则必须是有主键约束

21440

MySQL约束

约束 约束中一定要有各种约束,通过约束,让我们未来插入数据库数据是符合预期约束本质是通过技术手段,倒逼用户,插入正确数据。...反过来,在 mysql 角度,凡是插入进来数据,都是符合数据约束约束最终目的就是保证数据完整性和可预期性。因此我们需要更多约束条件!...我们可以通过 select last_insert_id(); 查看上一次插入 auto_increment 值: 索引:在关系数据库中,索引是一种单独、物理数据库中一列或多列值进行排序一种存储结构...数据库使用索引以找到特定值,然后顺指针找到包含该值行。这样可以使对应于 SQL 语句执行得更快,可快速访问数据库特定信息。 我们会在后面详细讲索引概念。...建立外键本质其实就是把相关性交给 mysql 去审核了,提前告诉 mysql 之间约束关系,那么当用户插入不符合业务逻辑数据时候,mysql 不允许你插入。

10210

MySQL约束

所谓约束,就是避免犯一些低级错误,比如类似于语法错误,编译器编译失败实际上也算是一种约束中一定要有各种约束,通过约束,让我们未来插入数据库数据是符合预期。...约束本质: 通过技术手段倒逼程序员插入正确数据。反过来站在mysql视角,凡是插入进来数据,都是符合数据约束约束最终目标: 保证数据完整性和可预期性。 为什么数据库这么严格?...数据库作为维护用户数据最后一道防线,必须要保证数据库数据是满足预期,因此数据库约束必须严格。为了更好约束,就需要更多约束条件,这也是这一节内容。...二.非空约束 1.NULL与’ '比较 在MySQL数据类型已经说过,这二者是不同,NULL代表什么都没有,而' '代表一个空串。 在select语句中,NULL不会参与到相应计算操作中。...character set utf8; -- 选择数据库 use cfy_database; -- 创建数据库 -- 商品 create table if not exists goods (

18250

MySQL数据库——约束(非空约束、唯一约束、主键约束、外键约束)

目录 1 约束 约束,是对表中数据进行限定,保证数据正确性、有效性和完整性,约束分为以下几类: 主键约束:primary key 非空约束:not null 唯一约束:unique 外键约束:foreign...UNIQUE ); 注意:MySQL中唯一约束限定值可以有多个null 2)删除唯一约束: -- alter table stu modify number varchar(20); 不同于非空约束删除方法...主键约束:primary key 1)注意: 若某一列添加了该约束,则代表了非空,且唯一; 一张只能有一个字段为主键; 主键就是中记录唯一标识; 2)创建时添加主键约束 CREATE TABLE...以上仍然存在一个问题,当在员工中输入不存部门时,数据依然可以添加,不符合实际,因此,这里就可以通过使用外键约束来解决。 【概念】什么是外键约束?...外键,就是从中与主表主键对应那一列,如:员工dep_id,其中,主表是一方,用来约束别人,从可以是多方,被别人约束。 注意:外键可以为NULL,但是不能是不存在外键值。 ?

13.5K21

MySQL约束

一 介绍 约束条件与数据类型宽度一样,都是可选参数 作用:用于保证数据完整性和一致性 主要分为: PRIMARY KEY (PK) 标识该字段为该主键,可以唯一标识记录 FOREIGN...,被约束字段必须同时被key约束 #不指定id,则自动增长 create table student( id int primary key auto_increment, name varchar(...  分析步骤: #1、先站在左角度去找 是否左多条记录可以对应右一条记录,如果是,则证明左一个字段foreign key 右一个字段(通常是id) #2、再站在右角度去找 是否右多条记录可以对应左一条记录...如果步骤1和2同时成立,则证明这两张时一个双向多对一,即多对多,需要定义一个这两张关系来专门存放二者关系 #一对一: 如果1和2都不成立,而是左一条记录唯一对应右一条记录,反之亦然...用户+相亲关系,相当于:用户+相亲关系+用户 多张:用户+用户与主机关系+主机 中间那一张存放关系,对外关联字段可以联合唯一 #一对一 两张:学生和客户 一对一:一个学生是一个客户

4.8K60

MySQL&约束&事务

违反约束不正确数据,将无法插入到中 常见约束 约束约束关键字 主键 primary key 唯一 unique 非空 not null 外键 foreign key 主键约束 特点:不可重复...,对自增没有影响,使用truncate 是将整个删除掉,然后创建一个新 自增主键,重新从 1开始 非空约束 非空约束特点: 某一列不予许为空 # 非空约束 CREATE TABLE emp2...); 唯一约束 唯一约束特点: 某一列值不能重复( 对null不做唯一判断 ) CREATE TABLE emp3( eid INT PRIMARY KEY AUTO_INCREMENT,...ename VARCHAR(20) UNIQUE, sex CHAR(1) ); 主键约束与唯一约束区别: 主键约束 唯一且不能够为空 唯一约束,唯一 但是可以为空 一个中只能有一个主键 , 但是可以有多个唯一约束...MySQL 事务隔离级别 一个数据库可能拥有多个访问客户端,这些客户端都可以并发方式访问数据库. 数据库相同数据可能被多个事务同时访问,如果不采取隔离措施,就会导致各种问题, 破坏数据完整性。

1.2K30

MySQL完整性约束

概览   为了防止不符合规范数据进入数据库,在用户对数据进行插入、修改、删除等操作时,DBMS自动按照一定约束条件对数据进行监测,使不符合规范数据不能进入数据库,以确保数据库中存储数据正确、有效...约束条件与数据类型宽度一样,都是可选参数,主要分为以下几种: # NOT NULL :非空约束,指定某列不能为空; # UNIQUE : 唯一约束,指定某列或者几列组合不能重复 # PRIMARY...DEFAULT 我们约束某一列不为空,如果这一列中经常有重复内容,就需要我们频繁插入,这样会给我们操作带来新负担,于是就出现了默认值概念。...AUTO_INCREMENT 约束字段为自动增长,被约束字段必须同时被key约束 ? ?...Restrict方式 同no action, 都是立即检查外键约束 . Set default方式 父有变更时,子表将外键列设置成一个默认值 但Innodb不能识别

3.5K20

MySql数据库约束

当前几乎所有的关系型数据库都提供了约束(constraits)机制,该机制提供了一条强大而简易途径来保证数据库数据完整性,一般来说,数据完整性有以下三种形式: (1)实体完整性保证中有一个主键,...对错误数据约束   在某些默认设置下,MySql数据库允许非法或不正确数据插入或更新,又或者可以在数据库内部将其转化为一个合法值,如向not null字段插入一个null值,MySql数据库会将其更改为...0再进行插入,因此数据库本身没有对数据正确性进行约束。...数据库输入值进行了约束,而且针对不同错误提示错误内容也不同。...外键约束 外键用来保证参照完整性,MySQL数据库MyIsAM存储引擎本身并不支持外键,对于外键定义只是起到一个注释作用,而InonoDB存储引擎则完整支持外键约束

1.1K10

MySQL数据库约束

UNLL约束 创建时,可以指定某列不为空: -- 重新设置学生结构 DROP TABLE IF EXISTS student; CREATE TABLE student (   id INT....UNIQUE:唯一约束 -- 重新设置学生结构 DROP TABLE IF EXISTS student; CREATE TABLE student (   id INT NOT NULL,...classId 就和 class id 建立了联系, student classId 中值,必须要在class classId 中存在!...class ,就对 student 产生了制约,此时class 制约别的,也称为' 父 ' , student (parent table), 被制约,也称为 ' 子表 ' (child...确保某列(或两个列多个列结合)有唯一标 识,有助于更容易更快速地找到一个特定记录。 FOREIGN KEY - 保证一个数据匹配另一个参照完整性。

9910

mysql常见选项和约束

约束主要是防止非法数据进入中,保证数据正确性和一致性,统称为数据完整性 约束也可以防止一个被删除 MySQL约束保存在information_schema.table_constraints中...,可以通过该查询约束信息 常见约束类型 not null非空,指定某列不为空(注意区分空和空格关系) unique:唯一约束,指定某列和几列组合数据不能重复 primary key:主键约束,指定某列数据不能重复...参照完整性约束,保证一个或两个之间参照完整性,外键是构建于一个两个字段或者是两个两个字段之间参照关系 注意: 具有外键约束值不能随便给,必须满足外键所引用主键取值 一张中可以定义多个外键...MySQl中可以使用check约束,但是check约束对数据验证没有任何作用。...Oracle中国可以使用check约束,有相应作用 mysql> create table test_ck( -> id int check(id>0) -> ); mysql

10910

MySQL数据库数据库约束

​ 目录Mysql约束(constraint)基本介绍主键约束(primary key)自增长约束(auto_increment)非空约束(not null)唯一性约束(unique)默认约束(default...)零填充约束(zerofill)----图片Mysql约束(constraint)基本介绍 MySQL数据库通过约束(constraints)防止无效数据进入到数据库中,以保护数据实体完整性...MySQL中主要有六种约束,分别是:主键约束(primary key),非空约束(not null),自增长约束(auto_increment),默认约束(default) ,零填充约束(zerofill...2.一张只能有一个主键,联合主键也是一个主键自增长约束(auto_increment) 默认情况下,自增长约束(auto_increment)初始值是 1,每新增一条记录,字段值自动加...一个中只能有一个字段使用 auto_increment约束,且该字段必须有唯一索引,以避免序号重复(即为主键或主键一部分)。

5.6K40

mysql创建数据约束

MySQL中,是存储数据基本单位,每张有若干列,每一行代表一条数据记录。在MySQL中,数据是按行存储。...] [默认值], ............. ) [约束条件]; 使用主键约束 主键由一列或者多列组合而成。...主键约束要求主键列数据唯一,且不能为空。主键可以标识唯一一条记录。主键相当于目录。为创建主键后,使用主键列作为查询条件可以大大加快查询速度。...如果用户在插入数据时候没有指定值,数据库会报错。...create table user_tmp4(id int, name varchar(20) not null); 使用默认约束 默认约束作用是为某列指定默认值,在向中插入数据时,如果不指定该列

3.7K40

MYSQL数据库约束类型

07.14自我总结 MYSQL数据库约束类型 一.主键约束(primary key) 主键约束要求主键列数据唯一,并且不能为空。主键分为两种类型:单字段主键和多字段联合主键。...一个可以有一个或者多个外键。一个外键可以为空,若不为空,则每一个外键值必须等于另一个中主键某个值。 外键作用:保证数据应用完整性。 ​...主表(父):对于两个具有关联关系而言,相关联字段中主键所在那个即是主表。 ​ 从(子表):对于两个具有关联关系而言,相关联字段中外键所在那个即是从。...add oreign key (从字段) references 主表名称(主表内字段) 三.使用非空约束(Not Null) 非空约束指字段值不能为空。...) 默认约束指定某列默认值。

2.7K10

关于MySQL数据库约束

数据库约束:      约束是在上强制执行数据校验规则,主要用于保证数据库里数据完整性。      除此之外,当数据存在相互依赖性时,可以保证相关数据不被删除。...:              建同时为相应数据列指定约束              创建后,以修改方式来增加约束 大部分数据库支持下面5中完整性约束: 1.NOT NULL: 非空约束...虽然唯一约束列不可以出现重复值,但可以出现多个null值,因为在数据库中null不等于null。...同一个内可创建多个唯一约束,唯一约束也可有多列组合而成。 当为某列创建唯一约束时,MySQL会为该列创建唯一索引, 如果不给唯一约束起名,该唯一约束默认与列名相同。...KEY: 主键约束,指定该列值可以唯一地标识该条记录 4.FOREIGN KEY: 外键约束,指定该行记录从属于主表中一条记录,主要用于保证参照完整性 5.CHECK(MySQL不支持): 检查约束

96210

MySQL数据库——数据约束

概述 数据约束是可选参数,用于约束数据规范,用于保证数据完整性和一致性。 类型 非空约束 not null,非空约束用于修饰字段不能为控制,不设置默认为null。...默认约束 default,默认约束用于插入值时设置默认值,如果没有值输入,就使用默认值。 主键约束(非空+唯一) primary key ,主键约束要求非空且不可以重复。...通常情况下,每张都会设置一个主键字段。用于标记每条记录唯一性。建议使用和业务关联最强字段作为主键。 唯一约束 unique,唯一约束要求字段中值不可以重复,'null’值可以重复。...自增约束 auto_increment,自增涨约束字段会自动约束,自增字段不用设置列数据,会自动生成一个自增值。...外键约束 foreign key,外键约束用来建立主表与从关联关系,为两个数据建立连接,约束两个中数据一致性和完整性。

29.8K105
领券