11.0 概述 386
11.1 使用LOAD DATA和mysqlimport导入数据 390

首先创建 mytbl_3 表(结构与 mytbl 相同):sql
CREATE TABLE mytbl_3 LIKE mytbl;用文本编辑器(如 Notepad++)打开 mytbl.txt,确保格式转换成window
mysql> TRUNCATE TABLE mytbl_3;
Query OK, 0 rows affected (0.09 sec)mysql>
mysql> LOAD DATA LOCAL INFILE 'D:\\sql\\MySQL_cookbook\\mysqlcookbook-master\\recipes\\transfer\\load-examples\\mytbl.txt'INTO TABLE mytbl_3-> FIELDS TERMINATED BY ':'-> LINES TERMINATED BY '\n'-> (@col1, @col2)-> SET col1 = IF(@col1 REGEXP '^".*"$',->               TRIM(BOTH '"' FROM REPLACE(@col1, '""', '"')),->               @col1),->     col2 = IF(@col2 REGEXP '^".*"$',->               TRIM(BOTH '"' FROM REPLACE(@col2, '""', '"')),->               @col2);
Query OK, 4 rows affected (0.01 sec)
Records: 4  Deleted: 0  Skipped: 0  Warnings: 0mysql> select * from mytbl_3;
+------+-------+
| col1 | col2  |
+------+-------+|bc  | def|hi  | jkl| n  | o p|m"n  | o"p"
+------+-------+
4 rows in set (0.00 sec)TRUNCATE TABLE mytbl;  -- 清空表数据
C:\Users\lenovo>mysqlimport -u cbuser -p --local --fields-terminated-by=":" --fields-optionally-enclosed-by="\"" --fields-escaped-by="\"" --lines-terminated-by="\r\n" cookbook "D:\sql\MySQL_cookbook\mysqlcookbook-master\recipes\transfer\load-examples\mytbl.txt"
Enter password: ******
cookbook.mytbl: Records: 4  Deleted: 0  Skipped: 0  Warnings: 0C:\Users\lenovo>mysql -u cbuser -p
Enter password: ******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 63
Server version: 8.0.40 MySQL Community Server - GPLCopyright (c) 2000, 2024, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> use cookbook
Database changed
mysql> select * from mytbl;
+------+------+
| col1 | col2 |
+------+------+
| abc  | def  |
| ghi  | jkl  |
| m n  | o p  |
| m"n  | o"p  |
+------+------+
4 rows in set (0.00 sec) 
成功的关键是:
正确设置了 字段分隔符(--fields-terminated-by=":"),匹配文件中的冒号分隔。
正确处理了 引号转义(--fields-optionally-enclosed-by="\"" 和 --fields-escaped-by="\""),解决了双引号的解析问题。
匹配了 Windows 系统的 行终止符(--lines-terminated-by="\r\n"),避免了空行和错位。
Windows 命令行的换行续符 ^ 需要放在每行末尾,且不能有多余的空格。mysql> describe weatherdata;
+---------+-----------------------------------------------------------+------+-----+---------+-------+
| Field   | Type                                                      | Null | Key | Default | Extra |
+---------+-----------------------------------------------------------+------+-----+---------+-------+
| station | int unsigned                                              | NO   | PRI | NULL    |       |
| type    | enum('precip','temp','cloudiness','humidity','barometer') | NO   | PRI | NULL    |       |
| value   | float                                                     | YES  |     | NULL    |       |
+---------+-----------------------------------------------------------+------+-----+---------+-------+
3 rows in set (0.01 sec)执行命令
sql
TRUNCATE TABLE weatherdata;执行后,表中的 15 条记录会被全部删除,且无法恢复(这一点和 DELETE FROM weatherdata; 不同,DELETE 可以通过事务回滚恢复,TRUNCATE 不行)。
3. 替代方案:DELETE
如果需要更灵活的删除(比如条件删除,或保留事务回滚的可能),可以用 DELETEsql
-- 删除所有数据(可以回滚,速度比 TRUNCATE 慢,适合小表)
DELETE FROM weatherdata;两者的主要区别:特性	TRUNCATE TABLE	DELETE FROM
速度	快(直接清空表,不记录日志)	慢(逐行删除,记录日志)
事务回滚	不可回滚(部分数据库支持,MySQL 中一般不可回滚)	可回滚(在事务中执行时)
自增计数器	重置	不重置
适用场景	彻底清空大表,无需恢复	条件删除或需要回滚的场景C:\Users\lenovo>mysql -u cbuser -p --local-infile=1
Enter password: ******Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> use cookbook;
Database changed
mysql> LOAD DATA LOCAL INFILE 'D:\\sql\\MySQL_cookbook\\mysqlcookbook-master\\recipes\\transfer\\load-examples\\data.txt'-> REPLACE INTO TABLE weatherdata-> FIELDS TERMINATED BY ','  -- 假设分隔符为逗号,根据实际情况修改(如'\t'表示制表符)-> LINES TERMINATED BY '\r\n'  -- Windows 换行符-> (station, type, value);  -- 明确指定字段顺序(需与文件列顺序一致)
Query OK, 15 rows affected (0.01 sec)
Records: 15  Deleted: 0  Skipped: 0  Warnings: 0mysql> select * from weatherdata;
+---------+------------+--------+
| station | type       | value  |
+---------+------------+--------+
|       1 | precip     |   10.5 |
|       1 | temp       |   25.3 |
|       1 | cloudiness |    0.7 |
|       1 | humidity   |   65.2 |
|       1 | barometer  | 1013.2 |
|       2 | precip     |    5.2 |
|       2 | temp       |   18.7 |
|       2 | cloudiness |    0.9 |
|       2 | humidity   |   72.5 |
|       2 | barometer  | 1008.5 |
|       3 | precip     |      0 |
|       3 | temp       |   32.1 |
|       3 | cloudiness |    0.2 |
|       3 | humidity   |     35 |
|       3 | barometer  | 1020.1 |
+---------+------------+--------+
15 rows in set (0.00 sec)mysql> -- 先清空表
mysql> TRUNCATE TABLE mess_1;
Query OK, 0 rows affected (0.08 sec)mysql>
mysql> -- 执行导入,将 @state_abbrev 原始值存入 st_abbrev
mysql> LOAD DATA LOCAL INFILE 'D:\\sql\\MySQL_cookbook\\mysqlcookbook-master\\recipes\\transfer\\load-examples\\datamess.txt'-> INTO TABLE mess_1-> IGNORE 1 LINES-> (@date, @time, @name, @weight_lb, @state_abbrev)-> SET->   dt = CONCAT(@date, ' ', @time),->   first_name = SUBSTRING_INDEX(@name, ' ', 1),->   last_name = SUBSTRING_INDEX(@name, ' ', -1),->   weight_kg = @weight_lb * 0.454,->   st_abbrev = @state_abbrev;  -- 直接存入原始值,不查询 states 表
Query OK, 9 rows affected, 18 warnings (0.01 sec)
Records: 9  Deleted: 0  Skipped: 0  Warnings: 18mysql>
mysql> -- 查看原始州缩写值
mysql> SELECT->   CONCAT(first_name, ' ', last_name) AS full_name,->   st_abbrev AS original_state_abbrev,->   (SELECT name FROM states WHERE UPPER(TRIM(abbrev)) = UPPER(TRIM(st_abbrev))) AS matched_state_name-> FROM mess_1;
+-------------------+-----------------------+--------------------+
| full_name         | original_state_abbrev | matched_state_name |
+-------------------+-----------------------+--------------------+
| Mary Mary         | CA                    | California         |
| David David       | TX                    | Texas              |
| Emily Emily       | FL                    | Florida            |
| Michael Michael   | IL                    | Illinois           |
| Sarah Sarah       | PA                    | Pennsylvania       |
| James James       | OH                    | Ohio               |
| Lisa Lisa         | MX                    | NULL               |
| Robert Robert     | WA                    | Washington         |
| Patricia Patricia | CO                    | Colorado           |
+-------------------+-----------------------+--------------------+
9 rows in set (0.00 sec)mysql> select * from mess_1;
+---------------------+-----------+------------+-----------+-----------+
| dt                  | last_name | first_name | weight_kg | st_abbrev |
+---------------------+-----------+------------+-----------+-----------+
| 2023-02-20 14:15:00 | Mary      | Mary       |   25.5148 | CA        |
| 2023-03-05 09:45:00 | David     | David      |   31.6892 | TX        |
| 2023-04-10 16:20:00 | Emily     | Emily      |   28.2842 | FL        |
| 2023-05-18 11:00:00 | Michael   | Michael    |   37.2734 | IL        |
| 2023-06-22 13:30:00 | Sarah     | Sarah      |   27.1038 | PA        |
| 2023-07-08 07:50:00 | James     | James      |   34.2316 | OH        |
| 2023-08-15 15:10:00 | Lisa      | Lisa       |   29.4646 | MX        |
| 2023-09-30 10:25:00 | Robert    | Robert     |   36.4108 | WA        |
| 2023-10-05 17:40:00 | Patricia  | Patricia   |   26.6044 | CO        |
+---------------------+-----------+------------+-----------+-----------+
9 rows in set (0.00 sec)

