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

MySQL知识点】默认约束、非约束

‍ 哈喽大家好,本次是MySQL数据库原理系列第五期 ⭐本期是MySQL的表的约束——默认约束、非约束 系列专栏:MySQL数据库 笔者还是前端的菜鸟,还请大家多多指教呀~ 欢迎大佬指正,...---- 文章目录 前言 默认约束 定义 测试 非约束 定义 测试 总结 ---- 前言 为了防止数据表中插入错误的数据,MySQL定义了一些维护数据库完整性的规则,即表的约束。...本期主要学习默认约束、非约束~ ---- 默认约束 定义 默认约束用于为数据表中的字段指定默认值,即当在表中插入一条新纪录时,如果没有给这个字段赋值,那么,数据库系统会自动为这个字段插入默认值。...非约束 定义 非约束指的是字段的值不能为null,非约束是通过not null定义的,基本语法格式如下: 字段名 数据类型 not null; 测试 接下来我们创建一个my_not_null...将n2或者n3字段设为null,插入失败,提示n2、n3字段不能设置为null。 添加了非约束字段,插入数据时不能插入值。

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

    MySQL删除约束_mysql查看表字段

    ,用于保证数据的完整性,从而符合该字段达到我们期望的效果,如果插入的数据不满足约束要求,数据库管理系统就会拒绝执行SQL 操作 常见的约束约束条件含义NOT NULL约束字段值不能为DEFAULT...非约束 (not null) 非约束字段的内容不希望设置为; CREATE TABLE (字段名 数据类型 NOT NULL); #修改数据类型时也可添加约束 2.默认约束(default) 为字段设置默认值...主键约束(primary key) 主键约束字段,不可以为、不可以重复 #创建表的时候,添加主键; CREATE TABLE (字段名 数据类型 PRIMARY KEY); 复合主键: 由多个字段组成的主键...CREATE TABLE ( id int, name char(20), PRIMARY KEY(id,name)); #注意,复合主键中多个字段的数据不能完全相同且不能为; #删除主键 alter...唯一约束(Unique Key) Unique Key 约束字段,值唯一,允许为,唯一约束可以确保一列或者多列不出现重复值 #创建表时添加唯一约束 CREATE TABLE (字段 数据类型 UNIQUE

    2.6K30

    MySQL | 数据库表字段约束

    MySQL 中的字段约束共有四种: 约束名称 关键字 描述 主键约束 PRIMARY KEY 字段值唯一,且不能为 NULL 非约束 NOT NULL 字段值不能为 NULL 唯一约束 UNIQUE...字段值唯一,且可以为 NULL 外键约束 FOREIGN KEY 保持关联数据的逻辑性 外键约束是唯一不推荐使用的约束 主键约束 主键约束要求字段的值在全表必须唯一,而且不能为 NULL 值 建议主键一定要使用数据类型...因为数字的检索速度会非常快 如果主键是数字类型,还可以设置自动增长 CREATE TABLE t_teacher( id INT PRIMARY KEY AUTO_INCREMENT, ... ... ); 非约束...非约束要求字段的值不能为 NULL 值 NULL 值为没有值,而不是 "" 空字符串 CREATE TABLE t_teacher( id INT PRIMARY KEY AUTO_INCREMENT...唯一约束要求字段值如果不为 NULL,那么在全表必须唯一 CREATE TABLE t_teacher( ......

    5.6K10

    新增非约束字段在不同版本中的演进

    开发提了一个数据库变更需求,新增一字段,没有NOT NULL非约束,但有默认值为NULL。...这种新增非约束字段在不同版本中确实有一些细节的变化,下面做一些简单测试。...11.2.0.1库,可以新增字段,表中已存记录该值确实为,即允许一个有NOT NULL约束字段包含NULL值。 ?...根据错误提示,我们删除表中数据,再新增字段,可以增加,但不能再插入一条NULL至这个非约束字段。 ?...至此,12c修复了11g中这个非约束字段允许保存值的bug,同时又支持11g新增默认值非字段使用数据字典存储的特性,并且做了扩展支持,满足范围更大了。 小问题隐藏了大智慧。

    3.1K10

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

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

    13.9K21

    与非:浅谈非约束的影响

    约束字段的一个重要属性。但是,很多时候,数据库表的设计人员似乎并不十分在意这个属性。最常见的现象就是,除了主键字段外,所有字段都不指定该属性。而在Oracle中,默认是允许为。...谓词评估 在上面表中,字段SUBOBJECT_NAME中不存在值,但也没有非约束,再看以下查询,查找该字段值记录: 统计信息如下: 我们看到,需要对表进行全表扫描(关于索引,随后再讨论)。...从10053跟踪文件中,可以看到这对于优化器对执行计划代价估算的影响: 非约束对索引选择的影响 我们知道,Oracle中B*树索引中不存在键值,即在表的数据记录中,如果索引中所有字段都为,则该记录不会被构建到索引树中...也就是说,如果索引字段上没有非约束,则表记录与索引记录不是完全映射的。...我们来看执行计划 统计信息如下 非约束对连接查询的影响 在进行数据关联时,数据集中关联字段是否存在值也会影响优化器对执行计划的选择。我们再创建一张测试表。

    3.2K40

    ⑦【MySQL】什么是约束?如何使用约束条件?主键、自增、外键、非....

    约束 ⑦【MySQL约束条件 1. 约束的基本使用 2. 外键约束 ⑦【MySQL约束条件 1. 约束的基本使用 约束: 什么是约束约束是作用于表中字段上的规则,用于限制存储在表中的数据。...约束分类: ①非约束 —— 限制该字段的数据不能为null NOT NULL ②唯一约束 —— 保证该字段的所有数据都是唯一、不重复的 UNIQUE ③主键约束—— 主键是一行数据的唯一标识,要求非且唯一...PRIMARY KEY ④默认约束—— 保存数据时,未指定该字段的值,则采用默认值 DEFAULT ⑤检查约束(8.0.16版本之后)—— 保证字段满足某一条件 CHECK ⑥外键约束—— 用来让两证表的数据之间建立连接...不为且唯一 年龄:age、int、大于0且小于等于120 状态:status、char(1)、默认值为1 性别:gender、char(1)、无约束条件 */ CREATE TABLE test(...'小一' for key 'test.name' INSERT INTO test(NAME,age,STATUS,gender) VALUES ('小一',22,'1','女'); -- 当设置非约束字段

    485100

    mysql float字段类型数据查询为问题

    mysql float字段类型数据查询为问题 作者:matrix 被围观: 224 次 发布时间:2021-12-28 分类:mysql PHP | 无评论 » 结论 不要用float、double...改用decimal字段类型 过程 之前是知道浮点数最好不要用float类型做存储,手上遇到老项目使用就正好是float字段存储的体重数据,比如51.6这种。...普通的查询没问题,个别数据就出现查询为的问题。后来发现都是浮点类型数据,排查框架的sql日志到PDO的参数绑定找遍了都没找到根源。...$this->PDOStatement->bindValue(':ThinkBind_1_', 51.6, PDO::PARAM_STR) 虽然字段设置了精度float(10,2),但是依然有查询为空出现...办法 浮点数查询使用like 使用函数比如oncat(wi)=51.6,或者format(wi,2) = format(51.6 ,2) 使用decimal字段类型 参考: https://www.cnblogs.com

    5.2K50

    MySQL中的字段约束 null、not null、default、auto_increment

    MySQL中,每个字段定义都包含附加约束或者修饰符,这些可以用来增加对所输入数据的约束。...今天我们来看一下MySQL字段约束:NULL和NOT NULL修饰符、DEFAULT修饰符,AUTO_INCREMENT修饰符。...NULL 和 NOT NULL 修饰符: 可以在每个字段后面都加上这NULL 或 NOT NULL 修饰符来指定该字段是否可以为(NULL),还是说必须填上数据(NOT NULL)。...MySQL默认情况下指定字段为NULL修饰符,如果一个字段指定为NOT NULL,MySQL则不允许向该字段插入值(这里面说的值都为NULL),因为这是“规定”。...如果一个字段中没有指定DEFAULT修饰符,MySQL会依据这个字段是NULL还是NOT NULL自动设置默认值。如果指定字段可以为NULL,则MySQL为其设置默认值为NULL。

    5.5K20

    数据库约束-主键约束-唯一约束-非约束-默认值

    数据库约束-主键约束-唯一约束-非约束-默认值 约束概述 约束其实就是一种限制,用于修饰表中的列. 通过这种限制来保证表中数据的正确性、有效性和完整性。...-- 联合主键 CREATE TABLE user4( id INT, `name` VARCHAR(20), PRIMARY KEY (id,`name`) ); -- 保证id和name字段不为...VARCHAR(20), -> PRIMARY KEY (id,`name`) -> ); Query OK, 0 rows affected (0.02 sec) -- 保证id和name字段不为...非约束 NOT NULL 被修饰的这个字段必须设置值,不能是NULL 3.1 非约束的基本格式 字段字段类型 NOT NULL 3.2 实现非约束 具体操作: 创建表学生表st8, 包含字段(...'男'); ERROR 1048 (23000): Column 'NAME' cannot be null mysql> -- 可以看到设置了非约束后,st8表无法插入 null 数据 mysql

    6.2K10

    MySQL 约束

    1.1 非(not null) 1.1.1 概述   非约束(NOT NULL)指字段的值不能为。对于使用了非约束字段,用户在添加数据时没有指定值,数据库系统就会报错。...唯一约束在一个表中可有多个,并且设置唯一约束的列允许有空值,但是只能有一个值。...一个表可以有一个或多个外键,外键可以为值,若不为值,则每一个外键的值必须等于主表中主键的某个值。定义外键时,需要遵守下列规则:  ♞ 主表必须已经存在于数据库中,或者是当前正在创建的表。...♞ 主键不能包含值,但允许在外键中出现值。也就是说,外键的每个非值必须是主表主键存在内容。  ♞ 若一个表中的字段被另一个表关联则该字段不能直接删除。 ?...在表中插入一条新记录时,如果没有为某个字段赋值,系统就会自动为这个字段插入默认值。默认值约束通常用在已经设置了非约束的列,这样能够防止数据表在录入数据时出现错误。

    3K31

    MySQL约束

    约束 (not null 被设置非约束字段值不能为) - 建表时添加非约束: - create table student( - id int not null, - id_number...varchar(25) - ); - 删除表的非约束 * alter table student modify name varchar(20); 默认值:default 设置默认值,即使没有插入值也会有默认的值...唯一约束 (unique 被设置唯一约束字段值不能重复,但是可以为) - 建表时添加唯一约束 - create table student( - id int, - id_number...字段名; 创建表之后添加唯一约束:alter table 表名 modify 字段名 数据类型 unique; 主键约束 (primary key 同时保证了唯一和非) - 创建表时添加主键约束...表名 drop primary key; 添加主键约束:alter table 表名 modify 字段名 数据类型 primary key; 自动增长 (auto_increment) 一个表中有且只能有一个自增长列

    1.6K20
    领券