详细介绍:DBA | MySQL 数据库基础数据操作学习实践笔记

news/2025/9/28 13:38:01/文章来源:https://www.cnblogs.com/tlnshuju/p/19116493

详细介绍:DBA | MySQL 数据库基础数据操作学习实践笔记

2025-09-28 13:31  tlnshuju  阅读(0)  评论(0)    收藏  举报

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ]

 大家好,我是 WeiyiGeek,一名深耕安全运维开发(SecOpsDev)领域的技术从业者,致力于探索DevOps与安全的融合(DevSecOps),自动化运维工具开发与实践,企业网络安全防护,欢迎各位道友一起学习交流、一起进步 ,若此文对你有帮助,一定记得倒点个关注⭐与小红星❤️,收藏学习不迷路  。

0x00 前言简述

描述:前面我们学习了DDL 数据定义语言的相关语句,以及介绍了 MySQL 五种数据类型,相信大家参考后必有所心得,趁热打铁,现在我们学习 DML 数据库操作语言,包含数据行的插入,更新以及删除(INSERT、UPDATE、DELETE)等语句。

温馨提示:若文章代码块中存在乱码,请通过文末的阅读原文链接,在知识星球中阅读,或者直接访问 https://articles.zsxq.com/id_l3z7unppx0sx.html

为了后续的学习,我们先来准备一个员工表,并插入几行数据,方便后续的演示。

-- 创建数据库CREATE DATABASE IF NOT EXISTS test;-- 切换到数据库USE test;-- 建表语句示例:CREATE TABLE IF NOT EXISTS employees (  id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '编号',  uid VARCHAR(10) COMMENT '工号',  name VARCHAR(10) NOT NULL COMMENT '姓名',  gender ENUM('男', '女', '未知') NOT NULL COMMENT '性别' DEFAULT '未知',  age TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '年龄' CHECK (age > 0 AND age < 120),  phone_number CHAR(11) NOT NULL COMMENT '手机号' CHECK (phone_number REGEXP '^1[3-9]\\d{9}$'),  skills JSON COMMENT '技能',  id_card CHAR(18) NOT NULL UNIQUE KEY  COMMENT '身份证号' CHECK (id_card REGEXP '^\\d{17}[0-9Xx]$'),  city VARCHAR(50) NOT NULL COMMENT '城市',  entry_date DATE COMMENT '入职时间',  salary DECIMAL(10, 2) NOT NULL DEFAULT 0.0 COMMENT '薪资' CHECK (salary > 0),  PRIMARY KEY (id),  INDEX  idx_id_card (id_card)) ENGINE=InnoDB AUTO_INCREMENT=1 COMMENT='员工信息表';

0x01 DML 数据操作语言

1.插入记录(INSERT)

描述:通过 INSERT 语句可以向表中插入新的数据行。

特别注意:

  • 在插入数据时,指定的字段顺序需要与值的顺序一致,否则会报错。另外,如果要插入的数据中包含自增字段(AUTO_INCREMENT),则该字段的值需要设置为 NULL 或者不指定(显式指定字段时),由数据库自动生成。

  • 在插入数据时,字符串和日期类型的值需要用引号(推荐:单引号)括起来,例如:'张三', '2023-04-01'。

  • 在插入数据时,应该注意数据类型的匹配,例如:年龄字段是 TINYINT UNSIGNED 类型,应该插入的是正整数,而非是负整数。

指定字段添加数据

-- # 语法
INSERT INTO 表名 (字段1, 字段2, ...) VALUES (值1, 值2, ...);
-- # 示例
INSERT INTO employees (uid, name, gender, age, phone_number, skills, id_card, city ,entry_date, salary) VALUES ('001', '张三', '男', 30, '13800138000', '{"编程": "高级", "设计": "中级"}', '500102199001010001', '重庆','2020-01-01', 7500.00);
INSERT INTO employees (uid, name, gender, age, phone_number, skills, id_card,city , entry_date, salary) VALUES ('002', '李四', '女', 28, '13900139000', '{"测试": "高级", "项目管理": "中级"}', '500102199201010002','北京', '2020-02-15', 15800.00);
INSERT INTO employees (uid, name, gender, age, phone_number, skills, id_card, city ,entry_date, salary) VALUES ('003', '王五', '男', 35, '13700137000', '{"数据库": "专家", "架构": "高级"}', '500102198801010003','上海','2019-05-10', 16000.00);
INSERT INTO employees (uid, name, gender, age, phone_number, skills, id_card,city, entry_date, salary) VALUES ('004', '赵六', '女', 26, '13600136000', '{"前端": "高级", "UI设计": "中级"}', '500102199601010004', '杭州','2021-03-20', 12000.00);

