MySQL常用命令之汇总(Summary of Commonly Used Commands in MySQL)
MySQL常用命令汇总
简介
MySQL是一个广泛使用的开源关系型数据库管理系统,由瑞典的MySQL AB公司开发,现属于Oracle公司。 MySQL支持SQL(结构化查询语言),这是数据库操作的标准语言,用户可以使用SQL进行数据查询、插入、更新和删除操作。
MySQL的主要特点包括:
- 开源:用户可以免费下载、使用和修改其源代码,尽管现在属于Oracle公司,但其社区版仍然保留开源模式。
- 高性能和扩展性:MySQL能够处理从小型应用程序到大型系统的多种数据工作负载,适合高并发的在线事务处理(OLTP)系统。
- 跨平台支持:MySQL支持多种操作系统,包括Linux、Windows和macOS,这使得它可以在不同的开发环境中广泛使用。
- 多种存储引擎:MySQL支持多种存储引擎,如InnoDB和MyISAM,用户可以根据具体需求选择适合的引擎。
MySQL的应用场景非常广泛,特别是在网络应用中十分流行。许多Web开发框架(如PHP、Python的Django)都可以与MySQL无缝集成,适用于内容管理系统(CMS)、电子商务、社交媒体平台等方面。
MySQL命令是很多的,如果全面列出的话,篇幅较长,我在这里面只是罗列了一些常用的,供大家参考。
1. 登录与退出
登录 MySQL
mysql [OPTIONS]mysql -uroot -p
选项 | 说明 | 示例 |
---|---|---|
-u | 指定用户名 | -u root |
-p | 提示输入密码(密码可跟在后面但不安全) | -p1234 或 -p |
-h | 指定主机名(默认 localhost) | -h 192.168.1.100 |
-P | 指定端口(默认 3306) | -P 3307 |
--ssl | 启用 SSL 安全连接 | --ssl |
--socket | 指定套接字文件 | --socket=/tmp/mysql.sock |
--database | 登录后直接使用指定数据库 | --database=testdb |
退出 MySQL
SQL> exit;
或:
SQL> quit;
2. 数据库管理
查看数据库列表
show databases;
创建数据库
CREATE DATABASE 数据库名 [OPTIONS];CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
选项 | 说明 | 示例 |
---|---|---|
DEFAULT CHARACTER SET | 设置数据库的默认字符集 | DEFAULT CHARACTER SET utf8mb4 |
DEFAULT COLLATE | 设置数据库的排序规则(与字符集匹配) | DEFAULT COLLATE utf8mb4_general_ci |
删除数据库
drop databases 数据库名;
使用指定数据库
USE 数据库名;
use mysql;
查看当前使用的数据库
SELECT DATABASE();
查看数据库大小
SELECT table_schema AS 数据库名,ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 大小_MB
FROM information_schema.tables
GROUP BY table_schema;
3. 表管理
查看当前数据库的所有表
SHOW TABLES;
查看表结构
DESC 表名;
或:
SHOW COLUMNS FROM 表名;
创建表
CREATE TABLE 表名 (列名 数据类型 [约束条件],...
) [OPTIONS];CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50) NOT NULL,email VARCHAR(100) UNIQUE,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
选项 | 说明 | 示例 |
---|---|---|
ENGINE | 设置存储引擎(如 InnoDB、MyISAM) | ENGINE=InnoDB |
DEFAULT CHARSET | 设置表的默认字符集 | DEFAULT CHARSET=utf8mb4 |
AUTO_INCREMENT | 指定自增主键 | id INT AUTO_INCREMENT PRIMARY KEY |
查看表的创建语句
SHOW CREATE TABLE 表名;
修改表结构
添加列:
ALTER TABLE 表名 ADD 列名 数据类型 [位置];
位置:FIRST(在最前),AFTER 列名(在指定列后)。
修改列:
ALTER TABLE 表名 MODIFY 列名 数据类型;
删除列:
ALTER TABLE 表名 DROP 列名;
重命名列:
ALTER TABLE 表名 CHANGE 原列名 新列名 数据类型;
删除表
DROP TABLE 表名;
清空表(保留结构)
TRUNCATE TABLE 表名;
4. 数据操作
插入数据
INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);INSERT INTO users (name, email) VALUES ('Alice', 'liyb@example.com');
批量插入
INSERT INTO 表名 (列名1, 列名2) VALUES
(值1, 值2),
(值3, 值4),
(值5, 值6);
查询数据
SELECT 列名1, 列名2, ... FROM 表名 [WHERE 条件] [ORDER BY 列名 ASC|DESC] [LIMIT 偏移量, 行数];SELECT * FROM users WHERE email LIKE '%example.com' ORDER BY created_at DESC LIMIT 10;
常用子句:
子句 | 说明 | 示例 |
---|---|---|
WHERE | 指定条件 | WHERE age > 30 |
ORDER BY | 排序结果集 | ORDER BY name ASC |
LIMIT | 限制返回行数,支持偏移量 | LIMIT 5 OFFSET 10 |
GROUP BY | 按列分组 | GROUP BY department |
HAVING | 筛选分组结果 | HAVING COUNT(*) > 1 |
更新数据
UPDATE 表名 SET 列名1=值1, 列名2=值2 WHERE 条件;
示例:
UPDATE users SET email='new_email@example.com' WHERE name='Alice';
删除数据
DELETE FROM 表名 WHERE 条件;DELETE FROM users WHERE id=10;
5. 用户管理
创建用户
CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'mypassword';
参数 | 说明 | 示例 |
---|---|---|
'用户名' | 用户名 | 'testuser' |
'主机' | 用户允许访问的主机(% 表示任意主机) | 'localhost' 或 '%' |
'密码' | 用户密码 | 'password123' |
修改用户密码
ALTER USER '用户名'@'主机' IDENTIFIED BY '新密码';ALTER USER 'testuser'@'localhost' IDENTIFIED BY 'newpassword123';
删除用户
DROP USER '用户名'@'主机';
授予权限
GRANT 权限列表 ON 数据库.表 TO '用户名'@'主机';
权限 | 说明 |
---|---|
ALL PRIVILEGES | 授予所有权限 |
SELECT | 允许读取表中的数据 |
INSERT | 允许向表中插入数据 |
UPDATE | 允许修改表中的数据 |
DELETE | 允许删除表中的数据 |
CREATE | 允许创建数据库和表 |
DROP | 允许删除数据库和表 |
GRANT SELECT, INSERT ON mydb.* TO 'testuser'@'localhost';
撤销权限
REVOKE 权限列表 ON 数据库.表 FROM '用户名'@'主机';REVOKE INSERT ON mydb.* FROM 'testuser'@'localhost';
刷新权限
FLUSH PRIVILEGES;
6. 性能优化
查看查询执行计划
EXPLAIN SELECT 查询语句;
EXPLAIN SELECT * FROM users WHERE email='test@example.com';
优化表
OPTIMIZE TABLE 表名;
慢查询查看
SHOW VARIABLES LIKE 'slow_query_log';
启用慢查询:
SET GLOBAL slow_query_log=1;
检查表
CHECK TABLE 表名;
修复表
REPAIR TABLE 表名;
相关文章:
MySQL常用命令之汇总(Summary of Commonly Used Commands in MySQL)
MySQL常用命令汇总 简介 MySQL是一个广泛使用的开源关系型数据库管理系统,由瑞典的MySQL AB公司开发,现属于Oracle公司。 MySQL支持SQL(结构化查询语言),这是数据库操作的标准语言,用户可以使用SQL进…...
更新至2023年,各省数字经济变量/各省数字经济相关指标数据集(20个指标)
更新至2023年,各省数字经济相关指标数据集(20个指标) 1、时间:更新至2023年,具体时间如下 2、指标:互联网宽带接入端口(万个)(2006-2023)、互联网宽带接入用户(万户)(2…...
聚类系列 (二)——HDBSCAN算法详解
在进行组会汇报的时候,为了引出本研究动机(论文尚未发表,暂不介绍),需要对DBSCAN、OPTICS、和HDBSCAN算法等进行详细介绍。在查询相关资料的时候,发现网络上对于DBSCAN算法的介绍非常多与细致,但…...
【JavaEE】—— SpringBoot项目集成百度千帆AI大模型(对话Chat V2)
本篇文章在SpringBoot项目中集成百度千帆提供的大模型接口实现Chat问答效果: 一、百度智能云 百度千帆大模型平台是百度智能云推出的一个企业级一站式大模型与AI原生应用开发及服务平台。 注册地址:https://qianfan.cloud.baidu.com/ 注册成功后&…...
一种更激进的Hook实现方案猜想
XXX原创不原创不清楚,暂定为原创。毕竟windows 大神很多XXX 昨天才发现不是原创,这种方案是VEH HOOK的一种实现方案。VEH HOOK很久很久以前都被广泛使用了。只是自己没听说过。好悲哀呀。。。。 激进的猜想: 如果VEH HOOK在内核态处理异常…...
HTML5实现好看的端午节网页源码
HTML5实现好看的端午节网页源码 前言一、设计来源1.1 网站首页界面1.2 登录注册界面1.3 端午节由来界面1.4 端午节习俗界面1.5 端午节文化界面1.6 端午节美食界面1.7 端午节故事界面1.8 端午节民谣界面1.9 联系我们界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 H…...
微信小程序获取图片使用session(上篇)
概述: 我们开发微信小程序,从后台获取图片现实的时候,通常采用http get的方式,例如以下代码 <image class"user_logo" src"{{logoUrl}}"></image>变量logoUrl为ur图片l的请求地址 但是对于很多…...
RT-DETR融合YOLOv9的下采样模块ADown
RT-DETR使用教程: RT-DETR使用教程 RT-DETR改进汇总贴:RT-DETR更新汇总贴 《YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information》 一、 模块介绍 论文链接:https://arxiv.org/abs/2402.13616 代码链接&…...
【机器学习案列】学生抑郁可视化及预测分析
🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...
CES 2025|美格智能高算力AI模组助力“通天晓”人形机器人震撼发布
当地时间1月7日,2025年国际消费电子展(CES 2025)在美国拉斯维加斯正式开幕。美格智能合作伙伴阿加犀联合高通在展会上面向全球重磅发布人形机器人原型机——通天晓(Ultra Magnus)。该人形机器人内置美格智能基于高通QC…...
Linux第一个系统程序---进度条
进度条---命令行版本 回车换行 其实本质上回车和换行是不同概念,我们用一张图来简单的理解一下: 在计算机语言当中: 换行符:\n 回车符:\r \r\n:回车换行 这时候有人可能会有疑问:我在学习C…...
黑马跟学.苍穹外卖.Day04
黑马跟学.苍穹外卖.Day04 苍穹外卖-day04课程内容1. Redis入门1.1 Redis简介1.2 Redis下载与安装1.2.1 Redis下载1.2.2 Redis安装 1.3 Redis服务启动与停止1.3.1 服务启动命令1.3.2 客户端连接命令1.3.3 修改Redis配置文件1.3.4 Redis客户端图形工具 2. Redis数据类型2.1 五种常…...
人生第一次面试之依托答辩
今天收到人生的第一场面试,是东华软件集团。答的那是依托答辩,就面了20分钟,还没考算法。其实依托答辩的效果是意料之中的,这次面试也只是想练练手。 目录 静态变量什么时候加载的? 重写和重载有什么区别࿱…...
STM32 : PWM 基本结构
这张图展示了PWM(脉冲宽度调制)的基本结构和工作流程。PWM是一种用于控制功率转换器输出电压的技术,通过调整信号的占空比来实现对负载的精确控制。以下是详细讲解: PWM 基本结构 1. 时基单元 ARR (Auto-reload register): 自动…...
【大模型(LLM)面试全解】深度解析 Layer Normalization 的原理、变体及实际应用
系列文章目录 大模型(LLMs)基础面 01-大模型(LLM)面试全解:主流架构、训练目标、涌现能力全面解析 02-【大模型(LLM)面试全解】深度解析 Layer Normalization 的原理、变体及实际应用 大模型&…...
《浮岛风云》V1.0中文学习版
《浮岛风云》中文版https://pan.xunlei.com/s/VODadt0vSGdbrVOBEsW9Xx8iA1?pwdy7c3# 一款有着类似暗黑破坏神的战斗系统、类似最终幻想的奇幻世界和100%可破坏体素环境的动作冒险RPG。...
学习threejs,导入babylon格式的模型
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.BabylonLoader babyl…...
Django 社团管理系统的设计与实现
标题:Django 社团管理系统的设计与实现 内容:1.摘要 本文介绍了 Django 社团管理系统的设计与实现。通过分析社团管理的需求,设计了系统的架构和功能模块,并使用 Django 框架进行了实现。系统包括社团信息管理、成员管理、活动管理、财务管理等功能&…...
2025 GitCode 开发者冬日嘉年华:AI 与开源的深度交融之旅
在科技的浪潮中,AI 技术与开源探索的火花不断碰撞,催生出无限可能。2025 年 1 月 4 日,由 GitCode 联合 CSDN COC 城市开发者社区精心打造的开年首场开发者活动:冬日嘉年华在北京中关村 • 鼎好 DH3-A 座 22 层盛大举行࿰…...
嵌入式系统 tensorflow
🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 探索嵌入式系统中的 TensorFlow:机遇与挑战一、TensorFlow 适配嵌入式的优势二、面临的硬件瓶颈三、软件优化策略四、实…...
Web无障碍
文章目录 🟢Web Accessibility-Web无障碍🟢一、Web Accessibility-Web1. web无障碍设计2. demo3.使用相关相关开源无障碍工具条(调用可能会根据网络有点慢) 如有其他更好方案,可以私信我哦✒️总结 🟢Web Accessibility-Web无障碍…...
Qt使用MySQL数据库(Win)----2.配置MySQL驱动
使用Everything软件,找到mysql.pro文件。并使用qt creator打开mysql.pro。 导入外部库 选择外部库 点击下一步,勾选。 为debug版本添加‘d’作为后缀取消勾选,然后点击下一步 添加后的Pro文件。 这样文件应该是改好了,选择releas…...
记录一下vue2项目优化,虚拟列表vue-virtual-scroll-list处理10万条数据
文章目录 封装BrandPickerVirtual.vue组件页面使用组件属性 select下拉接口一次性返回10万条数据,页面卡死,如何优化??这里使用 分页 虚拟列表(vue-virtual-scroll-list),去模拟一个下拉的内容…...
java 中 main 方法使用 KafkaConsumer 拉取 kafka 消息如何禁止输出 debug 日志
pom 依赖: <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId><version>2.5.14.RELEASE</version> </dependency> 或者 <dependency><groupId>org.ap…...
前端性能优化全攻略:加速网页加载,提升用户体验
前端性能优化全攻略:加速网页加载,提升用户体验 在当今互联网时代,用户对于网页的加载速度和性能要求越来越高。一个快速响应、流畅加载的网页能够极大地提升用户体验,增加用户留存率和满意度。前端性能优化是实现这一目标的关键…...
关于内网外网,ABC类地址,子网掩码划分
本文的三个关键字是:内网外网,ABC类地址,子网掩码划分。围绕以下问题展开: 如何从ip区分外网、内网?win和linux系统中,如何查询自己的内网ip和外网ip。开发视角看内外网更多是处于安全考虑,接口…...
【C++多线程编程:六种锁】
目录 普通互斥锁: 轻量级锁 独占锁: std::lock_guard: std::unique_lock: 共享锁: 超时的互斥锁 递归锁 普通互斥锁: std::mutex确保任意时刻只有一个线程可以访问共享资源,在多线程中常用于保…...
【LeetCode】力扣刷题热题100道(16-20题)附源码 容器 子数组 数组 连续序列 三数之和(C++)
目录 1.盛最多水的容器 2.和为K的子数组 3.最大子数组和 4.最长连续序列 5.三数之和 1.盛最多水的容器 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴…...
WHAT - devicePixelRatio 与像素分辨率
目录 语法理解 devicePixelRatio常见值应用场景注意事项在高分辨率屏幕下的视觉效果 devicePixelRatio 是一个浏览器属性,用来表示设备的物理像素与 CSS 像素之间的比例。它是屏幕显示清晰度的重要指标,特别是在高分辨率屏幕(如 Retina 显示屏…...
【cs.CV】25.1.8 arxiv更新速递
—第1篇---- ===== ConceptMaster: 面向扩散Transformer模型的多概念视频定制,无需测试时调优 🔍 关键词: 文本到视频生成, 扩散模型, 多概念定制, 身份解耦 链接1 摘要: 文本到视频生成通过扩散模型取得了显著进展。然而,多概念视频定制(MCVC)仍然是一个重大挑战。…...
C#使用MVC框架创建WebApi服务接口
第一步,使用VS2019新建MVC-Web API应用程序 创建BridgeApi 第二步,运行将生成默认的示例网页,网页Url为 https://localhost:44361/home/index 右键 项目 添加 WebAPI控制器类 添加 我们可以看到App_Start目录下 有三个文件: BundleConfig.cs代表 捆绑文件的引用 有脚本文件…...
慧集通(DataLinkX)iPaaS集成平台-智能体(Agent)API
功能简介: 该功能下主要是用来管理集成平台对外开放接口得管控以及调用日志信息得查看操作,并支持日志得重放等操作;注:所有触发类单据得日志也可以在此查看(如使用数据触发组件自动触发流程得日志信息) 1.第三方调用接口类日志查…...
BigDecimal:高精度数值运算类
介绍: BigDecimal是一个用于高精度数值运算的类,它比基本的double或float类型更精确,非常适合需要精确计算的场景,如金融计算、科学计算等,因为这些领域对数值精度要求非常高,不能容忍浮点运算带来的误差。…...
11. C 语言 作用域与变量使用技巧
本章目录: 前言一、作用域的分类局部变量示例: 全局变量示例:示例: 形式参数示例: 二、作用域的细节与常见误区块级作用域示例: 静态变量与全局变量的对比示例: 未初始化变量的影响示例: 三、实…...
大模型WebUI:Gradio全解11——Chatbots:融合大模型的多模态聊天机器人(2)
大模型WebUI:Gradio全解11——Chatbots:融合大模型的聊天机器人(2) 前言本篇摘要11. Chatbot:融合大模型的多模态聊天机器人11.2 使用流行的LLM库和API11.2.1 Llama Index11.2.2 LangChain11.2.3 OpenAI1. 基本用法2. …...
课题推荐——基于GPS的无人机自主着陆系统设计
关于“基于GPS的无人机自主着陆系统设计”的详细展开,包括项目背景、具体内容、实施步骤和创新点。如需帮助,或有导航、定位滤波相关的代码定制需求,请点击文末卡片联系作者 文章目录 项目背景具体内容实施步骤相关例程MATLAB例程python例程 …...
HQChart使用教程30-K线图如何对接第3方数据44-DRAWPIE数据结构
HQChart使用教程30-K线图如何对接第3方数据44-DRAWPIE数据结构 效果图DRAWPIEHQChart代码地址后台数据对接说明示例数据数据结构说明效果图 DRAWPIE DRAWPIE是hqchart插件独有的绘制饼图函数,可以通过麦语法脚本来绘制一个简单的饼图数据。 饼图显示的位置固定在右上角。 下…...
张朝阳惊现CES展,为中国品牌 “代言”的同时,或将布局搜狐新战略!
每年年初,科技圈的目光都会聚焦在美国拉斯维加斯,因为这里将上演一场被誉为 “科技春晚” 的年度大戏 ——CES 国际消费电子展。作为全球规模最大、最具影响力的科技展会之一,CES 吸引了来自 160 多个国家的创新者和行业领导者,是…...
堆排序+选择排序详解
目录 1.选择排序的定义 2.选择排序的优缺点 2.1优点 2.2缺点 3.思考 4.优化后的选择排序的实现 5.选择排序的代码 6.堆排序 7.向上/向下调整算法 8. 向下向上调整代码 9.堆排序代码 1.选择排序的定义 选择排序(SelectSort),以第一个为开始值,…...
【Arthas命令实践】heapdump实现原理
🎮 作者主页:点击 🎁 完整专栏和代码:点击 🏡 博客主页:点击 文章目录 使用原理 使用 dump java heap, 类似 jmap 命令的 heap dump 功能。 【dump 到指定文件】 heapdump arthas-output/dump.hprof【只 …...
python-leetcode-判断子序列
392. 判断子序列 - 力扣(LeetCode) class Solution:def isSubsequence(self, s: str, t: str) -> bool:i, j 0, 0 # i 指向 s,j 指向 twhile i < len(s) and j < len(t):if s[i] t[j]:i 1j 1return i len(s)...
【Verdi实用技巧-Part2】
Verdi实用技巧-Part2 2 Verdi实用技巧-Part22.1 Dump波形常用的task2.1.1 Frequently Used Dump Tasks2.1.2 Demo 2.2 提取波形信息小工具--FSDB Utilities2.3 Debug in Source code view2.3.1 Find Scopes By Find Scope form 2.3.2 Go to line in Souce code View2.3.3 Use B…...
常用的AT命令,用于查看不同类型的网络信息
文章目录 1. ATCSQ:2. ATCREG:3. ATCOPS:4. ATCGATT:5. ATCGPADDR: 在AT命令集中,用于查看网络信息的命令有多种,具体取决于所使用的设备和模块。以下是一些常用的AT命令࿰…...
【应用篇】09.实现简易的Shell命令行解释器
一、shell和bash的关系 shell是命令解释器,它接收用户的命令并将其传递给内核去执行。bash,即GNU Bourne-Again Shell,是shell的一种实现方式,也是大多数linux系统下默认的shell。 bash的原理 大多数的指令进程(除了内建命令&…...
负载均衡技术【内网去外网运营商出口负载均衡】
1 负载均衡概述 LB(Load Balance,负载均衡)是一种集群技术,它将特定的业务(网络服务、网络流量等)分担给多台网络设备(包括服务器、防火墙等)或多条链路,从而提高了业务…...
【广西乡镇界】arcgis格式shp数据乡镇名称和编码2020年内容测评
【广西乡镇界】arcgis格式shp数据乡镇名称和编码2020年内容测评...
半导体数据分析: 玩转WM-811K Wafermap 数据集(一) AI 机器学习
在半导体行业,工程师依靠 CP Yield(生产过程中芯片的合格率)、WAT(晶圆验收测试)和 Particle 的晶圆图模式来识别工艺问题。然而,在没有人工干预的情况下将这些晶圆图模式分类是一项重大挑战。许多论文都研…...
mongodb安装并设置用户验证登录
下载地址 https://www.mongodb.com/try/download/community-kubernetes-operator 偶数版是稳定版,基数版是开发版 ,对32位支持不好 --------------------------------CentOS下安装mongodb--------------------------------------------------- 解压安装包…...
《零基础Go语言算法实战》【题目 1-16】字符串的遍历与比较
《零基础Go语言算法实战》 【题目 1-16】字符串的遍历与比较 给出两个字符串,请编写程序以确定能否将其中一个字符串重新排列后变成另一个字符串, 并规定大小写是不同的字符,空格也作为字符考虑。保证两个字符串的长度小于或等于 5000。 …...
VUE3封装一个Hook
在 Vue 3 中,Composition API 让我们能够封装和复用代码逻辑,尤其是通过 setup 函数进行组件间的复用。为了提高代码的可复用性,我们可以把一些常见的 API 请求和状态管理逻辑封装到一个单独的 hook 中。 以下是一个简单的例子,我…...