MySQL 基础操作全解析:从建表到增删改查 工作中的 速查手册

MySQL增删改查实战:核心语法与生产环境避坑手册 数据库操作的根基是围绕数据行的增删改查(CRUD),而SQL正是应用与MySQL通信的标准语言。理解表、行、主键与数据类型,就掌握了CRUD的执行原理:INSERT负责写入,SELECT负责查询,UPDATE修改数据,DELETE移除记录。在实践中,精确的主键条件、批量插入、合理使用事务与安全模式,能有效避免全表误更新和误删风险;而索引、字符集、聚合与分组等细节,则直接影响SQL的查询效率与正确率。从用户表初始化、订单批量处理,到误删后的回滚恢复,CRUD几乎覆盖日常开发的全部高频数据操作。内容以MySQL 阅读详情

一、创建数据表

1. 基础建表

CREATE TABLE users (  
  id INT COMMENT '字段唯一值',
  name VARCHAR(50) COMMENT '用户名, varchar(50) -> 代表字段最大长度为50个字符',
  age INT COMMENT '年龄',
  gender CHAR(1) COMMENT '性别, char(1) -> 代表字段最大长度为1个字符, 1个字符代表一个字节'
) COMMENT '测试用户表';

👉 要点解析:

  • VARCHAR(n):可变长度字符串,最大长度为 n。

  • CHAR(n):定长字符串,占用固定长度。

  • COMMENT:添加字段或表的注释,便于维护。


2. 插入数据

INSERT INTO users VALUES (1, '张三', 18, '男');
INSERT INTO users VALUES (2, '张三', 18, '男');
INSERT INTO users VALUES (3, '李四', 19, '女');


3. 带约束的建表

CREATE TABLE users (
  id INT PRIMARY KEY COMMENT '字段 primary key -> 主键',
  name VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名, not null -> 不可为空, unique -> 唯一值',
  age INT COMMENT '年龄',
  gender CHAR(1) DEFAULT '男' COMMENT '性别, default ‘男’ -> 默认设置为 男'
) COMMENT '测试用户表';

👉 关键约束:

  • PRIMARY KEY:唯一标识一行数据。

  • NOT NULL:字段值不能为空。

  • UNIQUE:字段值唯一。

  • DEFAULT:设定默认值。


二、员工表实例

我们在 db01 数据库中新建一个 员工表 emp。

USE db01;

CREATE TABLE emp (
    id INT PRIMARY KEY AUTO_INCREMENT COMMENT 'id 主键唯一值,自增',
    username VARCHAR(20) NOT NULL UNIQUE COMMENT '用户名,20个字符,必填',
    name VARCHAR(10) NOT NULL COMMENT '姓名,10个字符,必填',
    sex CHAR(1) DEFAULT '1' COMMENT '性别 1-男;2-女',
    phone VARCHAR(11) UNIQUE NOT NULL COMMENT '手机号,11位,唯一',
    image VARCHAR(255) COMMENT '员工头像',
    time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '入职时间,默认当前时间',
    job VARCHAR(20) COMMENT '职位',
    salary DOUBLE COMMENT '薪资 double 型',
    age INT UNSIGNED NOT NULL COMMENT '年龄 无负数,必填'
) COMMENT '员工表';

插入数据

INSERT INTO emp VALUES (NULL, 'zhangsan', '张三', '1', '12345678901', '张三.jpg', '2020-01-01 00:00:00', '程序员', 5000, 18);
INSERT INTO emp VALUES (NULL, 'lisi', '李四', '1', '22343333901', '李四.jpg', '2020-01-01 00:00:00', NULL, 299, 20);


三、表结构操作

1. 查询表结构

SHOW TABLES;        -- 查询当前数据库的所有表
SHOW CREATE TABLE emp; -- 查看建表语句
DESC emp;           -- 查看表字段信息

2. 修改表结构

ALTER TABLE emp ADD COLUMN salary DOUBLE COMMENT '新增字段';
ALTER TABLE emp MODIFY COLUMN salary INT NOT NULL COMMENT '修改字段类型';
ALTER TABLE emp CHANGE COLUMN new_salary salary DOUBLE COMMENT '修改字段名';
ALTER TABLE emp DROP COLUMN salary;  -- 删除字段
ALTER TABLE employee RENAME TO emp; -- 修改表名
DROP TABLE users;                   -- 删除表


四、数据操作

1. 更新数据

UPDATE emp SET salary = 555 WHERE id = 1;
UPDATE emp SET salary = 555;  -- 批量更新

2. 删除数据

DELETE FROM emp WHERE id = 1;


五、查询数据

