板凳-------Mysql cookbook學習 (十二--------4)

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日發…