概述

约束是作用于表中字段上的规则,用于限制存储在表中的数据。保证数据库中数据的正确、有效性和完整性。

分类:

常见约束操作

现在我们有一个建表需求,里面包含一些约束。

create table user(id int primary key auto_increment comment '主键',name varchar(10) not null unique comment '姓名',age int check ( age >0 && age <= 110 ) comment '年龄',status char(1) default '1' comment '状态',gender char(1) comment '性别'
) comment '用户表';

注意,check语句只有MySQL18以上的版本才有。新的数据表建立完成,我们现在该输入数据了。这里要说的是我们之后还是使用命令语句操作数据库而不是借用像Navicat等工具操作数据库。因为我们之后要学习Java web的开发,里面的JDBC需要用java语言操作数据库,这时你就要输入sql命令了。

--还记得怎么插入数据吗
insert into user(name,age,status,gender) values ('Tom1',19,'1','男'),('Tom2',25,'0','男');

这时查看我的表,数据已经导入了,这时我们看id的变化,我们并没有输入id相关数据,但是它自动给我们按照输入顺序排好序了,而且从1开始,这就是我们设置的约束语句语句起作用了。

这里我们口头测试一下其他的约束语句:

1,如果输入相同的数据,会报错。

2,输入不符合规定年龄的数据会报错。

3,虽然数据没有成功写入,但当你写进去下一个合规数据时,id会变成4,这是因为输入失败但系统依然申请了一个id值。

外键约束

概念

外键让两个表的数据建立联系,从而保证数据的一致性和完整性。

案例

假如员工表的其中一列数据是部门id,可知一列数据只存储的id;另一张部门表有两列数据是id,和部门名称,那么我们逻辑上把部门id和id联系起来,并把部门的表称为父表,而员工表为子表。

操作

建立上述两个表并插入数据:

create table dept(id int auto_increment comment 'ID ' primary key,name varchar(50) not null comment '部门名称'
)comment '部门表';INSERT IMTO dept (id,name) VALOES (1,'研发部'),(2,'市场部'),(3,'财务部'),(4,'销售部'),(5,'总经办');
create table emp (id int auto_increment comment 'ID' primary key,name varchar(50) not null comment '姓名',age int comment '年龄',job varchar(20) comment '职位',salary int comment '薪资',entrydate date comment '入职时间',managerid int comment '直属领导ID',dept_id int comment '部门ID'
)comment '员工表';INSERT INTO emp (id,name,age,job,salary,entrydate,managerid,dept_id) VALUES
(1,'金庸',66,'总裁',20000,'2000-01-01',null,5),(2,'张无忌',20,'项目经理',12500,
'2005-12-05',1,1);

废了老大劲还是建完表了。现在我们设置外键,将这两个表建立数据连接。

--语法:
ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名) REFERENCES 主表 (主表列名);

我们怎么确定两个表的数据已经相连了?我们试试删除附表里第一行数据,结果报错了:

这就表面连接成功了。