1. 基础查询

SELECT * FROM emp;  
SELECT id, username, phone FROM emp;
SELECT id AS id_num, username AS name FROM emp;

2. 去重查询

SELECT DISTINCT sex FROM emp;

3. 条件查询

SELECT * FROM emp WHERE name = 'wangwu';
SELECT * FROM emp WHERE age < 18;
SELECT * FROM emp WHERE job IS NULL;
SELECT * FROM emp WHERE salary != 555;
SELECT * FROM emp WHERE salary BETWEEN 500 AND 1000;
SELECT * FROM emp WHERE salary IN (500, 1000);

4. 模糊查询

SELECT * FROM emp WHERE name LIKE '%张三%';  -- 包含
SELECT * FROM emp WHERE name LIKE '张三%';   -- 以张三开头
SELECT * FROM emp WHERE name LIKE '张三_';   -- 张三 + 1个字

5. 排序与分页

SELECT * FROM emp ORDER BY salary DESC;          -- 降序
SELECT * FROM emp ORDER BY salary ASC;           -- 升序
SELECT * FROM emp ORDER BY salary DESC LIMIT 3;  -- 取前3条
SELECT * FROM emp ORDER BY salary DESC LIMIT 3 OFFSET 0;


六、聚合与分组

聚合函数

SELECT COUNT(*) FROM emp;   -- 总数
SELECT SUM(salary) FROM emp; -- 求和
SELECT AVG(salary) FROM emp; -- 平均值
SELECT MAX(salary) FROM emp; -- 最大值
SELECT MIN(salary) FROM emp; -- 最小值

分组查询

SELECT sex, COUNT(*) FROM emp GROUP BY sex;

having 过滤分组

SELECT salary, COUNT(*) 
FROM emp 
WHERE time < '2021-01-01' 
GROUP BY salary 
HAVING salary > 20;

👉 区别:

  • WHERE:分组前过滤。

  • HAVING:分组后过滤。


七、总结

本文涵盖了 MySQL 中的常见操作:

  1. 建表:字段、注释、约束。

  2. 表结构操作:增、删、改、查。

  3. 数据操作:增删改查、模糊查询、排序、分页。

  4. 聚合与分组:COUNT、SUM、AVG、MAX、MIN。

  5. WHERE 与 HAVING 区别。

Linux运维学习路线:从零基础到企业级实战的完整指南 如果你正在寻找一套系统、完整且能真正带你从零基础入门到掌握企业级Linux运维技能的学习资源,那么这篇文章就是为你准备的。我们这次要看的不是某个单一的软件或模型,而是一个结构化的“学习路线图”和配套的“资源包”。它解决了初学者面对海量、零散的Linux运维教程时,不知道从何学起、如何进阶的核心痛点。 这套资源的核心价值在于其“系统性”和“实战性”。它不是简单的命令手册堆砌,而是将Linux运维工程师所需的技能,拆解为从入门到精通的五大阶段,涵盖了从计算机基础、Linux命令、网络、服务器运维、自动化脚本到云 阅读详情

相关推荐

中文MySQL电子书:从离线手册到实战速查的完整指南

数据库技术学习中,系统化的中文资料往往比零散搜索更可靠。MySQL 作为最流行的关系型数据库,其官方文档虽全面,但英文原版与结构编排对国内开发者并不友好。一份整理得当的离线电子书,能覆盖从环境搭建到性能调优的完整链路,让“看得完、找得到、照着能复现”成为可能。它不只是文档的汉化,而是按国人学习习惯重新组织的知识体系——从 mysql安装配置教程 到 update语法 的边界行为,再到索引与事务的权衡,每一处都指向实际生产中的真实痛点。借助 Docker 快速拉起 MySQL 8 环境,配合本地全文检索工具,

weixin_34319817的博客 187

TablePlus 键盘快捷键速查手册:34 个高效操作助你驾驭数据库客户端

