发布时间:2026/6/18 21:04:56
MySql中各种功能用sql语句实现总结
目录1.排序和分页2.聚合统计与分组3.数据增删改DML4.判断表是否存在指定字段5.向数据库中的每个表都增加或删除一个字段后续待加...1.排序和分页1.排序ORDER BY-- 升序(ASC默认)、降序(DESC) SELECT * FROM user ORDER BY age ASC; SELECT * FROM user ORDER BY create_time DESC; -- 多字段排序先按年龄降序年龄相同按创建时间升序 SELECT * FROM user ORDER BY age DESC, create_time ASC;2.分页LIMIT-- LIMIT 起始索引, 每页条数起始索引从0开始 -- 第1页10条数据 SELECT * FROM user LIMIT 0,10; -- 第2页10条数据 SELECT * FROM user LIMIT 10,10;2.聚合统计与分组1.常用聚合函数-- 统计数量 SELECT COUNT(*) FROM user; -- 统计总行数 SELECT COUNT(email) FROM user; -- 统计非空email数量 -- 求和/平均值/最大/最小值 SELECT SUM(age) FROM user; SELECT AVG(age) FROM user; SELECT MAX(age) FROM user; SELECT MIN(age) FROM user;2.分组统计GROUP BY核心GROUP BY后只能跟分组字段 聚合函数-- 按性别统计人数 SELECT gender, COUNT(*) AS 人数 FROM user GROUP BY gender; -- 按城市统计平均年龄 SELECT city, AVG(age) AS 平均年龄 FROM user GROUP BY city;3.分组后筛选HAVING区别WHERE筛选原始数据HAVING筛选分组后结果-- 统计人数大于5的城市 SELECT city, COUNT(*) AS 人数 FROM user GROUP BY city HAVING COUNT(*) 5;3.数据增删改DML1.插入数据INSERT-- 单条插入 INSERT INTO user(name, age, gender) VALUES (张三, 20, 男); -- 批量插入性能更高高效推荐 INSERT INTO user(name, age, gender) VALUES (李四,21,女),(王五,22,男);2.更新数据UPDATE必须加 WHERE 条件否则全表更新-- 条件更新 UPDATE user SET age 21, email xxx163.com WHERE id 1;3.删除数据DELETE/TRUNCATE-- 条件删除 DELETE FROM user WHERE id 1; -- 清空全表不可回滚速度远快于DELETE TRUNCATE TABLE user;4.插入或更新数据INSERT ... SET ON DUPLICATE KEY UPDATE标准写法MySQL 支持INSERT INTO 表 SET 字段值语法可直接拼接ON DUPLICATE KEY UPDATE依赖主键 / 唯一索引冲突触发更新INSERT INTO table_name SET id 1, username test, age 20 ON DUPLICATE KEY UPDATE username test, age 20;5.查询结果插入INSERT ... SELECT将一个查询结果集批量插入目标表适合数据迁移 / 复制-- 替换库名、表名、字段名 SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA 数据库名 AND TABLE_NAME 表名 AND COLUMN_NAME 字段名;如-- 复制部门10的员工到新表 INSERT INTO new_employees(id, name, dept) SELECT id, name, 20 FROM employees WHERE dept 10;支持复杂子查询、JOIN 与聚合函数。4.判断表是否存在指定字段查询 information_schema通用推荐-- 替换库名、表名、字段名 SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA 数据库名 AND TABLE_NAME 表名 AND COLUMN_NAME 字段名;返回0字段存在0不存在示例SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMA testdb AND TABLE_NAME user AND COLUMN_NAME phone;5.向数据库中的每个表都增加或删除一个字段1.增加字段先判断表中是否有这个字段没有则增加有则跳过sql语句如下-- 如果存储过程存在则删除 DROP PROCEDURE IF EXISTS add_username_all_table; DELIMITER $$ /*修改语句结束符为$$类似sql server中的go语句*/ --db_name 数据库名称 --col_name 字段名 CREATE PROCEDURE add_username_all_table(IN db_name VARCHAR(64), IN col_name VARCHAR(64)) BEGIN DECLARE done INT DEFAULT 0; DECLARE tb_name VARCHAR(64); -- 游标查询指定库下所有数据表 DECLARE cur_tb CURSOR FOR SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA db_name AND TABLE_TYPEBASE TABLE; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done1; OPEN cur_tb; tb_loop:LOOP FETCH cur_tb INTO tb_name; IF done1 THEN LEAVE tb_loop; END IF; -- 判断字段是否存在 SET is_exist (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMAdb_name AND TABLE_NAMEtb_name AND TABLE_NAMEusertable AND COLUMN_NAMEcol_name); -- 不存在则添加字段varchar(50)可自行修改类型 SET sql IF(is_exist0, CONCAT(ALTER TABLE ,db_name,.,tb_name, ADD COLUMN ,col_name, VARCHAR(255) NOT NULL COMMENT \*unVisible\;), SELECT 1;); PREPARE stmt FROM sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; END LOOP tb_loop; CLOSE cur_tb; END$$ DELIMITER ; /*改回默认分号结束符*/ --调用此过程 CALL add_username_all_table(xxxxxx, userName);2.删除字段DROP PROCEDURE IF EXISTS drop_column_all_tables; DELIMITER $$ /*修改语句结束符为$$类似sql server中的go语句*/ --db_name 数据库名称 --col_name 字段名 CREATE PROCEDURE drop_column_all_tables(IN db_name VARCHAR(64), IN col_name VARCHAR(64)) BEGIN DECLARE done INT DEFAULT 0; DECLARE tb_name VARCHAR(64); DECLARE cur_tb CURSOR FOR SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA db_name AND TABLE_TYPEBASE TABLE; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done1; OPEN cur_tb; tb_loop:LOOP FETCH cur_tb INTO tb_name; IF done1 THEN LEAVE tb_loop; END IF; -- 判断字段是否存在 SET is_exist (SELECT COUNT(*) FROM information_schema.COLUMNS WHERE TABLE_SCHEMAdb_name AND TABLE_NAMEtb_name AND TABLE_NAMEusertable AND COLUMN_NAMEcol_name); -- 存在则删除字段 SET sql IF(is_exist0, CONCAT(ALTER TABLE ,db_name,.,tb_name, DROP COLUMN ,col_name,;), SELECT 1;); PREPARE stmt FROM sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; END LOOP tb_loop; CLOSE cur_tb; END$$ DELIMITER ; /*改回默认分号结束符*/ -- 调用示例删除 xxxxx 库中所有表的 userName 字段 CALL drop_column_all_tables(xxxxxx, userName);后续待加...

