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

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

目录 1 约束 约束,是对表中的数据进行限定,保证数据的正确性、有效性和完整性,约束分为以下几类: 主键约束:primary key 非空约束:not null 唯一约束:unique 外键约束:foreign...NAME VARCHAR(20) 1.2 唯一约束:unique,值不能重复 1)创建时添加唯一约束: CREATE TABLE stu( id INT, number VARCHAR(20)...UNIQUE ); 注意:MySQL唯一约束限定的列的值可以有多个null 2)删除唯一约束: -- alter table stu modify number varchar(20); 不同于非空约束的删除方法...主键约束:primary key 1)注意: 若某一列添加了该约束,则代表了非空,且唯一; 一张只能有一个字段为主键; 主键就是中记录的唯一标识; 2)创建时添加主键约束 CREATE TABLE...; 3)在创建后添加外键: ALTER TABLE 名称 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称); -- 添加外键

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

    MYSQL约束

    前言 真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。...五、主键 主键:primary key用来唯一约束字段里面的数据,不能重复,不能为空,一张中最多只能有一个主键;主键所在的列通常是整数类型。...这样可以使对应于的SQL语句执行得更快,可快速访问数据库中的特定信息 七、唯一键 一张中有往往有很多字段需要唯一性,数据不能重复,但是一张中只能有一个主键:唯一键就可以解决中有多个字段需要唯一约束的问题...唯一键的本质和主键差不多,唯一键允许为空,而且可以多个为空,空字段不做唯一性比较。 关于唯一键和主键的区别: 我们可以简单理解成,主键更多的是标识唯一性的。...而我们设计员工工号的时候,需要一种约束:而所有的员工工号都不能重复。 具体指的是在公司的业务上不能重复,我们设计的时候,需要这个约束,那么就可以将员工工号设计成为唯一键。

    24540

    MySQL约束

    反过来,在 mysql 角度,凡是插入进来的数据,都是符合数据约束的!约束的最终目的就是保证数据的完整性和可预期性。因此我们需要更多的约束条件!...真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是 email,要求是唯一的。...五、主键 主键:primary key 用来唯一约束字段里面的数据,不能重复,不能为空,一张中最多只能有一个主键;主键所在的列通常是整数类型。...七、唯一唯一键:unique;一张中有往往有很多字段需要唯一性,数据不能重复,但是一张中只能有一个主键;唯一键就可以解决中有多个字段需要唯一约束的问题。...建立外键的本质其实就是把相关性交给 mysql 去审核了,提前告诉 mysql 之间的约束关系,那么当用户插入不符合业务逻辑的数据的时候,mysql 不允许你插入。

    14810

    MySql约束

    概述 真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。...中一定要有各种约束,通过约束,让我们未来插入数据库中的数据是符合预期的。约束的本质是通过技术收到逼迫程序员插入正确的数据,反过来,站在mysql的视角,凡是插入进来的数据,都是符合数据约束的。...主键 primary key 主键:primary key用来唯一约束字段里面的数据,不能重复,不能为空,一张中最多只能有一个。但是并不意味着一个中的主键,只能添加给一列。...OK, 1 row affected (0.00 sec) 唯一键unique 一张中有往往有很多字段需要唯一性,数据不能重复,但是一张中只能有一个主键:唯一键就可以解决中有多个字段需要唯一约束的问题...,上面的例子,我们不创建外键约束,就正常建立学生,以及班级,该有的字段我们都有。

    20930

    MySQL知识点】唯一约束、主键约束

    ‍ 哈喽大家好,本次是MySQL数据库原理系列第七期 ⭐本期是MySQL约束——唯一约束、主键约束 系列专栏:MySQL数据库 笔者还是前端的菜鸟,还请大家多多指教呀~ 欢迎大佬指正,...、主键约束噢~ ---- 唯一约束 定义 唯一约束用于保证数据字段唯一性,即字段的值不能重复出现。...创建复合唯一约束唯一约束创建时,unique()的字段列表中,可以添加多个字段,组成复合唯一键,特点是只有多个字段的值相同时才视为重复记录。...主键约束 定义 在MySQL中,为了快速查找中的某条信息,可以通过设置主键实现。主键可以唯一标识中的记录。...约束字段若只有一个,则为单字段主键与列级约束添加的效果相同;若有多个,则为复合主键,复合主键需要用多个字段来确定一条记录的唯一性,类似于复合唯一键。

    3K30

    MySQL唯一约束使用

    MySQL唯一约束是一种用于确保中某个列或字段的值唯一的限制。这种约束可以通过在创建时或在已经存在的情况下修改结构时添加。...创建时添加唯一约束在创建时添加唯一约束,需要在列名后面添加关键字"UNIQUE"。...例如,以下是一个创建包含唯一约束的示例:CREATE TABLE my_table ( id INT UNIQUE, email VARCHAR(50) UNIQUE, name VARCHAR...在已经存在的中添加唯一约束如果已经存在一个,但需要将某些列或字段添加唯一约束,可以使用ALTER TABLE语句来修改结构。...例如,以下是向已经存在的中添加唯一约束的示例:ALTER TABLE my_tableADD UNIQUE INDEX idx_email (email),ADD UNIQUE INDEX idx_id

    99340

    MySQL约束

    约束的本质: 通过技术手段倒逼程序员插入正确的数据。反过来站在mysql的视角,凡是插入进来的数据,都是符合数据约束的。 约束的最终目标: 保证数据的完整性和可预期性。 为什么数据库这么严格?...二.的非空约束 1.NULL与’ '比较 在MySQL数据类型已经说过,这二者是不同的,NULL代表什么都没有,而' '代表一个空串。 在select语句中,NULL不会参与到相应的计算操作中。...主键:primary key用来唯一约束字段里面的数据,不能重复,不能为空,一张中最多只能有一个。 主键;主键所在的列通常是整数类型,比如学号,编号等具有唯一性质的数据。...:唯一约束后,该字段也具备了和主键一样的唯一性。...唯一键允许为空,而且可以多个为空,因为空字段不做唯一性比较。 唯一键和主键的区别: 在使用中,主键是标识唯一性,而唯一键是保证业务中的数据唯一性。 主键一个只能有一个,唯一键可以有多个。

    21950

    SQL PRIMARY KEY 约束- 唯一标识中记录的关键约束

    SQL NOT NULL 约束SQL NOT NULL 约束用于强制确保列不接受 NULL 值。这意味着该字段始终包含一个值,而不允许插入新记录或更新记录时不提供此字段的值。...SQL UNIQUE 约束SQL UNIQUE 约束确保列中的所有值都是不同的。UNIQUE 和 PRIMARY KEY 约束都为列或一组列提供了唯一性的保证。...SQL PRIMARY KEY 约束SQL PRIMARY KEY 约束唯一标识中的每条记录。主键必须包含唯一的值,并且不能包含 NULL 值。...一个只能有一个主键;在中,这个主键可以由单个列(字段)或多个列(字段)组成。.../ MS Access:ALTER TABLE PersonsDROP CONSTRAINT PK_Person;通过这些 SQL 语句,您可以在数据库中定义和管理 PRIMARY KEY 约束,以确保中的数据具有唯一的标识

    26310

    MySQL删除约束_mysql查看表字段

    约束字段默认值UNIQUE KEY约束字段的值唯一PRIMARY KEY约束字段为主键, 唯一标识AUTO_INCREMENT字段值自动增加 1....#创建的时候,添加默认约束 CREATE TABLE (字段名 数据类型 default ‘默认值’); #删除默认约束 alter table alter 字段名 drop default; 3....主键约束(primary key) 主键约束字段,不可以为空、不可以重复 #创建的时候,添加主键; CREATE TABLE (字段名 数据类型 PRIMARY KEY); 复合主键: 由多个字段组成的主键...唯一约束(Unique Key) Unique Key 约束字段,值唯一,允许为空,唯一约束可以确保一列或者多列不出现重复值 #创建时添加唯一约束 CREATE TABLE (字段 数据类型 UNIQUE...AUTO_INCREMENT); 总结: 因为有字段约束条件,数据才更完整,更有价值; #创建时添加约束; CREATE TABLE (字段名 数据类型 约束条件); #提示:修改数据类型时也可以添加约束

    2.6K30

    MySQL&约束&事务

    DQL操作单 排序 # 通过 ORDER BY 子句,可以将查询出的结果进行排序(排序只是显示效果,不会影响真实数据) SELECT 字段名 FROM 名 [WHERE 字段 = 值] ORDER...违反约束的不正确数据,将无法插入到中 常见的约束 约束约束关键字 主键 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) ); 主键约束唯一约束的区别: 主键约束 唯一且不能够为空 唯一约束,唯一 但是可以为空 一个中只能有一个主键 , 但是可以有多个唯一约束

    1.2K30

    MySQL约束

    一 介绍 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性 主要分为: PRIMARY KEY (PK) 标识该字段为该的主键,可以唯一的标识记录 FOREIGN...KEY (FK) 标识该字段为该的外键 NOT NULL 标识该字段不能为空 UNIQUE KEY (UK) 标识该字段的值是唯一的 AUTO_INCREMENT 标识该字段的值自动增长...,被约束字段必须同时被key约束 #不指定id,则自动增长 create table student( id int primary key auto_increment, name varchar(...key #类型必须是innodb存储引擎,且被关联的字段,即references指定的另外一个字段,必须保证唯一 create table department( id int primary...用户+相亲关系,相当于:用户+相亲关系+用户 多张:用户+用户与主机关系+主机 中间那一张存放关系的,对外关联的字段可以联合唯一 #一对一 两张:学生和客户 一对一:一个学生是一个客户

    4.8K60

    MySQL | 数据库表字段约束

    第二范式:唯一性 数据中的每条记录必须是唯一的。...为了实现区分,通常要为上加一个列用来存储唯一标识,这个唯一属性列被称作主键列 第三范式:关联性 每列都与主键有直接关系,不存在传递依赖 依照第三范式,数据可以拆分保存到不同的数据,依次保持关联...字段约束 MySQL 中的字段约束共有四种: 约束名称 关键字 描述 主键约束 PRIMARY KEY 字段唯一,且不能为 NULL 非空约束 NOT NULL 字段值不能为 NULL 唯一约束 UNIQUE...字段唯一,且可以为 NULL 外键约束 FOREIGN KEY 保持关联数据的逻辑性 外键约束唯一不推荐使用的约束 主键约束 主键约束要求字段的值在全必须唯一,而且不能为 NULL 值 建议主键一定要使用数据类型...唯一约束要求字段值如果不为 NULL,那么在全必须唯一 CREATE TABLE t_teacher( ......

    5.6K10

    软件测试|MySQL唯一约束详解

    图片简介MySQL 唯一约束(Unique Key)是指所有记录中字段的值不能重复出现。MySQL中的唯一约束是一种用于确保中某列或多列的取值唯一的数据库约束。...唯一约束的作用是防止中出现重复的值,确保数据的完整性和一致性。在本文中,我们将详细介绍MySQL唯一约束的定义、用法以及其在数据库设计中的重要性。什么是唯一约束?...如果有重复的值要被插入,或者违反了唯一约束的值要被更新,数据库会拒绝这些操作并返回错误。唯一约束的定义在MySQL中,可以在创建时或者后期通过ALTER TABLE语句来定义唯一约束。...MySQL 中删除唯一约束的语法格式如下:ALTER TABLE DROP INDEX ;示例如下:删除数据 tb_dept1 中的唯一约束...总结唯一约束MySQL中确保中列值唯一性的重要手段。它能够防止数据重复,加速查询操作,同时在一些情况下也可以用来替代主键。

    70320

    MySQL-存储引擎-创建-字段数据类型-严格模式-字段约束-键-02

    ,会自上往下寻找非空且唯一约束字段自动将其升级为主键字段 当你的中没有任何约束(主键也是约束字段的时候,InnoDB会使用内部的一个隐藏字段作为主键,我们无法利用该主键 MyISAM 老版本用的存储引擎...# 语法: create table 名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件] ); # 注意: # 1....在同一张中,字段名不能相同 # 2. 宽度和约束条件可选,字段名和类型是必须的 # 3. 最后一个字段后不能加逗号!...约束条件 约束条件主要是用于保证数据的完整性和一致性 常见约束 PRIMARY KEY (PK) # 标识该字段为该的主键,可以唯一的标识记录 FOREIGN KEY (FK) # 标识该字段为该的外键...必须要有一个主键 当你没有指定主键的时候 1.会将非空切唯一字段自动升级成主键 2.当你的中没有任何的约束条件 innodb会采用自己的内部默认的一个主键字段 该主键字段你在查询时候是无法使用的

    2.4K30

    MySQL修改字段

    MySQL修改字段 MySQL 修改表字段的方法有两种: ALTER TABLE MODIFY COLUMN。...1、ALTER TABLE 方法 ALTER TABLE 方法用于修改结构,包括增加、删除和修改表字段。...其语法如下: ALTER TABLE 名 MODIFY COLUMN 字段字段类型; 其中,名 表示要修改的名,字段名 表示要修改的字段名,字段类型 表示修改后的字段类型。...例如,修改 users 的字段 username 的类型为 VARCHAR(50),可以使用以下 SQL 语句: ALTER TABLE users MODIFY COLUMN username VARCHAR...其语法如下: ALTER TABLE 名 MODIFY COLUMN 字段字段类型 [属性]; 其中,名 表示要修改的名,字段名 表示要修改的字段名,字段类型 表示修改后的字段类型,属性 表示修改后的字段属性

    5.4K10

    MySQL的完整性约束

    约束条件与数据类型的宽度一样,都是可选参数,主要分为以下几种: # NOT NULL :非空约束,指定某列不能为空; # UNIQUE : 唯一约束,指定某列或者几列组合不能重复 # PRIMARY...返回顶部 UNIQUE 唯一约束,指定某列或者几列组合不能重复 ? ?...返回顶部 PRIMARY KEY 主键为了保证中的每一条数据的该字段都是表格中的唯一值。换言之,它是用来独一无二地确认一个表格中的每一行数据。 主键可以包含一个字段或多个字段。...AUTO_INCREMENT 约束字段为自动增长,被约束字段必须同时被key约束 ? ?...#类型必须是innodb存储引擎,且被关联的字段,即references指定的另外一个字段,必须保证唯一 create table department( id int primary key,

    3.5K20

    MYSQL数据库-约束

    零、前言 本章主要讲解学习MYSQl数据库中的约束 约束 真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性...这样可以使对应于的SQL语句执行得更快,可快速访问数据库中的特定信息 7、唯一键 一张中有往往有很多字段需要唯一性,数据不能重复,但是一张中只能有一个主键:唯一键就可以解决中有多个字段需要唯一约束的问题...唯一键的本质和主键差不多,唯一键允许为空,而且可以多个为空,空字段不做唯一性比较 关于唯一键和主键的区别:主键更多的是标识唯一性的,而唯一键更多的是保证在业务上,不要和别的信息出现重复...具体指的是在公司的业务上不能重复,我们设计的时候,需要这个约束,那么就可以将员工工号设计成为唯一键 一般而言,我们建议将主键设计成为和当前业务无关的字段,这样,当业务调整的时候,我们可以尽量不会对主键做过大的调整...建立外键的本质其实就是把相关性交给mysql去审核了,提前告诉mysql之间的约束关系,那么当用户插入不符合业务逻辑的数据的时候,mysql不允许你插入

    7.5K30
    领券