TablePlus 是一款原生、轻量的数据库管理与开发工具,支持 MySQL、PostgreSQL、SQLite、Redis 等多种数据库的连接与操作。本速查手册完整收录了 TablePlus 中 34 个常用键盘快捷键,覆盖全局应用控制、工作区(Workspace)导航与 SQL 编辑、表格数据浏览三个层面,帮助你彻底摆脱鼠标,实现「手不离键盘」的高效数据库开发。本手册源自本仓库的 [Table

gitblog_00239的博客 404

从零构建高可用回调API系统:架构设计与生产实践全解析

在系统集成与数据同步领域,回调(Callback)机制是一种高效的事件驱动通信模式。其核心原理是服务方在状态变化或事件发生时,主动向预先注册的客户端地址推送通知,而非由客户端频繁轮询查询。这种模式相比传统轮询,能显著减少无效网络请求、降低服务器压力,并实现近实时的数据同步,技术价值体现在提升系统整体效率与资源利用率上。回调API广泛应用于支付结果通知、物流状态更新、物联网设备数据上报及内容审核结果推送等场景,是构建松耦合、高响应分布式系统的关键技术组件。本文基于一个真实的电商订单同步项目,深入剖析了如何实现

weixin_33871366的博客 375

MySQL DDL速查手册:从建表语法到Online DDL生产实践

在数据库日常运维中,DDL(数据定义语言)是构建和调整表结构的基础,它直接决定数据库的性能边界与扩展性。很多开发者熟练掌握SELECT、INSERT等DML语句,却对ALTER TABLE、索引创建、约束管理等操作缺乏系统认知,容易在生产环境因一条简单的改表语句引发锁表故障。本文从数据库、表、索引、约束四个层级出发,梳理MySQL 8.0(兼容5.7)环境下DDL的完整语法与实践要点,重点解析VARCHAR与CHAR的索引差异、MODIFY与CHANGE的区别、Online DDL的算法选择等高频问题,并结

weixin_34072296的博客 187

Python环境搭建和LabVIEW中的调用

本文主要介绍Python相关的环境搭建、Anaconda的使用以及在LabVIEW中调用Python的方法。

lvxisi的博客 6390

RK3588上rknn_toolkit_lite2报错解决:手把手教你更新librknnrt.so的正确姿势

本文针对在RK3588平台上使用rknn_toolkit_lite2时遇到的“Invalid RKNN model version”等常见错误,提供了完整的诊断与解决方案。文章深入剖析了RKNN生态系统各组件(如librknnrt.so、RKNN Server)版本不兼容的根源,并手把手指导如何安全、正确地更新librknnrt.so运行时库,确保AI模型在RK3588 NPU上实现高效推理。

weixin_29189003的博客 521

头歌MySQL实训通关指南:从SQL语法到评测避坑全解析

数据库操作是后端开发与数据分析的基石,而SQL语法则是与数据库对话的核心语言。在实际工程中,从简单的数据查询到复杂的报表统计,都离不开对SELECT、JOIN、子查询、聚合函数等基础概念的灵活运用。理解查询的执行顺序、连接逻辑与分组规则,不仅能避免语法错误,更能提升数据处理的准确性和效率。无论是学校实训、课程设计还是企业级应用开发,扎实的SQL功底都是应对复杂数据场景的前提。针对头歌平台MySQL实训中常见的评测失败问题,本文系统梳理了建表、增删改查、多表关联、索引与事务等关键知识点,并总结了平台评测机制、

weixin_34174422的博客 390

关于华为高斯数据库出现Invalid or unsupported by client SCRAM mechanisms定位解决的过程

最近公司有个新项目使用的是高斯数据库,因为我们的项目是直接从别的项目组拿来的,配置都是已经配好的,但是在放到正式环境上之后出现报错。起初我们以为是测试和正式的版本不一致,但是结果是版本一致的。最后这个问题搞了我们几个小时,都没法解决。

Curtisjia的博客 3185

MySQL表操作实战指南:从建表到索引的完整梳理

数据库开发中,表是数据存储的核心载体,任何查询、索引优化与数据恢复都建立在表结构之上。理解表的DDL与DML操作,是掌握SQL能力的根基。字段类型的正确选择、约束的合理设计、字符集与引擎的配置,直接关系到存储效率与查询性能。例如用TINYINT存状态、DECIMAL存金额,避免隐式类型转换和NULL陷阱,都能显著减少线上故障。CREATE TABLE、ALTER TABLE、DROP TABLE与TRUNCATE的区别,以及INSERT、UPDATE、DELETE、SELECT的实操技巧,构成了日常开发的高

weixin_33462927的博客 312

NIDS——suricata(一)

NIDS——suricata环境安装和规则编写

weixin_58666006的博客 1273

Centos7配置阿里云镜像源的教程

查看你的Centos版本,版本过低会导致安装失败,验证网络是否可以连接阿里云镜像,使用阿里云是需要网络的。# wget命令下载: wget [options] [url]# curl命令下载: curl [options] [url]我上面这个图片由于电脑问题是还没有加载完的。删除原来或者之前的yun源。

lyhshs的博客 2260

[MySQL]SQL基础

MySQL是目前开发中最常用的关系型数据库,无论是后端开发、软件测试还是数据分析,SQL基础都是必备核心技能。很多新手入门数据库时,容易混淆DDL、DML、DQL等语法,记不住数据类型、各类查询用法和使用场景。本篇博客从零开始,系统化讲解SQL通用语法、四大语言分类、数据库/表操作、数据类型、增删改查核心语法,搭配实操案例、语法解析和易错点总结,全程通俗易懂,适合零基础入门学习,也可作为日常开发的速查手册。话不多说,直接开始干货学习!

2502_93796332的博客 372

PDMS二次开发入门:手把手教你用PML2写第一个交互式窗体工具

本文详细介绍了如何使用PML2进行AVEVA PDMS二次开发,从零开始构建交互式窗体工具。通过PML2语言的面向对象特性、即时调试能力和深度系统集成优势,开发者可以高效创建自动化设计工具、批量修改属性和定制报表系统。文章包含开发环境配置、基础语法、窗体架构设计、事件处理等实战内容,帮助读者快速掌握PDMS二次开发技能。

weixin_29281941的博客 271

MySQL入门到实战:从零掌握数据库核心操作与优化

数据库是现代应用开发中存储和管理数据的核心技术,其核心原理在于通过结构化的方式高效组织、存储和操作数据。从基础的数据类型、表结构设计,到核心的SQL查询语言,数据库技术为各类应用提供了可靠的数据持久化方案。在工程实践中,掌握数据库的增删改查(CRUD)操作是开发者的必备技能,而理解其底层工作机制,如事务的ACID特性和索引的B+树结构,则能有效提升应用的数据一致性与查询性能。无论是构建电商系统、内容管理平台还是数据分析应用,良好的数据库设计与优化都是保障系统稳定高效运行的关键。本文将以MySQL为例,通过环

weixin_34072296的博客 331

解决Google Play签名问题:Android App Bundle上传指南

摘要:本文分享了解决Android App Bundle上传至Google Play时遇到的签名问题的经验。当使用pepk.jar工具加密私钥时,出现"NoSuchAlgorithmException"错误。解决方案包括:确保使用JDK 11+版本、更新pepk.jar工具、验证密钥库信息,并提供详细命令行示例。通过升级开发环境和正确配置签名参数,最终成功生成加密密钥文件。文章为开发者提供了实用的技术参考,强调耐心排查问题的重要性。(149字)

m0_62153576的博客 145

YOLO11-pose关键点检测:训练实战篇 | 自己数据集从labelme标注到生成yolo格式的关键点数据以及训练教程

教会你如何用自己的数据集转换成对应格式的数据集以及如何训练YOLO11-pose关键点检测

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 5418

Python数据库操作实战:从SQLite到MySQL的完整指南

数据库是现代应用开发中数据持久化的核心技术,它通过结构化存储和高效检索机制管理海量数据。其工作原理基于客户端-服务器架构或嵌入式引擎,通过SQL语言实现数据定义和操作。掌握数据库技术对构建可扩展应用具有关键价值,无论是Web后端、数据分析还是自动化工具都依赖其实现数据层。在实际工程实践中,Python程序员需要理解连接管理、事务控制和查询优化等核心概念。通过原生SQL配合数据库驱动(如sqlite3和mysql-connector-python),开发者能获得对数据库的精细控制,同时必须重视SQL注入防护和

weixin_33754065的博客 346

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

影视源码系统8.8版全解析:从架构部署到性能安全

影视网站源码本质上是资源整合与分发平台,核心难点集中在数据采集、播放器解析和高并发下的缓存策略。理解PHP+MySQL经典架构和伪静态规则,是搭建稳定影视站的基础。从播放器工作原理到防盗链处理,再到Redis缓存与安全加固,每个环节都直接决定用户体验和站点存活。本文以8.8版为例,系统梳理从环境选型、部署步骤到性能优化和常见问题排查的完整链路,帮助开发者用最低成本掌握内容型站点的核心技术,快速构建可长期运营的影视服务。

weixin_34037515的博客 272

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

面经手册开篇:面试官都问我啥——CodeGuide 里的 Java 研发面试能力全景图

> 本篇是《面经手册》系列的开篇,也是整个系列的地图。作者小傅哥基于半年筛选 400+ 份简历的招聘经验,从「简历视角」出发,梳理出一名 Java 研发在面试中会被考查的完整能力框架:自我介绍、面试类型、算法、技术栈、项目沉淀与个人素养。本文以该开篇文档为骨架,结合本仓库 [CodeGuide](https://link.gitcode.com/i/fc9a4156b60b6b3097dcc3c7

gitblog_00246的博客 1131

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

# Nginx、MySQL、Redis 三剑客完全指南

v4.1(企业增强版):刚入门 Linux 的运维小白、想搞懂 Web 架构的开发者:会用cdlsvim基本命令即可。

m0_57658995的博客 159

Navicat导入SQL文件全指南:原理、实操与常见报错

SQL文件本质是纯文本,其中按顺序排列着建表、插入数据等语句,数据库导入的过程就是客户端逐条读取并执行这些SQL命令。理解这一原理,才能避开导入中的常见坑:文件来源类型、是否包含建库语句、文件编码格式。在实际工程中,导入SQL文件常用于数据库迁移、备份还原和数据同步,但遇到MySQL与SQL Server跨库、大文件超时、中文乱码等问题时,需要分场景选择正确方案。Navicat作为常用数据库管理工具,提供了“运行SQL文件”、查询编辑器、命令行导入和数据传输等多种方式,掌握其适用边界和排错思路,能大幅提升效

weixin_33933118的博客 311

基于SpringBoot的竞赛管理系统:从需求拆解到部署答辩全解析

高校科技竞赛管理常陷入人工填表、网盘传文件、Excel统计的混乱局面,其核心痛点在于流程状态控制而非简单增删改查。SpringBoot作为Java生态的主流Web开发框架,整合SpringMVC与MyBatis(即SSM升级版),凭借自动配置、生态成熟和面试高频特性,成为毕业设计管理系统的不二之选。通过分层架构、自定义拦截器权限校验、基于时间字段动态判断赛事状态,以及文件上传与下载的工程化处理,即可构建一套覆盖赛事发布、报名、作品提交、评审打分到公示全流程的稳定系统。本项目从数据库设计到部署调试均有完整避坑

weixin_33552698的博客 233

SkiaSharp 源码 API 文档编写实战指南:基于 `///` 注释的 Source-First 文档化流程

本文面向 SkiaSharp 仓库的贡献者与维护者,系统讲解如何为公开 API 编写权威、可编译、可发布的 C# XML 文档注释。SkiaSharp 采用“源码即事实来源”(source-first)的文档策略:紧贴公开声明的 `///` 注释块是唯一的权威文档载体,托管构建会自动将其编译为编译器 XML,并随程序集打包分发;仓库中不存在手写 XML、ECMA/mdoc 或占位符工作流。读完本文

gitblog_00873的博客 315

Topcoat Fluent 消息宏 messages! 完全指南:从 .ftl 文件到 t! 的编译期翻译

Topcoat 的 `l10n-fluent` 特性提供了一套"编译期装载、运行时解析"的翻译方案:`messages!` 在编译时扫描并解析 Fluent 文件,生成 `t!` 宏与 `t` 模块,之后你只需在视图里写 `t!(login-input.placeholder)` 即可输出当前上下文中语言的文本。本文以官方宏文档 [messages.md](https://link.gitcode

gitblog_00035的博客 345

SpringBoot+Vue3全栈实战:汽车租赁系统开发深度解析

前后端分离作为现代Web应用的主流架构,通过将前端展示与后端服务解耦,显著提升开发效率与系统可维护性。其核心原理是前端通过HTTP接口与后端进行JSON数据交互,后端专注于业务逻辑与数据持久化。在这一架构下,SpringBoot凭借自动配置简化了Java后端搭建,MyBatis则提供精细化的SQL控制,Vue3配合Element Plus可快速构建交互丰富的界面。该技术组合广泛应用于企业级管理系统、电商平台及校园项目,尤其适合毕业设计或全栈练手。本文以汽车租赁系统为载体,完整展示了从需求分析、状态流转设计到

weixin_34248487的博客 271

RuoYi-Vue Pro 从零到一实战指南:跑通企业级后台管理系统

RuoYi-Vue Pro 是芋道开源的一套企业级快速开发平台,在经典 RuoYi-Vue 的基础上做了大幅重构与优化,把 Spring Boot、MyBatis Plus、Redis、Vue 与 Element 组合成一套开箱即用的全家桶。它内置了动态权限、数据权限、SaaS 多租户、Flowable 工作流、代码生成器,还预置了商城、CRM、ERP、WMS、MES、AI 大模型、IM 即时通讯

gitblog_01133的博客 373
上一篇: CSS Grid 布局详解 CSS Grid 是一种二维布局系统,通过行和列对元素进行精准控制。本文详细介绍了 Grid 的基本概念、容器和项目属性,包括 grid-template-columns/
下一篇: MyBatis CRUD操作终极指南 → MyBatis CRUD 操作详解(完整版手册)→ MyBatis CRUD 项目参考
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星空下的DeppBing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值