教程——利用 Excel 批量生成 SQL 语句,快速更新学院拆分后的学生信息

利用 Excel 批量生成带动态参数的标准化文本(如 SQL、命令、代码等)

需求:

  • 最近青队负责人表示学院被拆分成:
1
2
3
信息科学与工程学院(人工智能学院)-> 人工智能与自动化学院 + 电子信息学院

材料与冶金学院 -> 材料学部 + 冶金与能源学院

​ 这个样子了

  • 需要把原学院的人的学院改到新学院:改学号对应的college_id从旧的变成新的
  • 他们把需要改动的人员名单发给我们了,是Excel格式

解决办法1

要在 Excel 中生成批量修改学院的 SQL 语句,可按照以下步骤操作:

步骤 1:理解需求与公式逻辑

我们需要利用 Excel 的字符串拼接功能,将固定 SQL 模板与 “学号”(A 列)动态结合,生成每条数据对应的 SQL 语句。

公式 =("UPDATE student_info SET college_id = "&189&" WHERE student_num = '"&A2&"';") 的作用是:

  • 固定部分:UPDATE student_info SET college_id = 189 WHERE student_num = '
  • 动态部分:A2(对应行的学号)
  • 拼接后生成完整 SQL 语句。

步骤 2:操作流程(以你的表格为例)

1. 确定 SQL 列的位置

观察表格,K 列是用于存放 SQL 语句的列。

2. 输入公式并批量填充

  • 点击 K2 单元格(与第一条数据行对齐)。

  • 输入公式:

    1
    ="UPDATE student_info SET college_id = 189 WHERE student_num = '"&A2&"';

    (注意:公式中的引号和符号需为英文半角,避免中文符号导致错误)。

  • 按下 Enter 键,K2 单元格会生成第一条 SQL 语句。

  • 批量填充公式:将鼠标指针移到 K2 单元格右下角的小方块(填充柄),当指针变为十字形时,按住左键向下拖动,直到覆盖所有数据行。Excel 会自动将公式中的 A2 依次替换为 A3A4…… 生成每条数据对应的 SQL 语句。

image-20251103134758012

步骤 3:验证与使用

生成 SQL 后,可复制 K 列的所有语句,直接在数据库工具(如 Navicat、MySQL Workbench 等)中执行,即可批量更新学生的学院 ID。(我是直接在IDEA里面连接数据库在默认控制台输入的这些复制的语句)

image-20251103133943140

image-20251103134930524

补充说明

  • 若 “college_id” 或 SQL 模板需要调整,只需修改公式中的对应部分(如把 189 改成其他 ID,或调整表名、字段名)。
  • 此方法利用 Excel 的 “公式自动填充” 特性,可快速生成大量标准化 SQL,大幅提升批量操作效率。

解决办法2

直接数据库查询,然后统一整列替换college_id

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
SELECT * FROM student_info
WHERE student_num IN (
'202302409561', '202302409352', '202302409275', '202302409134', '202302409010',
'202302409380', '202302409560', '202302409150', '202302409411', '202302409282',
'202302409475', '202302409073', '202302409424', '202302409113', '202302409183',
'202314117005', '202302409508', '202302409293', '202302409523', '202302409336',
'202302409563', '202302409397', '202302409086', '202302409519', '202302409145',
'202302409310', '202302409215', '202302409160', '202302409314', '202302409217',
'202302409542', '202302409406', '202102409063', '202202409107', '202302409286',
'202202409223', '202302409120', '202302409319', '202302409165', '202302409356',
'202302409180', '202302409013', '202302409110', '202302409018', '202302409285',
'202302409414', '202323180004', '202302409114', '202302409265', '202302409006',
'202308405086', '202302409341', '202302409536', '202302409008', '202302409343',
'202302409373', '202302409506', '202302409212', '202302409515', '202302409087',
'202302409241', '202302409391', '202302409091', '202302409465', '202302409311',
'202302409433', '202302409538', '202302409551', '202302409378', '202202409127',
'202302409518', '202302409355', '202302409546', '202302409109', '202302409254',
'202305404057', '202302409422', '202302409001', '202302409092', '202302409517',
'202202409503', '202302409556', '202302409169', '202302409522', '202302409562',
'202302409232', '202302409400', '202302409483', '202302409032', '202302409482',
'202302409340', '202302409402', '202302409566', '202302409029', '202302409213',
'202302409104', '202302409477', '202302409147', '202302409131', '202302409415',
'202302409245', '202302409020', '202302409383', '202302409195', '202302409379',
'202302409387', '202302409250', '202302409401', '202302409320', '202302409533',
'202302409395', '202302409497', '202302409491', '202302409137', '202302409227',
'202302409557', '202202409032', '202302409208', '202302409065', '202302409302',
'202302409559', '202302409516', '202302409349', '202302409552', '202302409055',
'202302409403', '202302409548', '202302409539', '202202409521', '202302409034',
'202306414075', '202302409484', '202302409550', '202302409281', '202302409471',
'202202409330', '202302409229', '202302409202', '202302409394', '202302409553',
'202302409513', '202302409525', '202302409004', '202302409140', '202302409014',
'202302409381', '20230240268', '202302409434', '202202409541', '202302409300',
'202302409520', '202202409174', '202102409191', '202302409462', '202302409537',
'202302409075', '202302409076', '202302409082', '202302409527', '202302409530',
'202303401430', '202308405279', '202302409489', '202302409045', '202302409264',
'202302409335', '202302409295', '202302409084', '202302409171', '202302409239',
'202302409505', '202302409490', '202302409049', '202301417011', '202302409048',
'202302409564', '202302409541', '202302409177', '202302409463', '202302409041',
'202323411078', '202302409148', '202302409119', '202202409170'
);

image-20251103140130400