MySQL数据库——约束相关推荐

  1. mysql数据库约束无符号_mysql 数据类型 约束条件

    今日内容: 引擎:决定数据库存取数据的方式==>不同的特点==>不同的用户体验 数据类型:规定了数据库可以存放哪些数据 约束:限制储存数据的规则 引擎: 针对于表的 前提:引擎是建表时规定 ...

  2. mysql数据库约束无符号,MySQL所支持的数据类型与表字段约束类型的学习教程

    MySQL 数据(字段)类型 在创建表的时候,要明确定义字段对应的数据类型.MySQL 主要的数据类型分为数值类型.字符串(文本)类型.时间日期类型和其他类型几类. 数值类型 数值类型说明: 补充说明 ...

  3. mysql数据库约束详解_基于MySQL数据库的数据约束实例及五种完整性约束介绍

    为了防止不符合规范的数据进入数据库,在用户对数据进行插入.修改.删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确.有效.相容. ...

  4. 【数据库】MySQL数据库约束(六大约束)

    目录 1.数据库约束 1.1约束类型 1.2 非空约束(NOT NULL ) 1.3 唯一约束(UNIQUE) 1.4默认值约束(DEFAULT ) 1.5主键约束(PRIMARY KEY) 1.6外 ...

  5. MySQL数据库约束,表的设计

    Author: 老九 个人博客:老九的CSDN博客 ?? 个人名言:不可控之事 乐观面对 ?? 系列专栏:MySQL通关系列 文章目录 数据库约束 not null unique default pr ...

  6. MySQL数据库约束(主键约束,外键约束详解)

    关系型数据库的一个重要功能: 需要保证数据的"完整性",可以通过人工的方式来观察确认数据的正确性,这种方式是可行的,但是不合适,因为人为控制的方式势必会存在疏忽,导致一些错误没有被 ...

  7. Mysql数据库---约束类型

    Mysql数据库的约束类型有:主键约束(Primary Key),外键约束(Foreign Key),非空约束(Not Null),唯一性约束(Unique),默认约束(Default). 一.主键约 ...

  8. MySQL 数据库约束、聚合查询、多表查询

    一.数据库约束 约束就是数据库在使用的时候,对于里面能够存的数据提出的要求和限制,程序猿就可以借助约束来完成更好的校验 1.约束类型 ① NULL约束 NOT NULL - 指示某列不能存储 NULL ...

  9. mysql数据库约束详解_深入理解mysql数据库的约束

    摘要:MYSQL添加约束,删除约束添加列,修改列,删除列 添加主键约束: altertable表名addconstraint主键(形如:PK_表名)primarykey表名(主键字段); 添加外键约束 ...

  10. mysql数据库约束详解_MySQL数据库中的外键约束详解

    使用MySQL开发过数据库驱动的小型web应用程序的人都知道,对关系数据库的表进行创建.检索.更新和删除等操作都是些比较简单的过程.理论上,只要掌握了最常见的SQL语句的用法,并熟悉您选择使用的服务器 ...

最新文章

  1. Atlas study:使用Accordion实现页面多个块状区域的显隐
  2. Hadoop学习笔记—11.MapReduce中的排序和分组
  3. 实例演示使用HiBench对Hadoop集群进行基准测试
  4. C语言指针-从底层原理到花式技巧,用图文和代码帮你讲解透彻
  5. cepl进程 Linux,Ubuntu下NS2-2.33安装过程
  6. Python(23)-面向对象2-继承,多态
  7. 【ElasticSearch】ElasticSearch 中使用衰减函数来完美你的搜索结果
  8. Ingenious Lottery Tickets 模拟
  9. c# 串口发送接收数据
  10. windows借鉴linux了吗,Windows应该借鉴Linux的10大功能特征
  11. 编译器错误不能找到元数据文件
  12. win10系统无法自动修复启动解决方案
  13. HTML5前端开发实战01-学生信息表
  14. 宇枫资本上班族理财的方法
  15. 网站建设网页设计小技巧分享
  16. 止汗 咒语_如何使用咒语制作诗歌机器人
  17. python代码完成Fisher判别
  18. 迭代总结会议的旁观感想
  19. Linux 部署开源WAF模块 ModSecurity
  20. 三星手机查询生产日期

热门文章

  1. Python numpy.corrcoef函数方法的使用
  2. IE浏览器的弹出模态框
  3. Math.atan和Math.atan2函数
  4. java的Callable接口
  5. canvas -小球自由落体运动
  6. C++入门——仿真小球自由落体运动和抛物线运动
  7. 软件测试的定义、分类、方法、生命周期
  8. 视觉SLAM十四讲笔记-第三讲 刚体运动
  9. json的格式是什么?json的作用是什么?json是如何传递数据的?
  10. 【高德地图进阶】--- 3d城市版块之prism