相关新闻

【分享】4.4 弱点的正确处理方式——承认它、框架它、超越它
2026/6/18 5:31:20

【分享】4.4 弱点的正确处理方式——承认它、框架它、超越它

第四章 你真的了解自己吗?——自我认知的残酷练习 4.4 弱点的正确处理方式——承认它、框架它、超越它“每个人都有弱点。真正的强者,不是没有弱点的人,而是对自己的弱点有清醒认知,并且能够驾驭它的人。”“你最大的弱点是什么&…

阅读更多
3步轻松下载TIDAL无损音乐:tidal-dl-ng专业工具全攻略
2026/6/9 23:26:13

3步轻松下载TIDAL无损音乐:tidal-dl-ng专业工具全攻略

3步轻松下载TIDAL无损音乐:tidal-dl-ng专业工具全攻略 【免费下载链接】tidal-dl-ng TIDAL Media Downloader Next Generation! Up to HiRes / TIDAL MAX 24-bit, 192 kHz. 项目地址: https://gitcode.com/gh_mirrors/ti/tidal-dl-ng 你是否曾梦想拥有一个完…

阅读更多
HS2-HF Patch终极指南:一键解决Honey Select 2游戏兼容性问题
2026/6/10 16:54:43

HS2-HF Patch终极指南:一键解决Honey Select 2游戏兼容性问题

HS2-HF Patch终极指南:一键解决Honey Select 2游戏兼容性问题 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 还在为Honey Select 2游戏中的角色卡片…

阅读更多
多账号微信机器人如何稳定运行?基于 WechatApi 的工程化落地思路
2026/6/18 20:58:49

多账号微信机器人如何稳定运行?基于 WechatApi 的工程化落地思路

接口测试地址:wechatapi.net 当企业刚开始尝试微信自动化时,通常只会使用一个测试账号,做一些简单的消息收发和关键词回复。但当业务逐渐扩大,企业往往会遇到更复杂的需求:多个客服账号同时在线,多个微信群…

阅读更多
如何对泉州电力负荷数据集进行有效的分析和预测 如何对泉州电力负荷数据集进行有效的分析和预测 深入对泉州电力负荷数据集的分析和建模
2026/6/18 20:58:49

如何对泉州电力负荷数据集进行有效的分析和预测 如何对泉州电力负荷数据集进行有效的分析和预测 深入对泉州电力负荷数据集的分析和建模

如何对泉州电力负荷数据集进行有效的分析和预测 如何对泉州电力负荷数据集进行有效的分析和预测 深入对泉州电力负荷数据集的分析和建模 文章目录第一步:导入必要的库第二步:加载数据并初步探索第三步:数据预处理第四步:特征工程第…

阅读更多
【必看收藏】CTF大师私藏的100个网络安全解题思路,小白也能秒变高手!
2026/6/18 20:58:49

【必看收藏】CTF大师私藏的100个网络安全解题思路,小白也能秒变高手!

本文全面总结了CTF比赛中的100个实战解题技巧,涵盖Web安全、逆向工程、PWN漏洞利用、密码学和杂项五大领域。从SQL注入绕过、JWT破解到ROP链构造、椭圆曲线攻击等高级技术,每个技巧都配有具体操作方法。文章不仅提供技术干货,还分享了CTF解题…

阅读更多
PowerPC 601整数指令集深度解析:比较、逻辑、移位与旋转实战
2026/6/18 20:58:49

