1.约束概念和分类
2.五大约束的添加和删除
3.自增长列

1.约束概念和分类

1.1约束的概念:

对表中的数据进行限定,保证数据的正确性,有效性,完整性

1.2约束分类

1.主键约束(primary key):保证该字段具有非空且唯一性,一张表中只能有一个主键,主键是表中字段的唯一标识
2.非空约束(not null):保证字段不能为空
3.唯一约束(unique):保证该字段具有唯一性但是可以为null
4.外键约束(foreign key):在一个表中存在的另一个表的主键或唯一键称此表的外键。
5.默认约束(default+默认值):用于保证该字段有默认值(用引号引起来)

2.五大约束的添加和删除

2.1添加约束的六种方法

1.在创建表的时候添加非空约束(以列级约束添加)

create table + 表名(
列名 数据类型 + 约束名
)

2.在创建表的时候添加非空约束(以表级约束添加)

create table 表名(
列名 数据类型,
...
列名 数据类型,
(constraint +别名(就是随便为自己添加的约束起一个名字)) 约束名(对应字段名)
)

3.修改列名的时候

alter table + 表名 + change (column) + 旧列名 新列名 新列名的类型 + 约束

4.修改列的数据类型的时候

alter table + 表名 + modify + (column) + 列名 列类型 约束

5.在添加新列的时候可以添加约束

alter table + 表名 + add + (column) + 新列名 + 新列名的类型 + 约束

6.外键特有

alter table + 表名 + add constraint 外键名称(自己随便为外键取得名字) + foreign key(外键字段名) references 主表名称(主表要关联的字段)

2.2三种删除约束的方式

1.修改列名的时候不加约束

alter table + 表名 + change (column) + 旧列名 新列名 新列名的类型

2.修改列的数据类型的时候不加约束

alter table + 表名 + modify + (column) + 列名 列类型

3.运用drop特定删除约束

alter table + 表名 + drop index/foreign key/primary key + 约束的名字

注:查看表中约束的名字:

show index from + 表名

2.3五大约束分别对应的添加删除方式(序号对应2.1和2.2)

1.非空约束(not null)

对应的添加方式:1 3 4 5
对应的删除方式:1 2

2.唯一约束(unique)

对应的添加方式:1 2 3 4 5
对应的删除方式:1 2 3(对应第3种的index选项)

3.默认约束(default)

对应的添加方式:1 3 4 5
对应的删除方式:1 2

4.主键(primary key)

对应的添加方式:1 2 3 4 5
对应的删除方式:3(对应第3种的primary key选项注意后边不加约束的名字了,因为一个表里只能有一个主键)

5.外键(foreign key)

对应的添加方式:2 6
对应的删除方式:3(对应第3种的foreign key选项)

外键单独拿出来讲
我们先看一个员工表(字段分别是员工编号,姓名,年龄,所属部门,部门所在地):

我们可以发现有冗余的部分,就是研发部对应广州,销售部对应深圳不用写那么多遍,其实可以把他们分成两张表来防止冗余的部分,第一张表存储员工的信息,另一张存储部门信息
表1(员工表employee):

表2(部门表department):

这里两个表的id都是主键

但是这里有一个问题,就是,我们可以随便删除部门表的某一行,就比如id=1的那一行,一旦删除,那么表1里的dep_id=1的员工就查不到他们的部门信息了,所以就可以用外键来解决这个问题

我们可以在创建表的时候就指定dep_id是外键,关联department的主键id

语句格式(这里虽然是第2种方法也就是以表级约束添加外键但是语法上有不同):

create table 表名(
列名 数据类型,
...
列名 数据类型,
(constraint + 别名(就是随便为自己添加的约束起一个名字)) + foreign key(字段名) + references + 主表(主表对应字段)
)

对于本例子就可以这么写:

create table employee(
id int primary key,
sname varchar(5),
age int,
dep_id int,
constraint aaa foreign key(dep_id) references department(id)
)

加上外键后我们就不能删除department表里边的任意一行,而且,我们也不能在employee里边添加新的员工信息的时候把dep_id填写成除1,2之外的任何数字

2.4对于创建约束的总结

在创建表的时候添加列级约束只支持:默认,非空,主键,唯一
在添加表级约束只支持:主键,唯一,外键

2.5对于主键和唯一的区别:

主键至多一个唯一可以有多个
允许两个列组成一个主键和一个唯一

3.自增长列

