约束(Constraint)

什么是约束?

在创建表的时候,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性、有效性、完整性。

常见的约束有哪些?

 非空约束(not null):约束的字段不能为NULL唯一约束(unique):约束的字段不能重复主键约束(primary key):约束的字段既不能为NULL,也不能重复(简称PK)外键约束(foreign key):...(简称FK)检查约束(check):注意Oracle数据库有check约束,但是mysql没有,目前mysql不支持该约束。

其他需要掌握的概念

列级约束
表级约束

非空约束

非空约束

not null

drop table if exists t_user;
create table t_user( id int,username varchar(255) not null,password varchar(255)
);insert into t_user(id,password) values(1,'123');
ERROR 1364 (HY000): Field 'username' doesn't have a default valueinsert into t_user(id,username,password) values(1,'lisi','123');

注意:not null约束只有列级约束。没有表级约束。

唯一约束

唯一约束

unique

唯一约束修饰的字段具有唯一性,不能重复。但可以为NULL。

案例1:
给某一列添加unique

drop table if exists t_user;
create table t_user(id int,username varchar(255) unique  // 列级约束
);

验证:

insert into t_user values(1,'zhangsan');
insert into t_user values(2,'zhangsan');
ERROR 1062 (23000): Duplicate entry 'zhangsan' for key 'username'insert into t_user(id) values(2);
insert into t_user(id) values(3);
insert into t_user(id) values(4);

案例2:
给两个列或者多个列添加unique

drop table if exists t_user;
create table t_user(id int, usercode varchar(255) unique,username varchar(255) unique
);

验证:

insert into t_user values(1,'111','zs');
insert into t_user values(2,'111','ls');
ERROR 1062 (23000): Duplicate entry '111' for key 'usercode'

案例3:
两个或多个字段联合起来添加1个约束unique 【表级约束】

drop table if exists t_user;
create table t_user(id int, usercode varchar(255),username varchar(255),unique(usercode,username) // 多个字段联合起来添加1个约束unique 【表级约束】
);

这种写法表示两个或多个字段联合起来之后具有唯一性(不能重复)

验证:

insert into t_user values(1,'111','zs');
insert into t_user values(2,'111','ls');
insert into t_user values(3,'222','zs');
select * from t_user;
insert into t_user values(4,'111','zs');
ERROR 1062 (23000): Duplicate entry '111-zs' for key 'usercode'

参考上边的两种写法,可做一个定义:
直接在字段后边添加的约束,叫“列级约束”;
在所有字段声明完毕之后再单独添加的约束,叫“表级约束”;

注意:not null约束只有列级约束。没有表级约束。

主键约束(PK)

外键约束(FK)

【数据库SQL】约束相关推荐

  1. SQL数据库常用约束及建表、插入数据时注意事项

    1.数据库常用约束 primary key --主键约束 foreign key (references) --外键约束 unique --唯一值约束 default --默认值约束 check -- ...

  2. 关于数据库SQL优化

    1.数据库访问优化 要正确的优化SQL,我们需要快速定位能性的瓶颈点,也就是说快速找到我们SQL主要的开销在哪里?而大多数情况性能最慢的设备会是瓶颈点,如下载时网络速度可能会是瓶颈点,本地复制文件时硬 ...

  3. oracle数据库sql培训,Oracle数据库SQL语言实战培训教程(全面、详细、案例、精讲)套餐...

    风哥oracle数据库SQL语言实战培训教程(案例.精讲)套餐,DBA必备技能. 套餐介绍: 风哥Oracle数据库SQL语言实战培训教程(案例.精讲)套餐,DBA必备技能. 内容: SQL语言基础入 ...

  4. sql replace替换多个字符_牛客网数据库SQL实战详细剖析(4150)

    文章来源:大数据肌肉猿 作者:无精疯 这是一个系列文章,总共61题,分6期,有答案以及解题思路,并附上解题的一个思考过程.具体题目可参考牛客网的SQL实战模块:https://www.nowcoder ...

  5. mysql sql exists_数据库sql语句的exists总结

    数据库sql语句的exists总结 sql exists in 学习 先来比较下语法: --deals=交易表,areas=地域表,例如香港:我们的目的:查看有交易的地域 select * from ...

  6. Oracle数据库:约束行限制where语句,判断条件,比较条件,字符串日期格式,in,like,escape,null语句

    Oracle数据库:约束行限制where语句,判断条件,比较条件,字符串日期格式,in,like,escape,null语句 2022找工作是学历.能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很 ...

  7. 第三阶段:Web前端:02数据库(sql语言、JDBC数据库连接) | 03(1)SpringBoot

    二.数据库--> MySQl或MariaDB 0.1.Mysql-安装步骤 进入网址 http://doc.canglaoshi.org/-->常用下载:Windows必备-->Ma ...

  8. 数据库SQL实战题目详解(全61题)---(41-61)部分

    题目来源:牛客网–<数据库SQL实战> https://www.nowcoder.com/ta/sql?page=0 题目答案为博主自写已通过运行,题目难度近似于阶梯上升,可根据自身情况分 ...

  9. MySQL中操作关系型数据库 SQL

    数据库(database) 常见的数据库: 关系型数据库: SQL server 微软 Oracle oracle (甲骨文) MySQL oracle DB2 IBM SQLIte 安卓 NoSQL ...

  10. 【MySQL】数据库的约束

    哈喽,大家好!我是保护小周ღ,本期为大家带来的是 MySQL 数据库中对表的约束,主要有null (空约束),unique(唯一约束),primary key(主键约束),default(默认值约束) ...

最新文章

  1. ionic项目创建打包签名
  2. php fastcgi配置_IIS7.5配置php(FastCGI)- 自动配置
  3. 怎么知道python有哪些库、哪些方法-哪些 Python 库让你相见恨晚?
  4. 计算智能-群智能算法-蚁群算法matlab实现
  5. 「机械」4大传动方式优劣对比:机械、电气、气压、液压
  6. Struts2入门到放弃
  7. 【论文笔记】Beyond Low-frequency Information in Graph Convolutional Networks
  8. Mac系统下安装Port
  9. 【霜雪千年】MMD动作镜头下载
  10. 软件质量测试一般方法
  11. 彩虹域名授权平台系统正版源码 带下载更新功能
  12. 给初学者推荐的10个Python免费学习网站!赶紧收藏吧!
  13. 简析国内外电商的区别
  14. Nodejs Promise 读书笔记
  15. ubuntu如何卸载软件
  16. MySQL备份和还原操作
  17. python考试题目及答案-python考试题库
  18. 互联网启示:从生命起源到智慧宇宙的进化全景图
  19. linux环境JAVA解压zip_Linux文件解压缩详解
  20. BNU 看风景 27585

热门文章

  1. 这篇博士毕业论文致谢句句诛心……
  2. 区块链集体癫狂的背后是互联网行业缺乏创新的焦虑
  3. DEEPIN系统下安装wine
  4. Git常规配置与用法(记录,git配置文件在系统用户文件夹下)
  5. 贴片电容封装尺寸与常规的贴片电阻的标准封装及额定功率 (转)
  6. 李嘉诚:成功创业要具备的五个要素
  7. Excel VBA密码破解工具(VBA实现)
  8. 大数据应用安全研究报告
  9. php获取用户豆瓣电影,用来获取豆瓣网上电影信息的简介
  10. SwiftUI AVKit 之合并和叠加音频mp3 wav 并输出(教程含源码)