11.2 导入CSV文件 401

在mysql中导入csv文件。在数据库中输入如下命令: Mysql>load data infile "文件路径\X.csv"
into table table-name 
/*如果csv文件包含中文,添加"character set gb2313"*/
fields terminated by ',' optionally enclosed by '"' escaped by '"'
lines terminated by '\r\n'
注:出现过所有数据进入同一列的情况,上述代码去掉最后一行,导入正常了。

11.3 导出MYSQL的查询结果

mysql> SHOW VARIABLES LIKE 'secure_file_priv';
+------------------+---------------------------------+
| Variable_name    | Value                           |
+------------------+---------------------------------+
| secure_file_priv | D:\software\MySql\Data\Uploads\ |
+------------------+---------------------------------+
1 row in set, 1 warning (0.02 sec)mysql> SELECT * FROM passwd-> INTO OUTFILE 'D:/software/MySql/Data/Uploads/passwd.txt'  -- 使用 MySQL 允许的路径-> FIELDS TERMINATED BY '\t'  -- 可选:指定字段分隔符(如制表符)-> LINES TERMINATED BY '\r\n';  -- Windows 换行符
Query OK, 58 rows affected (0.01 sec)当你以 root 身份执行这个命令时:bash
mysql -u root -p -e "select account, shell from passwd" --skip-column-names cookbook > shells.txt
生成的 shells.txt 文件会保存在 当前命令行的工作目录 下。 C:\Users\lenovo> 如果需要指定保存到其他目录(如桌面),可以在文件名前加上完整路径,例如:
bash
mysql -u root -p -e "select account, shell from passwd" --skip-column-names cookbook > "C:\Users\lenovo\Desktop\shells.txtC:\Users\lenovo>mysql --skip-column-names -e "SELECT * FROM city" -u cbuser -p cookbook
Enter password: ******
+----------------+----------------+----------------+
|        Alabama | Montgomery     | Birmingham     |
|         Alaska | Juneau         | Anchorage      |
|        Arizona | Phoenix        | Phoenix        |
|       Arkansas | Little Rock    | Little Rock    |
|     California | Sacramento     | Los Angeles    |
|       Colorado | Denver         | Denver         |
|    Connecticut | Hartford       | Bridgeport     |
|       Delaware | Dover          | Wilmington     |
|        Florida | Tallahassee    | Jacksonville   |
|        Georgia | Atlanta        | Atlanta        |
|         Hawaii | Honolulu       | Honolulu       |
|          Idaho | Boise          | Boise          |
|       Illinois | Springfield    | Chicago        |
|        Indiana | Indianapolis   | Indianapolis   |
|           Iowa | Des Moines     | Des Moines     |
|         Kansas | Topeka         | Wichita        |
|       Kentucky | Frankfort      | Louisville     |
|      Louisiana | Baton Rouge    | New Orleans    |
|          Maine | Augusta        | Portland       |
|       Maryland | Annapolis      | Baltimore      |
|  Massachusetts | Boston         | Boston         |
|       Michigan | Lansing        | Detroit        |
|      Minnesota | St. Paul       | Minneapolis    |
|    Mississippi | Jackson        | Jackson        |
|       Missouri | Jefferson City | Kansas City    |
|        Montana | Helena         | Billings       |
|       Nebraska | Lincoln        | Omaha          |
|         Nevada | Carson City    | Las Vegas      |
|  New Hampshire | Concord        | Manchester     |
|     New Jersey | Trenton        | Newark         |
|     New Mexico | Santa Fe       | Albuquerque    |
|       New York | Albany         | New York City  |
| North Carolina | Raleigh        | Charlotte      |
|   North Dakota | Bismarck       | Fargo          |
|           Ohio | Columbus       | Columbus       |
|       Oklahoma | Oklahoma City  | Oklahoma City  |
|         Oregon | Salem          | Portland       |
|   Pennsylvania | Harrisburg     | Philadelphia   |
|   Rhode Island | Providence     | Providence     |
| South Carolina | Columbia       | Columbia       |
|   South Dakota | Pierre         | Sioux Falls    |
|      Tennessee | Nashville      | Memphis        |
|          Texas | Austin         | Houston        |
|           Utah | Salt Lake City | Salt Lake City |
|        Vermont | Montpelier     | Burlington     |
|       Virginia | Richmond       | Virginia Beach |
|     Washington | Olympia        | Seattle        |
|  West Virginia | Charleston     | Charleston     |
|      Wisconsin | Madison        | Milwaukee      |
|        Wyoming | Cheyenne       | Cheyenne       |
+----------------+----------------+----------------+打开 PowerShell(按下 Win + X 选择 “Windows PowerShell”),执行以下命令:
PS C:\Users\lenovo> mysql -u cbuser -p -N -e "SELECT * FROM city" cookbook | ForEach-Object { $_ -replace "`t", '#' } > "C:\Users\lenovo\city.txt"
Enter password: ******
PS C:\Users\lenovo>
命令解释
mysql -u cbuser -p -N -e "SELECT * FROM city" cookbook:
-N 等价于 --skip-column-names,不显示列名。
执行查询并输出结果(默认用制表符 Tab 分隔字段)。
ForEach-Object { $_ -replace "t", '#' }`:
PowerShell 的文本替换功能,将制表符 Tab(\t 在 PowerShell 中用 `t 表示)替换为 #。
> "C:\Users\lenovo\city.txt":
将处理后的结果保存到 city.txt,文件位于 C:\Users\lenovo\ 目录(即你的用户主目录)。

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

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

