mysql可以对插入的数据进行特定得验证,只有满足条件才可以插入到数据表中,否则认为是非法插入;

例如:人性别只可以是男、女。年龄只能是0-100。

①主键约束查重-PRIMARY KEY,1表一个

例子:id INT PARIMARY KEY,

声明主键约束列上的值不能出现重复,一个表只可以有一个主键,设置主键约束不可以使用NULL值;

表中查询的记录会按照主键由小到大的顺序排列--加快查找速度

②非空约束-NOT NULL,批量插入会失效

注意问题:INSERT INTO 插入时候会收到影响,起不了作用;

例子:id INT NOT NULL,

在插入数据时候,无法确定要保存的数据,例如:无法确定员工的工资,生日都可以使用NULL;

③唯一约束-UNIQUE

声明了唯一约束的列上不能插入重复的值,允许插入NULL,甚至多个NULL.

说明:NULL这个值比较特殊,它和任何值都不相等,甚至和自身都不相等;

注意:一个表里可以有多个唯一约束UNIQUE,但是只能有一个主键约束 PRIMARY KEY

④检查约束-CHECK

检查约束可以对插入的数据进行自定义的验证

CREATE TABLE student(score TINYINT CHECK(score>=0&scure<=100)

);

mysql 中不支持检查约束,会降低数据的插入速度;

⑤默认值约束-DEFAULT

可以使用DEFAULT关键字声明默认值,有两种方式应用默认值

第一种设置DEFAULT方法

CREATE TABLE family(

fid INT PRIMARY KEY,

fname VARCHAR(20) UNIQUE,

XX XX DEFAULT 1

);

INSERT INTO family VALUES(50,'华硕',DEFAULT);

第二种设置DEFAULT方法

INSERT INTO family (fid,fname)VALUES(50,'华硕');第三个值自动使用默认数值

注意事项:不可以在表格后括号里加引号!!!

⑥外键约束-FOREIGN KEY

使用方法:

CREATE TABLE laptop(

lid INT PRIMARY KEY,

familyld INT,

FOREIGN KEY(familyId) REFERENCES laptop_family(fid)

);

注意问题:

1.必须是另一个表格的主键

2.列类型必须和另一个表格的一样

3.需要加了逗号写到下一行

声明了外键约束的列,取值必须在另一个表的主键列上出现过,两者的列类型要保持一致,允许使用多个NULL或者多个NULL

使用方法:

FOREIGN KEY (列名) REFERENCES 数据表(主键列)

mysql 中的自增列

AUTO_INCREMENT:

自动增长,假如一个列声明了自增列,无需手动赋值,直接赋值为NULL,会获取当前的最大值, 然后加1插入

注意: 1.只适用于整数型的主键列上面

2.自增列允许手动赋值

3.手动赋值后中间跳跃有缺失,还会按最大值继续增长。

4.使用方便,可以直接给上面写NULL,数字自动加1;

列约束汇总