按照字段顺序添加数据

-- # 语法
INSERT INTO 表名 VALUES (值1, 值2, ...);
-- # 示例
-- 注意:这里的值要和表中的字段顺序一致, 其次自增长的字段需要设置为NULL进行占位。
INSERT INTO employees VALUES (NULL,'005', '钱七', '男', 32, '13500135000', '{"运维": "高级", "网络安全": "中级"}', '500102199001010005','成都', '2018-08-05', 9000.00);

批量添加数据

-- # 语法
INSERT INTO 表名 VALUES (值1, 值2, ...), (值3, 值4, ...);
INSERT INTO 表名 (字段1, 字段2) VALUES (值1, 值2), (值3, 值4);
-- # 示例
INSERT INTO employees (uid, name, gender, age, phone_number, skills, id_card, city, entry_date, salary) VALUES ('006', '孙八', '女', 29, '13400134000', '{"数据分析": "高级", "机器学习": "中级"}', '500102199301010006', '深圳','2020-11-12', 13500.00),('007', '周九', '男', 27, '13300133000', '{"移动开发": "高级", "后端": "中级"}', '500102199501010007','广州', '2021-07-30', 11500.00),(NULL, '吴十', '女', 31, '13200132000', '{"产品经理": "高级", "市场分析": "专家"}', '500102199101010008','重庆',  '2019-09-18','12800.00');

最后,在 MySQL 命令行工具 或 DataGrip 图形化界面中执行上述 SQL 语句,可以看到 employees 表已经成功插入数据,若未安装 DataGrip 可参考作者前面的文章进行安装。

b61042a67e8048d5e577a848653299af.png
weiyigeek.top-演示SQL查询的表数据图

2.更新记录(UPDATE)

描述:UPDATE 语句用于修改表中的数据。注意:修改语句的条件可以有,也可以没有,如果没有条件,则会修改整张表的所有数据, 不过在生产环境中一定要添加条件,否则容易造成数据的误更新。

温馨提示:为了不影响后续演示,我将 employees 表结构及数据复制一份到 employees_test 表。

-- 复制表结构及数据到新表
CREATE TABLE IF NOT EXISTS employees_test LIKE employees;
-- 复制数据到新表
INSERT INTO employees_test SELECT * FROM employees;

语法示例

-- # 语法
UPDATE 表名 SET 字段1 = 值1, 字段2 = 值2 WHERE 条件;
-- # 示例
-- 更新员工张三的薪资为10000.00,手机号为13900138421
UPDATE employees_test SET salary = 10000.00, phone_number = '13900138421' WHERE name = '张三';
-- 更新所有员工的城市为'重庆' , 注意:在生产环境中,不建议使用无条件的更新语句
UPDATE employees_test SET city = '重庆';
63832fcc1c1804ee8b0212730285611b.png
weiyigeek.top-查询更新的员工表数据图

3.删除记录(DELETE)

描述:DELETE 语句用于删除表中的数据。注意:删除语句的条件可以有,也可以没有,如果没有条件,则会删除整张表的所有数据, 建议在生产环境中一定要添加条件,否则容易造成数据的误删除。

温馨提示:DELETE 语句不能删除表的某一个字段,如果要删除某个字段的数据,可以使用 UPDATE 语句将该字段设置为 NULL 或者其他默认值。

语法示例

-- # 语法
DELETE FROM 表名 WHERE 条件;
-- # 示例
-- 删除员工表中姓名为'李四'的记录
mysql> DELETE FROM employees_test WHERE name = '李四';
[2025-09-25 11:37:25] 1 row affected in 156 ms
-- 删除所有员工的记录 注意:在生产环境中不建议使用无条件的删除语句
DELETE FROM employees_test;

温馨提示:DELETE 语句 与 TRUNCATE TABLE 语句的区别是,DELETE 语句可以删除表中的部分数据且在开启 BINLOG 时即可恢复误删除的数据,而 TRUNCATE TABLE 语句会删除整个表的数据并重置自增计数器。

