mysql快速精通(二)约束和策略

主打一个实用

本篇主要是应用,具体sql操作语句自查

一. 主键约束

主键用于唯一标识一条记录,每个表只能有一个主键(多字段为联合主键)

主键列特性:非空唯一

  1. Navicat中添加主键

新建表时如果没有设主键是会失败的,这个金色钥匙就是主键的标识了

在这里插入图片描述

  1. 主键自增策略

选中主键加上即可,自增策略可以按顺序自动生成不重复序号

在这里插入图片描述

  1. 截断表

截断表truncate与清空表delete的区别🎈
截断表:保留表结构,其他都删除,自增字段会回到默认值开始
清空表:保留表结构,不释放空间,自增字段不会重置

二. 非空约束

添加非空约束

在这里插入图片描述

三.唯一约束

添加唯一约束
在这里插入图片描述

在这里插入图片描述

四. 缺省(默认)约束

即默认值,如果未填会默认该值

在这里插入图片描述

在这里插入图片描述

五. 外键约束

  1. 单表的缺点

数据内容大部分重复,并且修改时需要遍历所有内容修改,比如所在社区,可以将社区单独划为一张表,在原表只需记录其id

  1. 外键的规范

要求:外键列的数据类型和长度必须和被参照的主键列的数据类型和长度一致

  1. 外键的添加方式

关联键为主键的是主表,反之,从表(子表)

外键在从表添加

此处以级联更新删除为例,当然不止这一种选项

在这里插入图片描述

  1. 更新删除策略

CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行
SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL
RESTRICT:拒绝对父表的删除或更新操作
NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同

相关推荐

  1. mysql快速精通(四)多表查询

    2024-07-12 12:08:02       25 阅读
  2. MySql-约束

    2024-07-12 12:08:02       59 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-12 12:08:02       70 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-12 12:08:02       74 阅读
  3. 在Django里面运行非项目文件

    2024-07-12 12:08:02       62 阅读
  4. Python语言-面向对象

    2024-07-12 12:08:02       72 阅读

热门阅读

  1. MySQL远程登录

    2024-07-12 12:08:02       20 阅读
  2. PostgreSQL 基于时间点恢复

    2024-07-12 12:08:02       19 阅读
  3. 如何理解李彦宏说的“不要卷模型,要卷应用”

    2024-07-12 12:08:02       28 阅读
  4. 解决Spring Boot应用中的内存优化问题

    2024-07-12 12:08:02       21 阅读
  5. nginx 详解

    2024-07-12 12:08:02       29 阅读
  6. [Linux安全运维] Nginx相关

    2024-07-12 12:08:02       23 阅读
  7. 微软Edge浏览器全解析

    2024-07-12 12:08:02       23 阅读
  8. 数字加密题目

    2024-07-12 12:08:02       22 阅读
  9. 学习Symfony框架

    2024-07-12 12:08:02       21 阅读
  10. Edge浏览器下载文件提示检测到病毒无法下载

    2024-07-12 12:08:02       17 阅读