3.1概念

如果某一列是数值类型,使用 auto_increment可以来完成值的自动增长(一般都是和主键一起用)

3.2在创建表的时候添加主键约束,并且完成主键自增长的例子

格式:

create table 表名(
列名 数据类型 primary key + auto_increment
)

举个例子:
我们创建一个含学号姓名的student表,并且按照学号自增长
创建语句:

create table student(
id int primary key auto_increment,
sname char(4)
)

如果此时我们表里有一个数据;

当我们再次插入数据的时候不给学号即

insert into student value(null,“李四”)

再次查看表的时候自动给我们按自增长补了学号:

3.3自增长的添加和删除

1.添加(上述在创建的时候添加是一种)

alter table + 表名 + modify column + 列名 类型 约束 + AUTO_INCREMENT

2.删除

alter table + 表名 + modify column 列名 类型

3.4设置自增长步长

自增长起始值为1,步长起始值为1
起始值不能更改,步长可以更改
show VARIABLES LIKE “%auto_increment%”
查看对应的步常代表的名字然后用set 步长代表名字=要设置的步长

MySQL五大约束详解(我有多详细只有我知道小白都能懂哦)相关推荐

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

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

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

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

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

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

  4. mysql基础约束详解

    -- ======================================约束的示例================================== -- -- 约束作用于表结构,用于限制 ...

  5. 9篇小白都能懂系列博客学完MySQL基础

    博主经过三天的时间整理终于把MySOL基础部分内容总结成了这九篇博客,如果博主漏写了重点的基础部分的内容,或者说博主写的地方有错误还请CSDN的兄弟们提醒(这一点就比较重要了),由于博主的时间比较有限 ...

  6. mysql怎么约束_MySQL 约束详解

    MySQL 约束详解 MySQL 中的约束是用来保证数据的完整性的机制.数据完整性一般有以下三种形式: 实体完整性:保证表中有一个主键. 域完整性:保证数据每列的值满足特定条件. 引用完整性:保证两张 ...

  7. Mysql存储引擎详解(MyISAM与InnoDB的区别)

    Mysql存储引擎详解(MyISAM与InnoDB的区别) 存储引擎     MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平 ...

  8. 如何查看mysql数据库的引擎/MySQL数据库引擎详解

    一般情况下,mysql会默认提供多种存储引擎,你可以通过下面的查看: 看你的mysql现在已提供什么存储引擎: mysql> show engines; 看你的mysql当前默认的存储引擎: m ...

  9. sql unique约束详解

    sql unique约束详解 UNIQUE 约束唯一标识数据库表中的每条记录. UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证. PRIMARY KEY 拥有自动定义的 ...

最新文章

  1. let 与 expr Shell运算比较 let强强胜出
  2. 点云网络的论文理解(六)-Frustum PointNets 总体概括
  3. 2021年00后生活方式洞察报告
  4. portal认证 只能重定向80和443请求_华为防火墙内置Portal认证报文交互
  5. PHP undefined index的几种解决方法
  6. BIGEMAP下载离线地图数据(支持谷歌、百度、高德等所有地图源)
  7. 经典案例- 磁盘阵列两块盘掉线的数据恢复分析
  8. [学习]17 每天只睡6小时,依然精力充沛
  9. (转)sqlite developer注册方法
  10. iOS 性能、架构、socket 小结
  11. 多功能Python键盘记录工具Radium
  12. Linux系统之安装PDF阅读器
  13. Android模仿新浪微博(自定义ListView下拉刷新)
  14. ART工作流程及特性
  15. 力扣(441.26)补8.24
  16. Tomcat 多实例
  17. linux find 隐藏,使用find命令查找Linux中的隐藏文件的方法
  18. 火狐linux 32位,火狐浏览器下载电脑版32位
  19. NXP JN5169 UART 波特率设置
  20. 《幼儿园门禁管理系统可行性研究报告》

热门文章

  1. 将这五个原则变成习惯,你的开发经验更值钱!
  2. 编程实现将一个N进制数转换成M进制数
  3. 论文笔记:Deep Residual Learning
  4. C#使用剪切板复制程序
  5. 在Linux里设置环境变量的方法(export PATH)--待修改
  6. 缓存nginx服务器的静态文件
  7. 简历的正确发音和习惯用法
  8. The 2007 Microsoft Office System RTM is ready to rock !
  9. Redis的配置文件
  10. Mybatis运行原理及源码解析