总结:

  • INSERT 语句用于向表中插入新的数据行。

  • UPDATE 语句用于修改(更新)表中的数据。

  • DELETE 语句用于从表中删除数据。

INSERT INTO 表名 VALUES (值1, 值2, ...);
UPDATE 表名 SET 字段1 = 值1, 字段2 = 值2 WHERE 条件;
DELETE FROM 表名 WHERE 条件;

至此,MySQL 基础操作之增删改查就介绍完了,后续会继续分享 MySQL 基础查询 DQL 语句的相关内容。

END

加入:作者【全栈工程师修炼指南】知识星球

『 全栈工程师修炼指南』星球,主要涉及全栈工程师(Full Stack Development)实践文章,包括但不限于企业SecDevOps和网络安全等保合规、安全渗透测试、编程开发、云原生(Cloud Native)、物联网工业控制(IOT)、人工智能Ai,从业书籍笔记,人生职场认识等方面资料或文章。

Q: 加入作者【全栈工程师修炼指南】星球后有啥好处?

✅ 将获得作者最新工作学习实践文章以及网盘资源。

✅ 将获得作者珍藏多年的全栈学习笔记(需连续两年及以上老星球友,也可单次购买) 

✅ 将获得作者专门答疑学习交流群,解决在工作学习中的问题。 

✅ 将获得作者远程支持(在作者能力范围内且合规)。

获取:作者工作学习全栈笔记

作者整理了10年的工作学习笔记(涉及网络、安全、运维、开发),需要学习实践笔记的看友,可添加作者微信或者回复【工作学习实践笔记】,当前价格¥299,除了获得从业笔记的同时还可进行问题答疑以及每月远程技术支持,希望大家多多支持,收获定大于付出!

知识推荐 往期文章

  • 【最新】DBA | MySQL 数据库前置知识与概述学习笔记

  • 【最新】DBA | MySQL 数据库基础学习环境搭建与客户端工具笔记

  • 【最新】DBA | MySQL 数据库五种数据类型介绍实践指南

  • 【最新】DBA | MySQL 数据库与表字段操作管理指南

  • 【相关】DBA | 十分钟上手SQL数据操纵!增删改查(CRUD)核心秘籍(上篇)

  • 【相关】DBA | 十分钟上手SQL数据操纵!增删改查(CRUD)核心秘籍(下篇)

若文章对你有帮助,请将它转发给更多的看友,若有疑问的小伙伴,可在评论区留言你想法哟 !

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/920690.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

外卖网站开发能多少钱常见的网站结构类型

4.1 顺序结构 在任何编程语言中最常见的程序结构就是顺序结构。顺序结构就是程序从上到下一行行地执行&#xff0c;中间没有任何判断和跳转。 如果Python程序的多行代码之间没有任何流程控制&#xff0c;则程序总是从上往下依次执行&#xff0c;排在前面的代码先执行&#xf…

广州市公司网站建设品牌做电脑网站用什么软件有哪些方面

创建wilddog应用填写应用名称和应用ID就可以创建了。应用ID需要全网唯一创建成功之后就可以在控制面板看到应用了.1.引入SDK2.创建引用ref Wilddog("https://.wilddogio.com/")//将替换成申请的应用IDref Wilddog("https://fullstack-top-demo.wilddogio.com/…

Windows远程桌面出现CredSSP加密数据修正问题解决方案

问题现象: 解决方案:方案一:1、win+R打开运行窗口2、输入gpedit.msc命令,点击“确定”3、依次展开“计算机配置”->“管理模板”->“系统”->“凭据分配”设置名称: 加密数据库修正4、双击“加密数据库修…

河南微网站开发佛山网站推广经理

牙膏厂终于发布了入门级性价比最高的十代CPU&#xff0c;inte i3 10100F。10100F采用LGA1200芯片接口,四核八线程,主频3.6GHz&#xff0c;睿频可以到4.3Ghz。TDP功耗65w&#xff0c;支持双通道DDR4 2666内存。可以搭配H410或B460主板。首发价格为699元&#xff0c;性价比非常的…

【安装红帽子 redhat Linux 9.0版本】教程

【安装红帽子 redhat Linux 9.0版本】教程 https://www.bilibili.com/video/BV1354y1d7fP/?vd_source=ac9167e61e0c909658ec9e3b6350cd4e