相关文章

【Git#6】多人协作 企业级开发模型

一、多人协作 1. 同一分支下的协作 目前,我们所完成的工作如下: 基本完成 Git 的所有本地库的相关操作,git基本操作,分支理解,版本回退,冲突解决等等申请码云账号,将远端信息clone到本地&…

C# 中的强大运算符

C# 中鲜为人知的强大运算符 C# 还提供了一些"冷门"但功能强大的运算符,这些运算符在特定场景下能极大简化代码并提高效率。 1. 空合并赋值运算符 ?? // 传统写法 if (variable null) {variable defaultValue; }// 使用 ?? variable ?? defaultVal…

用window字体替换zabbix 默认的字体

我们先需要在windows系统下的C:\Windows\Fonts目录,找到一个喜欢的字体,我选择的是微软雅黑。复制到其它路径下,选取一个msyh.ttc。到服务器上。要把msyh.ttc改为msyh.ttf才可以。不然最后中英文都不显示[roothadoop105.yinzhengjie.com ~]# …

MySQL 17 如何正确地显示随机消息?

假设有一个场景,一个英语学习APP首页有一个随机显示单词的功能,用户每次访问首页的时候,都会随机滚动显示三个单词。 已知表里有10000条记录,来看看随机选择3个单词有什么方法,又存在什么问题。 建表语句&#xff1a…

