• Mysql表创建,约束,主键,存储引擎的使用


    MySQL约束,外键

    1.约束概述

    约束的作用就是保证表中的数据有效

    分类:

    • 非空约束 not null(表中数据不能为NULL)
    • 唯一性约束 unique (约束的字段不能重复,但是可以为NULL,也就是NULL可以重复)
    • 主键约束 primary key (主键不能为NULL,同时不可以重复)
    • 外键约束 foreign key
    • 检查约束 check(Mysql不支持)

    联合唯一性:

    设定两个字段联合起来具有唯一性的方法:(设置name和email联合唯一性限制)

    mysql> create table vip(
        -> id int,
        -> name varchar(30),
        -> email varchar(30),
        -> unique(name,email)
        -> );
    Query OK, 0 rows affected (0.13 sec)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    注意:在Mysql中,如果一个字段同时被not nullunique约束,则该字段自动变为主键字段😙

    联合主键约束:(id和name联合起来做主键,复合主键)

    mysql> create table vip(
        -> id int,
        -> name varchar(30),
        -> email varchar(100),
        -> primary key(id,name)
        -> );
    Query OK, 0 rows affected (0.06 sec)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    实际开发中不建议使用复合主键,主键值建议使用int,bigint,char类型,且主键值一般都是定长的

    注意:对于一张表来说只要有主键和unique约束的,自动添加索引🥲


    2.外键的妙用

    使用外键可以减少数据表的冗余且使之满足某一范式,但同时连接查询也会降低查询的效率

    使用实例:

    其中cno字段是class表的classno字段的一个外键

    mysql> create table stu(
        -> no int primary key auto_increment,
        -> name varchar(50),
        -> cno int,
        -> foreign key(cno) references class(classno)
        -> );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    注意:外键中引用的其他表的字段不一定是要主键,但是一定要有unique约束😚

  • 相关阅读:
    使用python编程数学挖掘-数据仓库与OLAP(课程5)
    Vue3.2中,CSS与数据的双向绑定
    Django 简单入门(一)
    电脑系统重装后如何开启Win11实时辅助字幕
    LuatOS-SOC接口文档(air780E)--log - 日志库
    目标检测文献
    信息学奥赛一本通:1153:绝对素数
    1080 Graduate Admission
    [JavaScript][AJAX] 前后端交互流程,ajax工作流程
    Maya自定义工具架
  • 原文地址:https://blog.csdn.net/Gherbirthday0916/article/details/126404683