mysql 列约束的更多相关文章

  1. mysql列约束

    列属性(约束)1: 是否允许为空(not null)  --not null不允许为空create table t_1(    a tinyint(3) zerofill not null,    b ...

  2. MySQL的列约束

    1.列约束 (1)主键约束——PRIMARY KEY (2)非空约束——NOT NULL 声明了非空约束的列上,不允许使用NULL (3)唯一约束——UNIQUE 声明了唯一约束的列上不能插入重复的值 ...

  3. MySQL服务 - MySQL列类型、SQL模式、数据字典

    MySQL列类型的作用: 列类型可以简单理解为用来对用户往列种存储数据时做某种范围"限定",它可以定义数据的有效值(字符.数字等).所能占据的最大存储空间.字符长度(定长或变长). ...

  4. MYSQL中约束及修改数据表

    MYSQL中约束及修改数据表 28:约束约束保证数据的完整性和一致性约束分为表级约束和列级约束约束类型包括:    NOT NULL(非空约束)    PRIMARY KEY(主键约束)    UNI ...

  5. 数据库-SQL语句:删除和修改语句-列类型-列约束

    使用MySQL客户端连接服务器的两种方式: (1)交互模式: ——查 mysql.exe  -h127.0.0.1  -uroot  -p mysql   -uroot (2)脚本模式:——增删改 m ...

  6. mysql列的处理

    MySQL 添加列,修改列,删除列 示例:ALTER TABLE tb_financial MODIFY CREATE_TIME DATETIME(3) DEFAULT NULL COMMENT '录 ...

  7. 【MySQL】MySQL的约束

    在开始之前,笔者介绍一下笔者使用的数据库版本为5.7.所有的关系型数据库都支持对数据表使用约束,通过约束可以更好的保证数据表里数据的完整性.约束是在表上强制执行的数据校验,约束主要用于保证数据库里数据 ...

  8. mysql的约束

    SQL 约束 约束用于限制加入表的数据的类型. 可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句). (1)NOT NULL约 ...

  9. [转]mysql的约束

    转自:http://blog.csdn.net/kqygww/article/details/8882990 MySQL中约束保存在information_schema数据库的table_constr ...

  10. MYSQL数据库约束类型

    07.14自我总结 MYSQL数据库约束类型 一.主键约束(primary key) 主键约束要求主键列的数据唯一,并且不能为空.主键分为两种类型:单字段主键和多字段联合主键. 1.单字段主键 写法 ...

随机推荐

  1. LcdTools如何自定义读写PX01 SSD2828寄存器

    LcdToos打开相应的工程文件,连接PX01并开启点亮屏使LcdTools开关处于开启状态. 切到"测试设置"栏,在"Bridge控制"栏,在"Ad ...

  2. .net core Blazor+自定义日志提供器实现实时日志查看器

    场景 我们经常远程连接服务器去查看日志,比较麻烦,如果直接访问项目的某个页面就能实时查看日志就比较奈斯了,花了1天研究了下.net core 日志的原理,结合blazor实现了基本效果. 实现原理 自 ...

  3. 使用 Cravatar 解决 Gravatar 头像无法访问的问题

    Gravatar全球通用头像服务 1.基本介绍 Gravatar,即全球公认的头像,是一项免费的头像服务,适用于网站所有者,开发人员以及任何想要轻松且经过验证的在线身份的人.它被内置在每个WordPr ...

  4. Java 19 新功能介绍

    点赞再看,动力无限. 微信搜「程序猿阿朗 」. 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章. Java 19 在2022 年 9 ...

  5. C#自定义控件(3)—PanelHead控件

    有时候我们会需要这样一种控件效果,上面是标题,下面是另外一个区域,且分别需要设置不同的颜 色等,当然我们可以使用splitContainer控件来制作,也可以直接使用自定义控件来,这样可以减少一 定的 ...

  6. 2022春每日一题:Day 29

    题目:Mishka and Interesting sum 这题稍微分析就能发现实际这个题就是求区间异或和异或上区间不同数的异或和,因此直接转化为HH的项链. 代码: #include <cst ...

  7. Go语言核心36讲31

    我们在前两篇文章中讨论了互斥锁.读写锁以及基于它们的条件变量,先来总结一下. 互斥锁是一个很有用的同步工具,它可以保证每一时刻进入临界区的goroutine只有一个.读写锁对共享资源的写操作和读操作则 ...

  8. 【云原生 · Kubernetes】部署高可用kube-scheduler集群

    个人名片: 因为云计算成为了监控工程师‍ 个人博客:念舒_C.ying CSDN主页️:念舒_C.ying 部署高可用kube-scheduler集群 13.1 创建 kube-scheduler 证 ...

  9. 当resource bundle 的多语言文件里包含引号'时

    背景 项目中使用Spring的ReloadableResourceBundleMessageSource这个类来实现多语言,有一次字符串里包含引号'时,解析时出了问题,一起来看一下吧 例子 resou ...

  10. 英格索兰扳手网口通信协议EOR原理

    前言 前几天遇到这个需求,需要记录扳手每一次的周期数据,但是我不知道通信协议是什么,只知道是一个tcp的连接,问售后,也不给我网口调试软件(英格索兰自己家的软件).经过我俩天的谷歌,终于找到了他们公司 ...