7-Zip 曝出两个可导致拒绝服务的中危漏洞

研究人员在全球使用最广泛的开源文件压缩软件7-Zip中新发现两个漏洞(CVE-2025-53816和CVE-2025-53817)。这两个漏洞影响7-Zip 25.0.0之前的所有版本,虽然不能实现远程代码执行,但可能引发内存损坏和拒绝服务(Denial of…

史上最简单Conda+Ollama+Open-Webui安装方法!

史上最简单CondaOllamaOpen-Webui安装方法 一、安装Anaconda 1、到Anaconda官网下载conda_24.10.1 链接:https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Windows-x86_64.exe 2.双击安装包,开始安装 选择All Users 切记安装路径不要选C盘&am…

Python-数据库概念-pymysql-元编程-SQLAlchemy-学习笔记

序 欠4前年的一份笔记 ,献给今后的自己。 数据库 概念 数据库:按照数据结构来组织、存储、管理数据的仓库。 诞生 计算机的发明是为了做科学计算的,而科学计算需要大量的数据输入和输出。 早期,可以使用打孔卡片的孔、灯泡的亮灭来…

Linux入门篇学习——借助 U 盘或 TF 卡拷贝程序到开发板上

借助 U 盘或 TF 卡拷贝程序到开发板上我们已经学习了怎么在 ubuntu 和 windows 上互传文件,那么怎么把 ubuntu 或 win 上的程序拷贝到开发板呢,这里给大家介绍第一种方法,使用 U 盘或者 TF 卡来完成,如果大家使用的是 U 盘&#x…

【亲测有效】防检测插件playwright_stealth 2.X版本快速使用

这里写自定义目录标题核心方法apply_stealth_syncuse_sync和use_async一. playwright_stealth 2.0以上版本1.同步方法2.异步方法3.实例二.playwright_stealth 2.0以下版本playwright-stealth 是一个用于 Playwright 的库,旨在帮助自动化脚本避开一些检测机制&#x…

docker安装与简单项目上手

1.docker安装 系统版本为almalinux9.6 首先添加一下docker的软件安装源(源选择的阿里云,只要是rhel的系统都适用,无论是rockylinux还是almalinux还是红帽企业版) dnf config-manager --add-repo https://mirrors.aliyun.com/doc…

计算机网络基础:从协议到通信全解析(大致框架)

本节重点:1.了解网络发展背景,对局域网/广域网的概念有基本认识2.了解网络协议的意义,重点理解TCP/IP五层结构模型3.学习网络传输的基本流程,理解封装和解包分用一、计算机网络发展背景:人与人之间是需要协同工作的&am…

PDF 编辑器:多文件合并 拆分 旋转 顺序随便调 加水印 密码锁 页码背景

各位打工人、学生党们,你们是不是也遇到过这种情况,领导甩来一个PDF让你改,结果你捣鼓半天,发现这玩意儿根本动不了,简直想原地爆炸!别急别急,今天就给你们安利一个办公软件——PDF编辑器&#…

【软件基础学习配置那些事 4-3】3ds Max2026 菜单栏常用命令-----文件、视图、编辑、工具、组

3ds Max学习的笔记小知识!!!!!!!!后续都会补充添加!!!!(个人的一些学习笔记,如有不对,欢迎订正&am…

网络爬虫的介绍

网络爬虫库网络爬虫通俗来讲就是使用代码将HTML网页的内容下载到本地的过程。爬取网页主要是为了获取网中的关键信息,例如网页中的数据、图片、视频等。Python语言中提供了多个具有爬虫功能的库,下面将具的介绍。urlib库:是Python自带的标准库&#xff0…

C# 编程实战进阶:字符串与字符串数组 (3)

目录 1、给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 2、无重复字符的最长字符串 ,给定一个字符串 s 请你找出其中不含有重复字符的最长字符串的长度。 3、给定两个字符串 s 和 t ,它们只包含小…

Python趣味算法:百钱百鸡问题——双重循环优化与算法效率分析

如何用Python解决中国古代数学难题?本文从暴力枚举到高效优化,带你领略算法之美,效率提升100倍! 看在每天坚持分享有趣知识的份上,点个关注吧(づ ̄ 3 ̄)づ 关注是我更新的动力 ̄︶ ̄∗ ̄︶ ̄∗) 作者会分享更多涉及到各种编程语言的有趣知识!(^∀^●)ノシ 目录 …

JAVA_TWO-初识Java2

1.IDEA管理Java程序的结构2.idea编译后的class文件在哪在工程out文件夹下。3.idea一些快捷键4.导入模块File→New→Module from Existing Sources → 添加后缀.iml文件5.注释单行注释 //多行注释 /* 注释内容1注释内容2 */文档注释 /** 注释内容 */ (文档注释内容可…

二、Dify 版本升级教程(LInux-openeuler)

首先,你需要先按照好dify,然后才能升级,本文教程是基与Docker Compose 如果你还没有安装,可以看看这个教程。 一、Dify 私有部署、本地安装教程(LInux-openeuler)_dify1.5版本部署-CSDN博客 安装完成后&a…

Java 大视界 -- Java 大数据在智能安防门禁系统中的多生物特征融合识别与权限管理(280)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也期待你毫无保留地分享独特见解,愿我们于此携手成长,共赴新程!💖 本博…

【Tools】Ubuntu24.04安装详细教程

00. 目录 文章目录00. 目录01. Ubuntu 24.04简介02. Ubuntu 24.04下载03. Ubuntu 24.04虚拟机创建04. Ubuntu 24.04安装步骤05. Ubuntu 24.04常用软件06. 附录01. Ubuntu 24.04简介 Ubuntu 24.04 LTS(代号“Noble Numbat”)是Canonical于2024年4月25日发…