码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数据库约束


    文章目录

      • 1. 简介
      • 2. 代码演示
      • 3. 外键约束
      • 4. 外键删除和更新行为

    1. 简介

    • 概念:约束时作用于表中子段上的规则,用于限制存储在表中的shuju
    • 目的:保证数据库中数据的正确、有效性和完整性
    • 分类:
    约束描述关键字
    非空约束限制该字段不能为nullNOT NULL
    唯一约束保证该字段的所有数据都是唯一、不重复的UNIQUE
    主键约束主键时一行数据的唯一标识,要求非空且唯一Primary key
    默认约束保存数据时,如果未指定该字段的值,则采用默认值Default
    检查约束保证字段值满足某一个条件check
    外键约束用来让两张表的数据之间建立连接,保证数据的一致性和完整性foreign key

    2. 代码演示

    create table user(
    	id int primary key auto_increment comment '主键',
    	name varchar(10) not null unique comment '姓名',
    	age int check(age>0 && age<=120) comment '年龄',
    	status char(1) default '1' comment '状态'
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    3. 外键约束

    用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性

    alter table user add constraint f_id foreign key(dept_id) references dept(id)
    #user表的dept_id字段外键引用dept表的id字段
    
    • 1
    • 2

    4. 外键删除和更新行为

    • 删除/更新行为
    行为说明
    no action当在父表中删除/更新对应记录时,首先检查该记录是否有对应的外键,如果有则不允许删除/更新
    restrict当在父表中删除/更新对应记录时,首先检查该记录是否有对应的外键,如果有则不允许删除/更新
    cascade当在父表中删除/更新记录时,首先检查记录是否存在外键,如果有,则也删除/更新外键所在子表中的记录
    set null当在父表中删除对应记录时,首先检查记录是否存在对应外键,如果有则设置子表中该外键值为null(这就要求该外键允许取null)
    set default父表中有变更时,子表将外键列设置成一个默认的值(innodb不支持)
    alter table 表名 add constraint 外键名称 foreign key references 主表名(主表名字段) on update cascade on delete cascade
    
    • 1
  • 相关阅读:
    css自定义属性/css变量
    神器 CodeWhisperer
    国际版阿里云/腾讯云:阿里弹性云手机正式公测
    论文笔记:Large Language Models Are Zero-Shot Time Series Forecasters
    使用JavaScript及HTML、CSS完成秒表计时器
    智慧楼宇物联网建设实施方案(1)
    【MM小贴士】母子工单物料主数据设置及工单核算
    35.JavaScript对象和数组的解构赋值基础详解、let陷阱、函数参数解构
    卷积神经网络
    高速DSP系统设计参考指南(二)传输线(TL)效应
  • 原文地址:https://blog.csdn.net/qq_43456605/article/details/132601258
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号