跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
SQL

MySQL 表基础语法:增删查与核心技巧

MySQL 表的增删查是日常开发与数据分析中最频繁的需求。涵盖创建表结构、单行及多行数据插入、更新冲突处理等写入操作。重点阐述 SELECT 查询的全列与指定列检索、表达式计算及别名使用。深入解析 WHERE 子句中的比较与逻辑运算符应用,以及 ORDER BY 排序规则。此外还介绍 COUNT、SUM、AVG 等聚合函数,以及日期、字符串和数学函数的常用用法,帮助开发者掌握高效的数据处理能力。

292440837发布于 2026/2/17更新于 2026/7/2532 浏览
MySQL 表基础语法:增删查与核心技巧

MySQL 表的增删查是数据库操作的基础,也是日常开发和数据分析中最频繁的需求。很多初学者容易在语法细节或场景适配上卡壳,明明掌握了命令却频频出错。本文聚焦实用与避坑,从核心语法到高频场景,再到优化技巧,帮你彻底吃透 MySQL 表操作。

SQL 查询中各个关键字的执行先后顺序如下:

FROM > ON > JOIN > WHERE > GROUP BY > WITH > HAVING > SELECT > DISTINCT > ORDER BY > LIMIT

一、数据插入 (INSERT)

1. 基本创建

创建一张表使用 CREATE TABLE 语法。

CREATE TABLE 表名 (
    字段名 1 字段类型,
    字段名 2 字段类型
);

比如创建一个学生信息表,需要包含学生名、学号(主键)、电话号码(唯一键),且都不能为空。首先创建一个数据库:message。

创建数据库

现在创建表,注意字段、数据类型和约束的设置:

创建表结构

2. 单行数据 + 全列插入

插入核心语法为 INSERT INTO 表名 (数据字段) VALUES (插入数据)。

INSERT INTO 表名 (字段名称) VALUES (插入的数据);

例如,如果不填数据字段,默认是全列插入:

单行插入

执行后显示结果:

插入结果

3. 多行数据 + 指定列插入

填充表名后面的数据字段即可,支持批量插入:

多行插入

4. 插入更新

如果因为主键或者唯一键的冲突导致插入失败,可以使用 ON DUPLICATE KEY UPDATE 进行更新再插入:

INSERT INTO student(id, name, phone) 
VALUES(12321, '王五', '15098706751') 
ON DUPLICATE KEY UPDATE id = 09089, phone = '18927390098';

插入冲突处理

更新后的效果:

更新结果

二、数据查询 (SELECT)

为了演示方便,先准备以下测试数据:

-- 创建表结构
CREATE TABLE exam_result (
    id INT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(20) NOT NULL COMMENT '同学姓名',
    chinese float DEFAULT 0.0 COMMENT '语文成绩',
    math float DEFAULT 0.0 COMMENT '数学成绩',
    english float DEFAULT 0.0 COMMENT '英语成绩'
);

-- 插入测试数据
INSERT INTO exam_result (name, chinese, math, english) 
VALUES ('唐三藏', 67, 98, 56), ('孙悟空', 87, 78, 77), ('猪悟能', 88, 98, 90), 
       ('曹孟德', 82, 84, 67), ('刘玄德', 55, 85, 45), ('孙权', 70, 73, 78), ('宋公明', 75, 65, 30);

测试数据

1. 全列查询

通常 SELECT 后面直接使用 * 代表全列查询:

全列查询

2. 指定列查询

在 SELECT 后面增加要查询的字段,如果有多个用逗号分开即可查询指定的字段。注意,指定列的查询顺序可以不按表的定义顺序来。

其中 SELECT 与 FROM 大家应该很好理解,这属于固定指令,查什么从哪里查:

指定列查询

3. 按表达式查询

SELECT 后面的查询字段可以带表达式,依然用逗号区分:

表达式查询

表达式结果

4. 给查询结果更换别名

上面 name 这些属于已有别名,如何更换为其它别名?在表达式后面用空格分开,直接写别名:

别名设置

三、WHERE 条件

SELECT 后面的语句是用来指定查找的内容,比较运算符就是对内容增加比较逻辑,语法为:

SELECT ...... FROM ..... WHERE......

快速上手:WHERE 之后空行,再按照语言的表达输出表达式即可。

1. 比较运算符

比较运算符

2. 逻辑运算符

逻辑运算符

3. 举例:比较 + 逻辑运算符

例如:对下面的表完成数据指定查询:

查询表

查找英语高于 60 分的同学:

英语查询

查找数学和英语成绩之和超过 120 的同学:

总和查询

语文和数学成绩之和,在 [120~150] 的同学:

范围查询

4. 举例:数据匹配

例如:查找姓孙的同学:

模糊查询 1

例如:找孙某同学:

模糊查询 2

四、结果排序

