首页 > 数据库 >MySQL字段约束条件

MySQL字段约束条件

时间:2022-11-24 21:34:47浏览次数:54  
标签:约束条件 使用 外键 对应 字段 MySQL 表中 数据 主键

昨日内容回顾

  • MySQL字符编码及配置修改

    新版MySQL默认字符编码为utf系列,旧版本使用编码不统一,需要自己修改。

    修改使用配置文件较为简单,复制原配置文件改名为my.ini,文件内编写相关配置即可。

  • 数据存储引擎

    MyISAM 存取数据快,但是功能较少,两个文件.frm/.idb

    InnoDB 存取数据较慢,功能较多,可存取事务、行锁、外键等,三个文件.frm/.MYI/.MYD

    MEMORY 存储在内存中,重启服务端后数据消失

    BLACKHOLE 存入数据直接全部消失

  • 创建表完整语句

    create table 表名 (字段名 数据类型(数字) 限制条件) 数字及限制条件为选填。

  • MySQL基本数据类型

    • 整型 根据数字大小选择不同的类型。数据自带正负号,取消使用unsigned限制条件。
    • 浮点型 不同类型精确度不同,无特殊要求使用float类型即可。
    • 字符型 分为定长及可变长,根据具体情况选择使用。
    • 枚举与集合 多选项选一与多选项选任意个,不在选项中会报错。
    • 时间类型 不同类型时间准确度不同。使用时一般通过系统获取。

今日内容概要

  • 数据基础约束条件
  • 主键的使用
  • 外键的使用

今日内容详细

数据基础约束条件

非空 输入的数据不能为空,使用not null关键字。空的含义为不传值,穿任意数据进去即不为空。

唯一值 输入的数据不能重复,使用unique关键字。

默认值 不输入数据数据时字段名对应的默认值,一般为null即空值。使用default关键字后跟空格及数据设置。

无符号 针对整型数据,使用unsigned关键字取消默认正负号。

零填充 使用zerofill关键字填充不满足展示位数条件的数据。

主键的使用

主键及具有特征标识的字段,需要满足两个条件,一是非空,二是不重复,这样我们就可以通过主键来快速查找数据。一般情况下我们使用自增的阿拉伯数字来作为主键,主键的名称无要求,一般为含id的字段。

一般使用的主键定义方式为

id int primary key auto_increment

在插入数据时,一般不主动对主键进行赋值,如果对主键赋值,则在输入下一条数据时,主键自增的起始位置为上次自定义赋值位置。

主键的自增由单独的计数器进行记录,删除数据后,自增的进度不会受到影响,新增数据时按照原进度自增。

重置主键的自增进度的指令为:truncate 表名,此操作会清楚所有数据,须慎重。

外键的使用

外键使用场景

当两张表内的数据有逻辑上的对应关系我们可以使用外键将两张表的数据建立相应的联系。

外键的使用方式

在创建表时,为建立联系的字段的数据添加限制条件,使其必须为另一张表中的主键字段数据。

foreign key(外键字段名) references on 表名(字段名)

外键添加的位置一般为单个数据对象可与另一个表中多个数据对象建立联系的表中,类似于数据的分支。

外键的特征

外键相当于在数据之间建立了强对应关系,在默认情况下,无法对通过外键连接的数据进行修改或删除。

如果需要修改或删除,则在定义外键时需要添加限制条件将其进行级联(串联)

on update cascade on delete cascade

进行级联后删除有级联关系的任一数据后,与其相关联的数据也会被删除,因此数据一般不通过外键建立联系。

外键的使用场景之多相互对应关系

当一个表内的单个数据可与另一个表中多个数据对应,且与其对应的单个数据又可与多个数据建立对应关系,此时不能简单使用外键,因为会导致数据无法正常插入。

此时需要使用一张新表来储存原先两张表内数据的对应关系,新表使用两个外键分别对应原先两表的主键。

外键使用场景之单一对应关系

当一个数据对象拥有多个对应属性时,可以根据属性的使用频率将属性数据分开存储,经常使用的属性与该对象在一张表中存储,不经常使用的数据在另一张表中存储,在对象所在表中设立外键对应副表的主键。

标签:约束条件,使用,外键,对应,字段,MySQL,表中,数据,主键
From: https://www.cnblogs.com/akazukis/p/16923521.html

相关文章

  • MySQL数据库:6、约束的概述及语法
    Python基础之MySQL数据库目录Python基础之MySQL数据库一、约束概述1、为什么要约束2、什么是约束3、约束的分类4、查看当前表已有的约束二、约束语法及用法1、无符号2、......
  • MYSQL索引
    一、索引的概念索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址)。使用索引后可......
  • day41MySQL基础(3)
    目录无符号、零填充非空默认值唯一值主键自增外键前戏关系的判断一对多关系外键字段的建立多对多关系一对一关系无符号、零填充unsigned idintunsignedzerofill id......
  • 进入python的世界_day38_数据库——mysql约束条件、表关系
    一、字段约束条件1.无负号​ unsignedcreatetablet(idintunsigned);#不能添加负数2.零填充​ zerofillcreatetablet(idintzerofill);#填入得数据展......
  • MySQL之约束条件及表间关系
    MySQL之约束条件MySQL创建表的完整语法中,每个字段名后必须跟随字段类型,还可以选择跟随约束条件。本文将介绍常见的约束条件,首先先创建一个测试约束条件的库:createdatab......
  • mysql数据库(字段约束条件)
    什么是字段约束字段约束就是将字段的内容定一个规则,我们要按照规则办事约束描述关键字非空约束限制该字段的数据不能为nullnotnull唯一约束保证该字......
  • python入门基础之主键、外键、约束条件
    python入门基础之主键、外键、约束条件目录python入门基础之主键、外键、约束条件字段约束条件主键自增外键前戏关系的判断外键字段的建立多对多关系一对一关系字段约束......
  • 字段约束条件
    字段约束条件无符号、零填充unsigned#无符号idintunsignedzerofill#零填充idint(3)zerofill#存入数字不足三位时以0填充至三位非空createt......
  • Mysql:字段约束条件:无符号、零填充、非空、默认值、唯一值、主键、自增、外键前戏、
    目录无符号、零填充非空默认值唯一值主键自增外键前戏关系的判断一对多关系外键字段的建立多对多关系一对一关系无符号、零填充'''关键字unsigned无需正负号'''crea......
  • mysql打开表报错err 1030 - got error 1877 'Unknown error 1877' from storage engin
    参考解决链接https://www.cnblogs.com/caijh/p/7244915.html查看日志文件位置showvariableslike'%error%';根据错误日志分析,删除log_file文件cd/server/my......