mysql 列约束
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 列约束的更多相关文章
- mysql列约束
列属性(约束)1: 是否允许为空(not null) --not null不允许为空create table t_1( a tinyint(3) zerofill not null, b ...
- MySQL的列约束
1.列约束 (1)主键约束——PRIMARY KEY (2)非空约束——NOT NULL 声明了非空约束的列上,不允许使用NULL (3)唯一约束——UNIQUE 声明了唯一约束的列上不能插入重复的值 ...
- MySQL服务 - MySQL列类型、SQL模式、数据字典
MySQL列类型的作用: 列类型可以简单理解为用来对用户往列种存储数据时做某种范围"限定",它可以定义数据的有效值(字符.数字等).所能占据的最大存储空间.字符长度(定长或变长). ...
- MYSQL中约束及修改数据表
MYSQL中约束及修改数据表 28:约束约束保证数据的完整性和一致性约束分为表级约束和列级约束约束类型包括: NOT NULL(非空约束) PRIMARY KEY(主键约束) UNI ...
- 数据库-SQL语句:删除和修改语句-列类型-列约束
使用MySQL客户端连接服务器的两种方式: (1)交互模式: ——查 mysql.exe -h127.0.0.1 -uroot -p mysql -uroot (2)脚本模式:——增删改 m ...
- mysql列的处理
MySQL 添加列,修改列,删除列 示例:ALTER TABLE tb_financial MODIFY CREATE_TIME DATETIME(3) DEFAULT NULL COMMENT '录 ...
- 【MySQL】MySQL的约束
在开始之前,笔者介绍一下笔者使用的数据库版本为5.7.所有的关系型数据库都支持对数据表使用约束,通过约束可以更好的保证数据表里数据的完整性.约束是在表上强制执行的数据校验,约束主要用于保证数据库里数据 ...
- mysql的约束
SQL 约束 约束用于限制加入表的数据的类型. 可以在创建表时规定约束(通过 CREATE TABLE 语句),或者在表创建之后也可以(通过 ALTER TABLE 语句). (1)NOT NULL约 ...
- [转]mysql的约束
转自:http://blog.csdn.net/kqygww/article/details/8882990 MySQL中约束保存在information_schema数据库的table_constr ...
- MYSQL数据库约束类型
07.14自我总结 MYSQL数据库约束类型 一.主键约束(primary key) 主键约束要求主键列的数据唯一,并且不能为空.主键分为两种类型:单字段主键和多字段联合主键. 1.单字段主键 写法 ...
随机推荐
- Codeforces Round #751 (Div. 2)/CodeForces1602
CodeForces1602 Two Subsequences 解析: 题目大意 给你一个字符串 \(s\).你需要两个非空字符串 \(a\) 和 \(b\) 并且满足下面的条件: 字符串 \(a\) ...
- Springboot 一行代码实现文件上传 20个平台!少写代码到极致
大家好,我是小富~ 技术交流,公众号:程序员小富 又是做好人好事的一天,有个小可爱私下问我有没有好用的springboot文件上传工具,这不巧了嘛,正好我私藏了一个好东西,顺便给小伙伴们也分享一下,d ...
- Linux网络管理命令
Linux网络管理命令 ifconfig 用于配置网卡ip地址信息等网络参数或显示网络接口状态,类似于windows的ipconfig命令. 可以用这个工具来临时性的配置网卡的IP地址.掩码.广播地址 ...
- vue 祖先组件操作后代组件方法
前言:最近写代码遇到一问题:祖先级别的组件怎么操作孙子的儿子的组件方法(是不是已经绕晕了),在网上搜了半天都是父子传参,父子操作,晕晕乎乎的想起了bus(事件总线), 原理就是:是在vue原型上挂载( ...
- Typora图床上传配置:PicGo+Gitee 不完全指南
每次写Markdown都要手动传图,再复制链接到Typora里,这样比较繁琐. 设置好图床,搭配PicGo,写作时直接剪贴图片到Typora,就能实现自动上传,这样就方便很多. Gitee配置: 许多 ...
- 修复 docker build 错误 "ERROR: No build stage in current context"
若 docker build 时遇到了错误 "ERROR: No build stage in current context",则有可能是没有将 FROM 命令语句放置在第一行. ...
- (C++) C++ new operator, operator new 及 placement new (待整理)
https://blog.csdn.net/songthin/article/details/1703966 https://cplusplus.com/reference/new/operator ...
- 第2-4-2章 规则引擎Drools入门案例-业务规则管理系统-组件化-中台
目录 3. Drools入门案例 3.1 业务场景说明 3.2 开发实现 3.3 小结 3.3.1 规则引擎构成 3.3.2 相关概念说明 3.3.3 规则引擎执行过程 3.3.4 KIE介绍 3. ...
- 第2-4-3章 规则引擎Drools基础语法-业务规则管理系统-组件化-中台
目录 4. Drools基础语法 4.1 规则文件构成 4.2 规则体语法结构 4.3 注释 4.4 Pattern模式匹配 4.5 比较操作符 4.5.1 语法 4.5.2 操作步骤 4.6 执行指 ...
- NLP手札1. 金融信息负面及主体判定方案梳理&代码实现
这个系列会针对NLP比赛,经典问题的解决方案进行梳理并给出代码复现~也算是找个理由把代码从TF搬运到torch.Chapter1是CCF BDC2019的赛题:金融信息负面及主体判定,属于实体关联的情 ...