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

MySQL探索之旅】MySQL数据表的增删改——约束

数据库约束类型 not null :不允许某列存储空值(非空); unique :不允许你某列存储重复值(唯一); default :没有赋值的列存储默认值; primary key:主键约束,not...foreign key:外键约束,保证一个表中的数据匹配另一个表中的值的参照完整性。...id, name) values (1,'张三'); insert into student(id, name, sex) values (2,'李四','男'); 5. primary key:主键约束...student values (5,'宋六'); insert into student values (null,'王麻子'); select * from student; 6. foreign key:外键约束...varchar(20), classId int, foreign key (classId) references class(id)); 在这个语句中, 定义一个外键的实际作用是,在这条语句执行后,确保 MySQL

9310

MySQLMySQL表的增删改(进阶篇)——之约束条件

家人们,小编上期期讲解了关于增删改的基础操作~~~,关于数据库表的增删改有了一定的认知,小编这期就将深入讲解另一部分内容,即关于数据库增删改的进阶操作之约束条件,大家准备好了吗~~~; 讲解内容:...和上述添加一样,修改时也会进行约束; 修改时约束mysql> update test99 set id=null where name='孙悟空'; ERROR 1048 (23000): Column...sec) 4.1添加数据约束 这里在第二次添加数据时,会进行约束 mysql> insert into student values(1,'孙悟空'),(1,'猪八戒'); ERROR 1062 (23000...所以这里的约束条件就是not null和unique的合并 5.3修改数据约束 代码如下: mysql> update student set id=1 where name='沙悟净'; ERROR...class(classid)); Query OK, 0 rows affected (0.00 sec) 那么此时就已经建立了联系; 那么是如何进行书写的呢???

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

    MySQL约束

    约束 约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。...非空约束 (not null 被设置非空约束的字段值不能为空) - 建表时添加非空约束: - create table student( - id int not null, - id_number...唯一约束 (unique 被设置唯一约束的字段值不能重复,但是可以为空) - 建表时添加唯一约束 - create table student( - id int, - id_number...varchar(25) unique -- 给id_number设置唯一约束 - ); 查看唯一约束:show index from 表名; 删除唯一约束:alter table 表名 drop index...字段名; 创建表之后添加唯一约束:alter table 表名 modify 字段名 数据类型 unique; 主键约束 (primary key 同时保证了唯一和非空) - 创建表时添加主键约束

    1.6K20

    MySQL 约束

    注意,上述所有约束中,一个数据表中,无论是单一主键还是复合主键,只能有一个主键约束,其它约束可以有多个。 3.创建约束 创建主键约束 建表时在字段后添加 PRIMARY KEY 表明是主键。...以下是一个示例,演示如何在定义完所有字段之后指定主键: CREATE TABLE users( id INT AUTO_INCREMENT, name VARCHAR(255),...开始,CREATE TABLE 允许所有存储引擎使用表和列 CHECK 约束的核心功能。...通过 SHOW CREATE TABLE 语句可以查看表的创建语句,结果包含了表的所有约束。...以下是一些常见的约束类型以及如何修改它们的示例: 修改主键约束 如果要修改表的主键约束,首先需要删除原来的主键约束,然后再添加新的主键约束

    21510

    MySQL约束

    约束在创建表的时候添加比较合适。 一、约束概述 1.1、什么是约束 约束用于限制加入表的数据的类型。...+------------+-------+ 1 行于数据集 (0.01 秒) 3.3、记录删除后对自增的影响 3.3.1、delete 删除记录后,对自增长字段没有影响 案例: 删除用户数据库表中的所有记录...zhangsan | +-----+----------+----------+ 1 行于数据集 (0.01 秒) 3.3.2、truncate 删除记录后,自增长字段重新从1开始 案例: 删除用户数据库表中的所有记录...zhangsan | | 1 | NULL | | 1 | NULL | +------+----------+ 3 行于数据集 (0.01 秒) 注意: null表示的是没有数据,所有不存在重复的问题...-------+--------------------+----------+ 2 行于数据集 (0.01 秒) 九、级联操作 9.1、为什么要级联 当我们的主表班级表中的cid发生变化时,我们应该如何去改变我们的从表学生表中的

    6.6K10

    Database、Table的所有约束

    列出Database或Table的所有约束 很多时候我们想使用像 INSERT、UPDATE、DELETE 这样的DML命令。有时候因为某个表被设置约束,导致我们操作该表出现错。...拿到一个新的数据库,如果不知道哪些表被设置约束,一定让人很痛苦。 如果我们能够列出所有约束,很多错误就可以避免。下面有两个方法列出约束。 方法 一 使用 sys.objects 获得约束信息。...— 显示数据库中所有约束 SELECT * FROM sys.objects WHERE type_desc LIKE ‘%CONSTRAINT’ 上面的语句显示sys.objects中所有的字段。...这个查询有一个缺点,它不会显示数据库的默认(DEFAULT)约束 –显示数据库中所有约束 SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS – 显示‘...Employee’表中所有约束 SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME=‘Employee’ 在数据库中,

    64540

    mysql约束

    mysql设计表中,有个概念叫做约束 什么是约束 约束英文:constraint 约束实际上就是表中数据的限制条件 约束种类 mysql约束大概分为以下几种: 非空约束(not null) 唯一性约束...(unique) 主键约束(primary key) PK 外键约束(foreign key) FK 检查约束(目前MySQL不支持、Oracle支持,本文不做介绍) 为了能继续看下去,打开mysql,...(非空约束,主键约束,唯一性约束);在后面会使用到外键约束 非空约束 非空约束是我们最常见的一种约束方式,它规定了我们插入数据不允许为空(在mysql中,''不是空,null才是),例如以下插入语句:...应用场景方面,例如用户邮箱,用户密码不能为空,都可以增加非空约束 唯一性约束 唯一性约束是使用unique关键字进行的约束,它有多种约束方式以及约束形式....表:子表 创建先创建父表 删除先删除子表数据 插入先插入父表数据 外键约束将会让mysql在插入,删除,更新会增加额外的判断,严格来说,不允许使用外键约束,如果需要限制,请在代码层限制

    2.1K10

    MySQL 约束介绍

    用来限制某个字段/某列的值不能重复 同一个表可以有多个唯一约束 唯一约束可以是某一个列的值唯一,也可以多个列组合的值唯一。...唯一性约束允许列值为空。 在创建唯一约束的时候,如果不给唯一约束命名,就默认和列名相同。 MySQL会给唯一约束的列上默认创建一个唯一索引。...字段名 字段类型 UNIQUE; 3、主键约束 用来唯一标识表中的一行记录 主键约束相当于唯一约束+非空约束的组合,主键约束列不允许重复,也不允许出现空值 一个表最多只能有一个主键约束 主键约束对应着表中的一列或者多列...字段名 数据类型; 5、外键约束 限定某个表的某个字段的引用完整性 从表的外键列,必须引用/参考主表的主键或唯一约束的列 在创建外键约束时,如果不给外键约束命名,默认名不是列名,而是自动产生一个外键名...从表”中指定外键约束,并且一个表可以建立多个外键约束 当创建外键约束时,系统默认会在所在的列上建立对应的普通索引,索引名是外键的约束名,删除外键约束后,必须手动删除对应的索引 CREATE TABLE

    1.6K41

    Mysql外键约束

    外键是用来实现参照完整性的,不同的外键约束方式将可以使两张表紧密的结合起来,特别是修改或者删除的级联操作将使得日常的维护工作更加轻松。...外键主要用来保证数据的完整性和一致性 两个表必须是InnoDB表,MyISAM表暂时不支持外键 外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立...如果父表试图UPDATE或者DELETE任何子表中存在或匹配的外键值,最终动作取决于外键约束定义中的ON UPDATE和ON DELETE选项。...外键约束使用最多的两种情况: 1)父表更新时子表也更新,父表删除时如果子表有匹配的项,删除失败; 2)父表更新时子表也更新,父表删除时子表匹配的项也删除。...`article`, CONSTRAINT `fk_1` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`)) (4)更改更新删除约束

    5.9K81

    MySQL约束详接

    约束的分类 非空约束   关键字 NOT NULL  特点 默认,所有的类型的值都可以是NULL,包括INT、FLOAT等数据类型 非空约束只能出现在表对象的列上,只能某个列单独限定非空,不能组合非空...唯一约束可以是某一个列的值唯一,也可以多个列组合的值唯一。 唯一性约束允许列值为空。在创建唯一约束的时候, 如果不给唯一约束命名,就默认和列名相同。...MySQL会给唯一约束的列上默认创建一个唯一索引。 添加唯一约束 举例:    删除唯一约束 添加唯一性约束的列上也会自动创建唯一索引。 删除唯一约束只能通过删除唯一索引的方式删除。...,也可以是多个字段, #如果是多个字段的话,是复合主键 删除主键约束   自增列:AUTO_INCREMENT 作用 某个字段的值自增 关键字 auto_increment 如何指定自增约束 ... 建表后 alter table 表名称 modify 字段名 数据类型 auto_increment;  MySQL 8.0将自增主键的计数器持久化到重做日志中。

    1.8K10

    MySQL】表的约束

    反过来,在 mysql 角度,凡是插入进来的数据,都是符合数据约束的!约束的最终目的就是保证数据的完整性和可预期性。因此我们需要更多的约束条件!...再查看数据: 这次可以看到 a 的值由原来的 1 变成 00001,这就是 zerofill 属性的作用,如果宽度小于设定的宽度(这里设置的是 5),自动填充 0;要注意的是,这只是最后显示的结果,在 MySQL...在创建表的时候,在所有字段之后,使用 primary key (主键字段列表)来创建主键,如果有多个字段作为主键,可以使用复合主键。...而我们设计员工工号的时候,需要一种约束:而所有的员工工号都不能重复。具体指的是在公司的业务上不能重复,我们设计表的时候,需要这个约束,那么就可以将员工工号设计成为唯一键。...建立外键的本质其实就是把相关性交给 mysql 去审核了,提前告诉 mysql 表之间的约束关系,那么当用户插入不符合业务逻辑的数据的时候,mysql 不允许你插入。

    14610

    MYSQL】表的约束

    前言 真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。...name varchar(5) ); 创建好表之后,我们可以追加主键 2.删除主键 alter table 表名 drop primary key; 案例: 3.复合主键 在创建表的时候,在所有字段之后...create table stu4( id int, name varchar(5), primary key(id,name) ); 需要单独一列,在key的后面跟括号,里面写入需要加上主键的所有列...而我们设计员工工号的时候,需要一种约束:而所有的员工工号都不能重复。 具体指的是在公司的业务上不能重复,我们设计表的时候,需要这个约束,那么就可以将员工工号设计成为唯一键。...,主表则必须是有主键约束或unique约束

    24440

    MySQL表的约束

    一.表的约束的概念 真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业务逻辑角度保证数据的正确性。...所谓约束,就是避免犯一些低级错误,比如类似于语法错误,编译器的编译失败实际上也算是一种约束。 表中一定要有各种约束,通过约束,让我们未来插入数据库表中的数据是符合预期的。...约束的本质: 通过技术手段倒逼程序员插入正确的数据。反过来站在mysql的视角,凡是插入进来的数据,都是符合数据约束的。 约束的最终目标: 保证数据的完整性和可预期性。 为什么数据库这么严格?...通过desc操作,其后四列就属于约束条件: 总结一下:约束就是表结构的设计者在其他人插入数据之前,预先把规则定好,再让被别人按照他的规则进行数据的增删改,不满足约束的数据不会被插入到对应的表中,这样下来...二.表的非空约束 1.NULL与’ '比较 在MySQL数据类型已经说过,这二者是不同的,NULL代表什么都没有,而' '代表一个空串。 在select语句中,NULL不会参与到相应的计算操作中。

    21950

    MySQL】04_约束

    可以作用在多个列上,不与列一起,而是单独定义 列级约束与表级约束的区别 位置 支持的约束类型 是否可以起约束名 列的后面 语法都支持,但外键没有效果 不可以 所有列的下面 默认和非空不支持,其他支持 可以...MySQL会给唯一约束的列上默认创建一个唯一索引。...CHECK 约束 说明:MySQL 5.7 不支持(可以使用但对数据验证时没起任何作用) 但是MySQL 8.0中可以使用check约束了。...注意:之前的约束都是约束表的,DEFAULT 是约束字段的 如何给字段加默认值 建表时 create table 表名称( 字段名 数据类型 default 默认值 , 字段名 数据类型 not...default 默认值 not null; 如何删除默认值约束 alter table 表名称 modify 字段名 数据类型 ;#删除默认值约束,也不保留非空约束 alter table 表名称 modify

    2.4K20

    MySQL主键约束使用

    MySQL主键约束是一种用于确保表中每行数据的唯一性的限制。每个表只能有一个主键,它可以是一个或多个列。创建表时添加主键约束在创建表时添加主键约束,需要在列名后面添加关键字"PRIMARY KEY"。...主键约束和自增列通常情况下,主键约束通常与自增列一起使用。自增列是指在插入新行时,自动为该行分配一个唯一的值。在MySQL中,可以使用AUTO_INCREMENT关键字来创建自增列。...,MySQL会自动为其分配一个唯一的值。...如果要更新的行不止一行,所有行都将被更新。在此示例中,只有一行符合WHERE条件,因此只有一行被更新。如果要删除用户,可以使用DELETE语句。...如果没有WHERE子句,则将删除表中的所有行。

    2.6K20

    MySQL】:约束全解析

    本文将深入介绍MySQL中的各种约束类型及其使用方法,包括非空约束、唯一约束、主键约束、默认约束、检查约束和外键约束,以及如何在创建表和修改表时添加约束,以及外键约束的相关知识。 一....分类: 约束 描述 关键字 非空约束 限制该字段的数据不能为null NOT NULL 唯一约束 保证该字段的所有数据都是唯一、不重复的 UNIQUE 主键约束 主键是一行数据的唯一标识,要求非空且唯一...约束演示 如何在创建表、修改表的时候来指定约束呢,接下来我们就通过一个案例,来演示一下。...CONSTRAINT 外键名称 FOREIGN KEY (外键字段) REFERENCES 主表名 (主表字段名) ON UPDATE CASCADE ON DELETE CASCADE; ️全篇总结 本文详细介绍了MySQL...通过学习本文,读者可以掌握如何在数据库设计和管理中灵活运用约束,从而保证数据的完整性和准确性,提高数据库的稳定性和安全性。

    24410
    领券