语法:注意,没有 ORDER BY 子句的查询,返回的顺序是未定义的,永远不要依赖这个顺序。

WHERE 是用来增加筛选条件的,这里的排序不属于筛选!

-- ASC 为升序(从小到大)
-- DESC 为降序(从大到小)
-- 默认为 ASC
SELECT ... FROM .... ORDER BY .......

1. 单字段排序

例如:查英语降序:

单字段排序

2. 多字段排序

注意:只有前一个字段的值相同时,才会执行后一个字段的排序:

多字段排序

五、聚合函数

这些聚合函数是支持将字段名组合进行参数传递的,具体如下参考:

1. 返回查询数据数量

COUNT(字段);

例如:查有几个人:

Count 函数

2. 返回查询的数据总和

SUM(字段);

例如:查语文和数学成绩总和:

Sum 函数

3. 查平均值

AVG(字段);

例子:查语文平均成绩:

Avg 函数

4. 查最大/小值

MAX/MIN(字段);

例如:查数学最高分:

Max 函数

六、日期函数

1. 常用函数

下面是日期函数调用,使用方法和聚合函数一样:

日期函数

举例:

获取当前日期:

当前日期

获取当前时间:

当前时间

获取当前日期的时间:

当前时间戳

创建一个留言表:记录人留的字段,自动记录时间(可以用 CURRENT_TIMESTAMP 作为缺省值)

留言表

自动补充时间:

自动时间

形成留言的效果:

留言效果

七、字符串函数

1. 常用函数

字符串函数

举例:

连接字符串:

连接字符串

查询:INSTR 是由 1 开始计算下标,不是从 0 开始

InStr 查询

搭配字段使用:

字段搭配

八、数学函数

数学函数

目录

  1. 一、数据插入 (INSERT)
  2. 1. 基本创建
  3. 2. 单行数据 + 全列插入
  4. 3. 多行数据 + 指定列插入
  5. 4. 插入更新
  6. 二、数据查询 (SELECT)
  7. 1. 全列查询
  8. 2. 指定列查询
  9. 3. 按表达式查询
  10. 4. 给查询结果更换别名
  11. 三、WHERE 条件
  12. 1. 比较运算符
  13. 2. 逻辑运算符
  14. 3. 举例:比较 + 逻辑运算符
  15. 4. 举例:数据匹配
  16. 四、结果排序
  17. 1. 单字段排序
  18. 2. 多字段排序
  19. 五、聚合函数
  20. 1. 返回查询数据数量
  21. 2. 返回查询的数据总和
  22. 3. 查平均值
  23. 4. 查最大/小值
  24. 六、日期函数
  25. 1. 常用函数
  26. 举例:
  27. 七、字符串函数
  28. 1. 常用函数
  29. 举例:
  30. 八、数学函数
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • PostgreSQL 安装教程及初始使用
  • LLM 微调实战:使用 Llama-Factory 进行 DPO 训练
  • Linux 线程互斥锁原理与实践封装
  • Telegram Bot 与 Mini-App 开发实践:简介及初始化 window.Telegram.WebApp 对象
  • 家庭药品管理系统:从药品收纳到健康守护的全链路解决方案
  • Python内存管理深潜:从引用计数到GC机制的全面优化实战
  • CCF-GESP 三级 C++ 真题解析:小杨的智慧购物
  • VR/AR/MR 技术解析:三种虚实交互技术的核心区别
  • Antigravity:一款支持多模型的免费 AI 编程工具
  • OpenClaw 安装部署全流程:搭建自托管 AI 助手网关
  • 前端后端与前台中台后台概念区别
  • Windows 10 系统安装 MySQL 9.4.0 教程
  • AI 全自动科研系统与 AIGC 动画电影的技术突破与架构解析
  • Python 使用 MCP 客户端调用高德地图服务查询天气
  • Arduino BLDC 自主巡逻机器人:避障与路径规划实战
  • FastGPT 结合 MCP 协议实现工具增强型智能体构建
  • OpenClaw 技术解析:AI 智能体的能力、局限与安全隐忧
  • OpenHarmony 跨端生态适配指南:Flutter/RN/C/C++/仓颉鸿蒙化方案
  • OpenClaw 接入飞书实战:让 AI 机器人直接操作文档与表格
  • Gazebo 机器人三维物理仿真平台核心解析

相关免费在线工具

  • SQL 美化和格式化

    在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。 在线工具,SQL 美化和格式化在线工具,online

  • SQL转CSV/JSON/XML

    解析 INSERT 等受限 SQL,导出为 CSV、JSON、XML、YAML、HTML 表格(见页内语法说明)。 在线工具,SQL转CSV/JSON/XML在线工具,online

  • CSV 工具包

    CSV 与 JSON/XML/HTML/TSV/SQL 等互转,单页多 Tab。 在线工具,CSV 工具包在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online