PowerPC 601整数指令集深度解析:比较、逻辑、移位与旋转实战

1. PowerPC 601整数指令集:从手册到实战的深度解析如果你和我一样,曾经在嵌入式系统或者某些老牌工作站上折腾过,那么PowerPC这个名字你一定不陌生。它不像x86那样无处不在,但在特定领域,比如早期的苹果Macintosh、游…

阅读更多
软件测试报告怎么写?
2026/6/18 20:58:49

软件测试报告怎么写?

软件测试报告是软件测试工作的重要成果之一,它对软件质量的评估和改进提供了重要依据。因此,如何撰写一份完整、准确、清晰的软件测试报告是每个测试人员都需要掌握的基本技能。下文将从软件测试报告的结构、内容和撰写要点等方面进行详细介绍。首先&…

阅读更多
聪明如你为什么还没在网上赚钱?
2026/6/18 19:58:49

聪明如你为什么还没在网上赚钱?

我从未分享过这件事。有人给了我一份直接为 Tony Robbins 工作的机会。 我花了几周时间考虑。然后我拒绝了。是的,我会在路上和我最大的英雄一起,身边还有 Jay Shetty 和 Gary Vaynerchuk 这样的人——但我内心深处知道的残酷真相是,我会活在…

阅读更多
别再只用BERT了!用Transformers库的AutoModel,5分钟搞定文本相似度计算(附代码对比)
2026/6/17 23:21:18

别再只用BERT了!用Transformers库的AutoModel,5分钟搞定文本相似度计算(附代码对比)

超越BERT:用Transformers库高效实现文本相似度计算的三种实战方案在自然语言处理领域,文本相似度计算是信息检索、问答系统和推荐系统等应用的核心技术。传统方法如TF-IDF或Word2Vec已逐渐被基于Transformer的预训练模型所取代。Hugging Face的Transform…

阅读更多
Prompt Engineering:重构人机协作的工程化方法论
2026/6/18 4:35:02

Prompt Engineering:重构人机协作的工程化方法论

1. 项目概述:这不是“写提示词”,而是重构人机协作的底层逻辑“Prompt Engineering”这个词,这两年被讲得太多,也太轻飘。很多人把它理解成“给AI发指令的技巧”,甚至简化为“多加几个形容词”“换种说法再试一次”。我…

阅读更多
Anthropic提示层归零:模型即协议的工程实践
2026/6/18 15:04:04

Anthropic提示层归零:模型即协议的工程实践

1. 项目概述:这不是一次普通更新,而是一次架构级“蒸发”“Anthropic Just Shipped the Layer That’s Already Going to Zero”——这个标题一出来,我正在调试一个Claude调用链的终端前停了三秒。不是因为震惊,而是因为熟悉&…

阅读更多
零碳供电所照明控制系统技术解析:标准要求与产品落地
2026/6/18 0:58:44

零碳供电所照明控制系统技术解析:标准要求与产品落地

一、零碳供电所对照明控制系统的硬性要求 《零碳供电所创建与评价规范》(T/ZDL 02-2022)是全国首个零碳供电所评价的团体标准,于2022年10月1日起实施-10-2。该标准将建筑、交通、办公、能源、建设与管理等多个维度零碳评价指标融为一体&#…

阅读更多
学生党AI学习指南:GPT、Gemini、WPS AI三工具协同实战
2026/6/18 0:58:44

学生党AI学习指南:GPT、Gemini、WPS AI三工具协同实战

1. 这不是工具清单,是学生党用时间砸出来的“AI生存指南”最近在图书馆自习区,我常看见对面座位的同学盯着屏幕发呆——不是在刷短视频,而是在和某个AI对话框反复拉扯:输入问题、删掉重写、再改提示词、等结果、皱眉、刷新……半小…

阅读更多
Gemini 3.1 Pro+DeepSider:新人零门槛AI工作流实战指南
2026/6/18 0:58:44

Gemini 3.1 Pro+DeepSider:新人零门槛AI工作流实战指南

1. 为什么Gemini 3.1 Pro值得新人认真对待——不是又一个“聊天玩具”最近在几个技术社群和内容创作小组里,总能看到有人发截图:“Gemini 3.1 Pro刚跑完一份20页PDF的逻辑图谱,还顺手把矛盾点标红了”;也有人贴出对比:…

阅读更多
GIT修改用户名
2026/6/17 19:45:33

GIT修改用户名

在GIT中修改用户名可按以下步骤操作: 查看当前git的用户名,使用命令git config --list或git config user.name。修改git用户名,使用命令git config --global user.name "xxx(新的用户名)",将其中…

阅读更多
Win11Debloat:让你的Windows系统重获新生的终极优化工具
2026/6/18 14:35:19

Win11Debloat:让你的Windows系统重获新生的终极优化工具

Win11Debloat:让你的Windows系统重获新生的终极优化工具 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and …

阅读更多
技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践
2026/6/18 15:23:49

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter是一个…

阅读更多