zoukankan      html  css  js  c++  java
  • MySQL数据库 约束

    语法

    创建时指定约束
    create table 表名称(字段名 类型(长度) 约束名称1 约束名称n,....)
    后期修改的方式添加 约束
    alter table 表名称 modify 字段名 类型(长度) 约束名称1 约束名称n,....

    UNIQUE NOT NULL 与 主键的区别

    UNIQUE NOT NULL 不能被其他表引用 (不能作为其它表的外键)
    UNIQUE NOT NULL 约束一个表中可以有多个 但是主键只能有一个

    索引:用于加速查询

    InnoDB 中 索引是树形结构
    为了提高查询效率 InnoDB为找一个不为空 且唯一的字段作为主键
    如果表中不存在这样的字段 会自动帮你建一个隐藏主键字段 但是无法提升查询效率

    只要是使用innoDB 就应该为每个表指定一个非空 且唯一的字段
    InnoDB阻止数据时 首先使用主键 如果没有主键 找一个非空且唯一 如果也没有 建一个隐藏字段

    多字段联合主键: 不常用

    学生表 stu_id course_id 做为联合主键
    1 1 已有数据
    1 2 可以插入
    2 1 可以插入
    1 1 不能插入
    只有当两个字段都重复才算重复

    当一个表中 由于业务需求没有一个非空且唯一的字段时 我们可以建一个新的字段专门作为主键
    管理主键的值挺麻烦的 你得记录上一次的主键值
    mysql可以帮你自动管理主键 auto_increment 自动增长
    auto_increment 只能用于整型字段 并且该字段必须具备索引
    所以 通常 主键都会加上auto_increment

    手动修改自动增长计数

    alter table 表名 auto_increment 新的值;
    注意:如果新的值小于当前的最大值 是无效的

    通常建一个表就要建一个主键 主键的类型通常是整型

    insert 语句

    insert 语句
    insert into 表名 values(值1,值n,....)
    要求值得顺序 个数 必须与表字段完全对应
    另一种写法
    insert into 表名(字段名1,字段名n,....) values(值1,值n,....)
    可以选择性得插入某些字段 要求值得顺序 必须与表名后面声明得字段一致

  • 相关阅读:
    axios,ajax,xhr 请求携带Cookie
    js中reduce的方法和去重
    H5图片预览
    网页唤起qq加群
    tab切换中嵌套swiper轮播
    CantOS的安装
    共享文件夹或文件
    Vue中,iframe中的子网页,调用父网页的方法
    禁止未使用的变量 ( `no-unused-vars`)
    vite + vue3 + ts搭建项目
  • 原文地址:https://www.cnblogs.com/unbrokenlin/p/9992222.html
Copyright © 2011-2022 走看看