首页 > 数据库 >MySQL表的约束与基本查询图文详解

MySQL表的约束与基本查询图文详解

来源:互联网 2026-03-26 11:25:05

目录一. 表的约束1. 空属性2. 默认值3. 列描述4. zerofill5. 主键6. 自增长7. 唯一键8. 外键二. 基本查询1. Create(1)单行数据 + 全列插入(2)多行数据 + 指定列插入(3)插入否则更新(4)替换2. Retrieve(1)SELECT 列(2)WHRER 条件(3)结果排序(4)筛选分页结果3. Update4. Delete5. 聚合函数总结一. 表的约束1. 空属性表创建的时候默认属性为null。null 表示当用户插入数据时,该字段允许为空。反之,not

目录
  • 一. 表的约束
    • 1. 空属性
    • 2. 默认值
    • 3. 列描述
    • 4. zerofill
    • 5. 主键
    • 6. 自增长
    • 7. 唯一键
    • 8. 外键
  • 二. 基本查询
    • 1. Create
      • (1)单行数据 + 全列插入
      • (2)多行数据 + 指定列插入
      • (3)插入否则更新
      • (4)替换
    • 2. Retrieve
      • (1)SELECT 列
      • (2)WHRER 条件
      • (3)结果排序
      • (4)筛选分页结果
    • 3. Update
      • 4. Delete
        • 5. 聚合函数
        • 总结

          一. 表的约束

          1. 空属性

          创建表时,每个字段默认都是允许为空的。也就是说,如果插入数据时不给这个字段赋值,系统会自动填入null。但有时候,我们希望某些字段必须要有值,这时候就需要用到not null约束了。

          来看个实际例子:

          MySQL表的约束与基本查询图文详解

          一旦给字段设置了not null约束,插入数据时如果漏填这个字段,数据库就会直接报错,拒绝这次操作。

          2. 默认值

          默认值这个功能很实用,它相当于给字段设置了一个保底选项。如果插入数据时没有指定这个字段的值,系统就会自动填入预设的默认值。

          实际操作一下:

          MySQL表的约束与基本查询图文详解

          设置好默认值后,即使插入数据时跳过了某些字段,系统也会自动用默认值补全,避免了数据缺失的问题。

          3. 列描述

          列描述就像给字段加了个注释标签,虽然不影响数据库的实际运行,但对于开发者来说却很有用。特别是当表结构复杂或者多人协作时,这些描述能让人快速理解每个字段的用途。

          举个例子:

          MySQL表的约束与基本查询图文详解

          4. zerofill

          zerofill这个功能主要用在数字类型的字段上,它的作用是用0来填充数字前面的空位。这在需要统一数字显示格式的场景下特别有用。

          看看实际效果:

          MySQL表的约束与基本查询图文详解

          比如设置了int(5),数字18本来只占2位,启用zerofill后,系统会自动在前面补3个0,变成00018。

          5. 主键

          主键可以说是表中最重要的约束了。它要满足两个硬性要求:一是值不能重复,二是不能为空。通常情况下,一张表只能有一个主键,它就像是每条数据的身份证。

          实际体验一下:

          MySQL表的约束与基本查询图文详解

          给id字段设置主键后,第一次插入id=1的数据没问题,但第二次再插入id=1的数据时,系统就会提示重复,拒绝插入。

          MySQL表的约束与基本查询图文详解

          如果想取消主键约束,用drop操作就能轻松移除。另外,主键还可以由多个字段组合而成,这就是所谓的复合主键。

          6. 自增长

          自增长功能简直就是懒人福音。当你不给这个字段赋值时,系统会自动取当前最大值然后加1。不过要注意,自增长字段必须是整数类型,而且一张表最多只能有一个自增长字段。

          来看个例子:

          MySQL表的约束与基本查询图文详解

          比如插入a时id自动设为1,接着插入b时,系统会自动把id设为2,完全不用手动操心。

          7. 唯一键

          唯一键和主键有点像,都是保证字段值的唯一性,但两者有个重要区别:主键除了保证唯一,还要承担标识每条数据的重任;而唯一键只需要保证业务逻辑上的唯一性就行。

          实际操作一下:

          MySQL表的约束与基本查询图文详解

          用unique标识唯一键后,这个字段的值就不能重复了,但在业务上它可能并不是数据的主标识。

          8. 外键

          外键就像是表与表之间的桥梁,通过foreign key (字段名) references 主表(列)的语法,把两个表关联起来,建立数据之间的引用关系。

          举个例子就明白了:

          MySQL表的约束与基本查询图文详解

          如果要插入一个班级号为30的学生,但班级表里根本没有30这个班级,插入操作就会失败,这样就保证了数据的一致性。

          二. 基本查询

          1. Create

          (1)单行数据 + 全列插入

          这种插入方式要求比较严格,插入数据的数量和顺序必须跟表定义时完全一致。

          看看具体操作:

          MySQL表的约束与基本查询图文详解

          (2)多行数据 + 指定列插入

          这种方式相对灵活,可以一次插入多条记录,而且可以只指定部分列插入。

          实际操作:

          MySQL表的约束与基本查询图文详解

          (3)插入否则更新

          on duplicate key update这个语法很智能,它会先检查表中是否存在相同主键的数据:如果没有冲突就直接插入,如果有冲突就更新现有数据。

          来看个例子:

          MySQL表的约束与基本查询图文详解

          怎么判断操作结果呢?主要看影响的行数:0行受影响表示有冲突但值没变;1行受影响表示成功插入;2行受影响表示数据被更新了。

          (4)替换

          replace into这个操作更直接,有冲突就整个替换,没冲突就直接插入,简单粗暴但很有效。

          实际操作:

          MySQL表的约束与基本查询图文详解

          2. Retrieve

          (1)SELECT 列

          全列查询用select * from 【表名】最方便,一把抓取所有数据。

          看看效果:

          MySQL表的约束与基本查询图文详解

          指定列查询更精准,只取需要的列,select 【列】,【列】from 【表】。

          实际操作:

          MySQL表的约束与基本查询图文详解

          表达式查询可以在select里做计算,select 【表达式】from 【表】。

          举个例子:

          MySQL表的约束与基本查询图文详解

          去重查询用select distinct 【列】from【表】,能把重复值过滤掉。

          看看效果:

          MySQL表的约束与基本查询图文详解

          (2)WHRER 条件

          where子句就像是数据的过滤器,它会先执行条件判断,然后再进行其他操作。

          比如要筛选数学和英语成绩都达标的学生:

          MySQL表的约束与基本查询图文详解

          like配合通配符很好用,like '【样式】%'能找出符合特定模式的数据。

          比如找所有姓孙的学生:

          MySQL表的约束与基本查询图文详解

          (3)结果排序

          侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

          热游推荐

          更多
          湘ICP备14008430号-1 湘公网安备 43070302000280号
          All Rights Reserved
          本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
          上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
          抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
          适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。