约束关键字  Constraints

作用:限制表的数据类型,

第一种方式:创建表的时候添加约束,create table语句

第二种方式:创建表之后添加约束,alter table语句

注:红色为注意事项

1、not null(不能为空)

创建表时约束not null

创建car表时约束了carid字段不能为空

2、unique(此字段的每条记录必须唯一,一般我们用来约束id,他和primary key一样,都对字段保证了唯一性)

创建表时约束unique

创建表之后约束unique

图一:创建car表的时候约束了字段carid必须拥有唯一性

图二:修改car表字段类型,给car表的carname字段添加一个unique约束

3、primary key(设置此字段为这张表的主键,每个表应该有一个主键,而且每个表都只能有一个主键,主键字段必须唯一且不能有null值)

创建时设置主键

创建后设置主键

图略:alter语法

附:primary key还有一种情况,联合主键。(一句话概括 = 两个或两个以上的字段都设置成主键),这里看似违反了unique,其实不然。它是把联合主键看成一个主键

这里我们说一下联合主键,见下图

创建表时设置联合主键

我们可以看到被创建的car表,他的两个字段carid和carname被设置成了联合主键

创建后设置主键

图略:alter语法

4、foreign key(设置此字段为这张表的外键,它指向另一张表的主键。)

foreign key约束防止破坏表连接,外键字段里的所有数据,必须是另一张表的主键字段里的值。

也就是说,一张表的外键必须指向另一张表的主键

创建时设置外键

创建smallcar表,给smallcarid字段设置了主键,给carid字段设置了指向car表的carid字段的外键

创建后设置外键

图略:alter语法

5、check(约束用于限制字段中的值的范围)

对单个字段check的约束,那只允许该字段的值为特定的值

对表check的约束,会在特定的字段进行数据限制

创建表时check约束

约束字段carid的值必须大于0,多个check约束可以效仿上面的几个约束。

但是括号里面要用and进行隔开

创建表后check约束

图略:alter语法

6、default(默认值,如果定义了默认值,再插入数据时如果没有插入数据,会根据默认值插入)

创建时设置default约束

上面的carname记录是自动添加的

给carname字段设置了default约束,那么我们在插入记录的时候即使没有填写carname字段的数据。会默认给我们一个'carname‘数据

创建后添加default约束

图略:alter语法

mysql提供的六种约束_SQL的六种约束相关推荐

  1. sql的外键约束和主键约束_SQL主键约束用示例解释

    sql的外键约束和主键约束 A primary key is a column or a set of columns that uniquely identifies each row in a t ...

  2. mysql和sql定义外键约束_SQL外键约束的含义及创建

    建立外键约束可以对sql语句的增删改有约束作用. 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键 ...

  3. MySQL表级约束和列级约束

    MySQL中只要支持六种完整性约束,如表所示:其中check约束是MySQL8中提供的支持. 约束条件 约束描述 primary key 主键约束,约束的值可唯一的标识对应的记录 not null 非 ...

  4. MySQL提供了以下三种方法用于获取数据库对象的元数据

    MySQL提供了以下三种方法用于获取数据库对象的元数据: 1)show语句 2)从INFORMATION_SCHEMA数据库里查询相关表 3)命令行程序,如mysqlshow, mysqldump 用 ...

  5. mysql约束日期_MySQL的约束、事务、字符串、日期、数学相关及其他补充

    MySQL共有5个约束 1 主键约束 primary key(id) 2 外键约束 3 唯一约束 unique 4 非空约束 not null 5 默认约束 default 其他: auto_incr ...

  6. mysql 如何查看constraint定义的的所有约束_MySQL:如何查看表上的所有约束?

    MySQL:如何查看表上的所有约束? 我正在学习SQL,令我困扰的是,我似乎无法在表上找到所有约束. 我用创建表 create table t2 (a integer not null primary ...

  7. mysql建表时外检怎么创建_MySQL创建表时加入的约束以及外键约束的的意义

    1,创建表时加入的约束 a) 非空约束,not null b) 唯一约束,unique c) 主键约束,primary key d) 外键约束,foreign key 1,非空约束,针对某个字段设置其 ...

  8. MySQL添加唯一约束和联合唯一约束(建表后添加)

    MySQL:添加唯一约束和联合唯一约束 在MySQL数据库中,经常会碰到由于业务需要添加唯一键约束,唯一键约束,可以在一个列上添加约束,也可以在多个列上添加唯一约束. 单列唯一约束 在一列上添加唯一约 ...

  9. MySQL之数据类型、建表和六大约束

    前言:昨天跟大家分享了MySQL的账号管理.建库及四大引擎,今天与大家分享的知识是MySQL之数据类型.建表和六大约束. 一.数据类型介绍 1.作用:MySQL中定义数据字段的类型对你数据库的优化是非 ...

最新文章

  1. 开源Web应用中最常见漏洞是XSS和SQLI漏洞
  2. Java类的加载过程详解 面试高频!!!值得收藏!!!
  3. Yii的where中的in写法
  4. apache下IE6对js的bug处理
  5. Directory /opt/jfrog/artifactory/var has bad permissions for user id 1030
  6. 通过代码实例来说明spark api mapPartitions和mapPartitionsWithIndex的使用
  7. 【LeetCode】剑指 Offer 65. 不用加减乘除做加法
  8. 为什么DevOps和SRE职位这么难招人?
  9. MySQL 半同步复制+MMM架构
  10. 【最强宝典】后端面试知识点合集
  11. 嵌入式的c语言,嵌入式c语言
  12. Win10相机打不开提示:我们找不到你的相机 错误代码0xa00f4244!
  13. Y2K Bug and Bill Door
  14. 文件上传和OSS上传至阿里云
  15. Instruction Tuning(FLAN、instructGPT、chatGPT)
  16. pyinstaller打包执行文件报错NameError: name ‘defaultParams‘ is not defined问题解决方案
  17. 中小企业外贸软件ERP平台搭建介绍
  18. 10min快速回顾C++语法(五)字符串专题
  19. 2019-06-17问答系统项目落地调研
  20. Android OOBE开发

热门文章

  1. 记录用户转成超级用户的文件名字_Linux学习手册(四)—用户及权限管理类命令...
  2. 北邮计算机2021成绩,北京邮电大学历年分数线 2021北京邮电大学录取分数线
  3. php调取 zabbix实时数据_Linux运维必知的Zabbix故障排错实战
  4. 笔记本电脑怎么清理灰尘_家里边边角角灰尘多,不好清理怎么办?一个“塑料瓶”解决烦恼!...
  5. .NET Core SignalR Redis底板详解(二)
  6. ngTemplateOutlet递归的问题
  7. 2.boost遍历数组容器
  8. 可变数组NSMutableArray
  9. 手机信号放大器 让手机信号增强的办法
  10. 使用HTML5技术开发的超酷颜色选择器