码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 8、MySQL——数据的完整性


    目录

    一、数据完整性

    二、实体完整性

    1、主键约束(primary key)

    2、唯一约束(unique)

    3、自动增长列(auto_increment) 

    三、域完整性

    四、引用完整性(参照完整性)

    一、数据完整性

    作用:

    保证用户输入的数据保存到数据库中是正确的。

     完整性的分类:

    确保数据的完整性 = 在创建表时给表中添加约束

    实体完整性;

    域完整性;

    引用完整性; 

    二、实体完整性

    实体:即表中的一行(一条记录)代表一个实体(entity);

    实体完整性的作用:标识每一行数据不重复。

    约束类型:主键约束(primary key)、唯一约束(unique)、自动增长列(auto_increment0

    1、主键约束(primary key)

    注:每个表中要有一个主键。

    特点:数据唯一,且不能为null。

    添加主键的方式:

    (1) CREATE TABLE student(

            `id` INT PRIMARY KEY,

            `name` VARCHAR(50)

    );

    (2) CREATE TABLE student(

            `class` INT,

            `id` INT,

            `name` VARCHAR(50),

            PRIMARY KEY(`id`,`class`)

    );

    (3) CREATE TABLE student(

            `id` INT,

            `name` VARCHAR(50)

    );

    ALTER TABLE school ADD PRIMARY KEY(id);

    2、唯一约束(unique)

    特点:数据不能重复。 

    添加唯一约束的方式

    (1)CREATE TABLE student(

            `id` INT PRIMARY KEY,

            `name` VARCHAR(50) UNIQUE

    ); 

     (2)CREATE TABLE student(

            `id` INT PRIMARY KEY,

            `name` VARCHAR(50),

            UNIQUE(`name`)

    ); 

    (3) CREATE TABLE student(

            `id` INT PRIMARY KEY,

            `name` VARCHAR(50)

    ); 

    ALTER TABLE student ADD UNIQUE(`name`)

    3、自动增长列(auto_increment) 

    给主键添加自动增长的数值,列只能是整数类型。

    默认初始值是从1开始的。

    设置自动增长列的初始值

    ALTER TABLE `表名` auto_increment =初始值; 

    三、域完整性

    域完整性的作用:限制此单元格的数据正确,不对照此列的其它单元格比较

    域代表当前单元格

    域完整性约束:数据类型 非空约束(not null) 默认值约束(default)  

    check约束(mysql不支持)check(sex='男' or  sex='女')

    四、引用完整性(参照完整性)

     一个表中某个字段的数据来源于另外一个表中某一个字段数据。

    外键约束:FOREIGN KEY

    创建student表

    CREATE TABLE student(

           ` sid` INT PRIMARY KEY,

            `name` VARCHAR(50),

            `sex` VARCHAR(10)

    );

    添加外键的两种方式: 

    (1)创建score表

    CREATE TABLE score(

            `id` INT,

            `score` DOUBLE,

            `sid` INT,--外键的数据类型一定要与主键的类型一致。

            CONSTRAINT fk_score_sid FOREIGN KEY(sid) REFERENCES student(sid)

    ); 

    英文单词:  constraint  约束           references  参考

     这里的fk_score_sid只是个名字,随便起都行,最好要做到见名知意。

    (2) 

    ALTER TABLE score ADD CONSTRAINT fk_score_sid FOREIGN KEY(sid) REFERENCES student(sid);

     

  • 相关阅读:
    【科学文献计量】RC.networkCitation()和RC.networkCoCitation()中的参数解释
    【STL常用容器】:string 容器
    LeetCode 刷题记录——从零开始记录自己一些不会的(二)
    Python转换文件夹中的图片格式
    Redis哨兵集群搭建
    分类预测 | MATLAB实现NGO-CNN北方苍鹰算法优化卷积神经网络数据分类预测
    主定理(简化版)
    京东API接口(商品详情页采集+关键词搜索商品列表):开启电商业务的新篇章
    A40I工控主板(SBC-X40I)串口通信测试
    甲子光年专访天润融通CEO吴强:客户经营如何穿越低速周期?
  • 原文地址:https://blog.csdn.net/CSDN_Loveletter/article/details/127762982
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号