linux执行yum报错: except KeyboardInterrrupt, e

linux执行yum报错: except KeyboardInterrrupt, e 原因: except KeyboardInterrrupt, e 这个是python 2.7的语法 python3的语法是 except KeyboardInterrrupt as e yum依赖python2.7 ,例如centos 5版本 解决办法:…

网站建设费 什么科目企业网站子页面模板

一、Switch语句 语法规则&#xff1a; ①语句中的变量类型可以是byte、short、int或者char;从javaSE5开始支持枚举类型&#xff1b; javaSE7开始&#xff0c;switch支持String。 ②没有break时&#xff0c;后续case的语句都会执行 二、修饰符 访问修饰符 Java中&#xff0c…

靖江市住房和城乡建设局的网站有谁可以做网站寄生虫

《大教堂与市集》&#xff08;The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary&#xff09;一书中提到了软工工程的两种开发模式&#xff0c;即大教堂模式和市集模式。作者认为“Given enough eyeballs, all bugs are shallow…

CentOS 10服务器版 部署Zabbix7.2 server端 - 教程

CentOS 10服务器版 部署Zabbix7.2 server端 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

电子商务网站建设教学大纲网页免费建站

1.简介 Fiddler本身的功能其实也已经很强大了&#xff0c;但是Fiddler官方还有很多其他扩展插件功能&#xff0c;可以更好地辅助Fiddler去帮助用户去开发、测试和管理项目上的任务。Fiddler已有的功能已经够我们日常工作中使用了&#xff0c;为了更好的扩展Fiddler&#xff0c…

完整教程:雪山飞狐之 Swift 6.2 并发秘典:@concurrent 的江湖往事

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

grafana如何添加自定义geoJson地图

grafana如何添加自定义geoJson地图 该方法研究了很久,网上没看到现成的,所以自己摸索出来了。从阿里云下载 geoJson文件 例如 geo.datav.aliyun.com/areas_v3/bound/geojson?code=100000_full 更新文件名为 china.…

第一次算法分析作业

一、大公司内部编码规范及本学期编码需遵守的规范 (一)大公司内部编码规范示例(以谷歌C++编码规范为例) 1. 命名规范变量、函数名采用小驼峰或下划线命名法,例如 int studentAge 或 int student_age ;类名采用…

2025 年过滤器品牌权威推荐排行榜:TOP5 企业技术实力测评,覆盖化工 / 环保 / 空气净化等多场景最新选型指南

在化工、石油、环保等工业领域,过滤设备的性能直接决定生产效率、安全合规与成本控制。当前企业普遍面临选型困境:特殊工况下耐腐与精度难以兼顾、传统设备维护频繁导致停产损失、新兴场景缺乏适配解决方案,尤其在合…

[Golang] golang安装

[Golang] golang安装$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");目录01 下载02 安装2.1 解压文件2.2 存放2.3 配置环境变量 01 下载GoLang官网 GoLang下…

网站建设推广的话术品牌策略包括哪些内容

数值模式模拟是分析大气污染物时空分布和成分贡献的重要工具&#xff0c;利用模拟结果可以分析大气污染的来源、成因、污染程度、持续时间、主要成分、相对贡献等问题&#xff0c;有助于分析并合理控制污染源排放&#xff0c;为产业调整提供参考。当前&#xff0c;针对不同理论…

AI元人文:追问与悟空

AI元人文:追问与悟空 ——论人工智能时代创新型决策的伦理架构 文/岐金兰 摘要 在人工智能向通用智能演进的临界点,我们面临的核心悖论是:越是强大的AI系统,其核心决策机制越呈现为不可解释的“黑箱”;而越是需要…

2025 年软著申请一站式服务公司最新推荐排行榜:精选专业高效机构,解决企业个人申请难题

随着软件产业持续繁荣,2025 年上半年中国软件著作权申请量已突破 145 万件,同比增长 17%,但审核标准同步趋严,教育、金融类软件需额外提交备案证明,普通申请者常因流程繁琐、材料不达标导致申请被退回,既浪费时间…

数字孪生背后的通信协议:MQTT、OPC UA选型指南 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:DIC技术在极端条件下的应用及解决方案

深入解析:DIC技术在极端条件下的应用及解决方案pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", …