mysql 命令行批量sql_命令行中執行批量SQL的方法

基礎信息介紹

測試庫:test;

測試表:user;

user表定義:

CREATE TABLE `user` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`name` char(30) NOT NULL,

`age` int(11) NOT NULL,

`gender` tinyint(1) DEFAULT '1' COMMENT '性別:1男;2女',

`addr` char(30) NOT NULL,

`status` tinyint(1) DEFAULT '1',

PRIMARY KEY (`id`),

KEY `idx` (`name`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

希望一次性執行的命令如下:

# 指定數據庫

use test;

# 清空user表

truncate table user;

# 插入若干條數據

insert into user

(id, name, age, gender, addr, status)

values

(1, 'a', 1, 1, 'beijing', 1),

(2, 'a', 1, 1, 'beijing', 1),

(3, 'a', 1, 1, 'beijing', 1),

(4, 'a', 1, 1, 'beijing', 1),

(5, 'a', 1, 1, 'beijing', 1);

# 刪除一條數據

delete from user where id=4;

# 修改一條數據

update user set status=0 where id=5;

# 查看所有記錄

select * from user;

接下來就用下面列舉的3種方式,在命令行中一次性執行上面的sql。

方式1:登錄mysql后source

將要執行的sql保存到一個文件中,我這里將其命名為command.sql,命名隨意,后綴.sql是為了便于識別是sql代碼,也可以執行其他的比如.txt或者.cmd,與此同時我將command.sql保存到/tmp目錄下。

登錄進入mysql,然后使用source命令,參數就是保存sql的文件絕對路徑,sql文件的保存路徑沒有特殊要求,只要通過路徑找到文件即可;

下面是示例:

# 登錄到mysql

$ mysql -uroot -p

Enter password:

......

# 使用source命令,指定sql文件所在的絕對路徑

mysql> source /tmp/command.sql

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

Query OK, 0 rows affected (0.00 sec)

Query OK, 5 rows affected (0.00 sec)

Records: 5 Duplicates: 0 Warnings: 0

Query OK, 1 row affected (0.00 sec)

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

+----+------+-----+--------+---------+--------+

| id | name | age | gender | addr | status |

+----+------+-----+--------+---------+--------+

| 1 | a | 1 | 1 | beijing | 1 |

| 2 | a | 1 | 1 | beijing | 1 |

| 3 | a | 1 | 1 | beijing | 1 |

| 5 | a | 1 | 1 | beijing | 0 |

+----+------+-----+--------+---------+--------+

4 rows in set (0.00 sec)

mysql>

方式2:mysql -u -p < command.sql

先將要執行的sql保存到文件中,此處仍為/tmp/command.sql;

$ mysql -uroot -p < /tmp/command.sql

Enter password:

idnameagegenderaddrstatus

1a11beijing1

2a11beijing1

3a11beijing1

5a11beijing0

方式3:cat command.sql | mysql -u -p

這種方式其實等價于方式二,先將要執行的sql保存到文件中,此處仍為/tmp/command.sql;

$ cat /tmp/command.sql | mysql -uroot -p

Enter password:

idnameagegenderaddrstatus

1a11beijing1

2a11beijing1

3a11beijing1

5a11beijing0

命令行顯式指定操作的數據庫

對于方式2和方式3來說,需要在sql文件中指定操作的數據庫,如果想要在命令行中指定數據庫,可以在命令行中增加數據庫名:

# 指定對test數據庫進行操作

$ mysql -uroot -p test < /tmp/command.sql

Enter password:

idnameagegenderaddrstatus

1a11beijing1

2a11beijing1

3a11beijing1

5a11beijing0

雖然命令行指定了數據庫,但是sql文件中仍可以進行數據庫的切換,所以不建議在命令行中指定操作的數據庫。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540070.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540070.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540070.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql雙主數據一致性_MySQL雙主一致性架構優化 | 架構師之路-阿里云開發者社區...

一、雙主保證高可用MySQL數據庫集群常使用一主多從&#xff0c;主從同步&#xff0c;讀寫分離的方式來擴充數據庫的讀性能&#xff0c;保證讀庫的高可用&#xff0c;但此時寫庫仍然是單點。在一個MySQL數據庫集群中可以設置兩個主庫&#xff0c;并設置雙向同步&#xff0c;以冗…

spool導出姓名中文亂碼_MySQL不同字符集轉化標準—7步實現,杜絕亂碼!

引言作為資深的DBA程序員&#xff0c;在工作中是否會遇到更這樣的情況呢&#xff1f;原有數據庫的字符集由于前期規劃不足&#xff0c;隨著業務的發展不能滿足業務的需求。如原來業務系統用的是utf8字符集&#xff0c;后期有存儲表情符號的需求&#xff0c;uft8字符集就不能滿足…

appium和airtest_關于Airtest自動化測試工具

一開始知道Airtest大概是在年初的時候&#xff0c;當時&#xff0c;看了一下官方的文檔&#xff0c;大概是類似Sikuli的一個工具&#xff0c;主要用來做游戲自動化的&#xff0c;通過截圖的方式用來解決游戲自動化測試的難題。最近&#xff0c;移動端測試的同事嘗試用它的poco庫…

easyexcel 設置標題_使用easyexcel完成復雜表頭及標題的導出功能(自定義樣式)

如需客戶端指定excel版本,只需要判斷后綴名然后在controller中的.excelType(ExcelTypeEnum.XLS)做指定輸出內容格式即可***(注意表格行高列寬統一設置是在實體類的類名注解上,如果需要對表格進行精細的寬高設置需要刪除掉這兩個注解,可以在攔截器使用row的方法進行設置)1. ## 引…

mysql distinct兩列_正在檢索兩列,并對MySQL中的每列應用“distinct”

這是一張桌子books----------------------------| author_fname | author_lname |----------------------------| Dan | Harris || Freida | Harris || George | Saunders |----------------------------我知道如果DISTINCT用作SELECT DISTINCT author_fname, author_lname FRO…

mysql笛卡爾積 去重_MySQL入門(函數、條件、連接)

MySQL入門(四)distinct&#xff1a;去重mysql>:create table t1(id int,x int,y int);mysql>: insert into t1 values(1, 1, 1), (2, 1, 2), (3, 2, 2), (4, 2, 2);mysql>: select distinct * from t1; # 全部數據mysql>: select distinct x, y from t1; # 結果 1,…

nmon安裝為什么重啟mysql_Nmon的安裝及使用

一、下載Nmon根據CPU的類型選擇下載相應的版本&#xff1a;二、初始化工具[rootmululu ~]# cd /opt[rootmululu opt]# mkdir nmon[rootmululu opt]# cd nmon[rootmululu nmon]#wget http://sourceforge.net/projects/nmon/files/download/nmon_x86_12a.zip[rootmululu nmon]# u…

mysql join 循環_關于mysql聯表的內嵌循環操作nested loop join中on和where執行順序問題...

mysql的理論依據沒找到&#xff0c;個人理解是先執行where的過濾條件&#xff0c;先關聯再過濾明顯做的是無用功。oracle中倒是能在執行計劃中看到&#xff0c;先執行的是過濾條件(下面代碼中最后一行)。explain plan for SELECT * FROM tmp_t2 t2 LEFT JOIN tmp_t1 t1 ON t2.i…

python非法語句是_python 如何優雅的處理大量異常語句?

bs4的鏈式調用很贊&#xff0c;所以我把soup包裝了一下class MY_SOUP():包裝類def __init__(self,soup):self.soup soupif soup:if soup.string:self.string soup.string.strip()else:self.string Noneelse:self.string Nonedef find(self, *args, **kw):ret self.soup.fi…

Iptables詳解+實例

2019獨角獸企業重金招聘Python工程師標準>>> Iptabels是與Linux內核集成的包過濾防火墻系統&#xff0c;幾乎所有的linux發行版本都會包含Iptables的功能。如果 Linux 系統連接到因特網或 LAN、服務器或連接 LAN 和因特網的代理服務器&#xff0c; 則Iptables有利于…

django ipython shell_通過django的shell_plus編寫ipython腳本

Im writing a shell script which runs a command through ipython with the -c option like this:我正在編寫一個shell腳本&#xff0c;它通過ipython運行一個命令&#xff0c;使用-c選項&#xff0c;如下所示:ipython -c "from blah import myfunct; myfunct()"but…

阿里云服務器安裝onlyoffice_阿里云服務器安裝 JDK 8

歡迎關注“科技毒瘤君”&#xff01;上一期給大家分享了如何申請阿里云的免費云服務器&#xff0c;還沒有看過的小伙伴可以先前往了解 >>阿里云免費服務器<<這一次將會為大家分享如何在服務器上配置 Java環境&#xff0c;這里演示使用的系統為Ubuntu 18.04 64位&am…

js發送請求

1.Chrome控制臺中 net::ERR_CONNECTION_REFUSED js頻繁發送請求&#xff0c;有可能連接被拒絕&#xff0c;可用setTimeout&#xff0c;過幾秒發送&#xff0c;給個緩沖時間 var overlayAnalystService L.supermap.spatialAnalystService(serviceUrl); setTimeout(function () …

據說有99%的人都會做錯的面試題

這道題主要考察了面試者對浮點數存儲格式的理解。另外&#xff0c;請不要討論該題本身是否有意義之類的話題。本題只為了測試面試者相關的知識是否掌握&#xff0c;題目本身并沒有實際的意義。 下面有6個浮點類型變量&#xff0c;其中前三個是float類型的&#xff0c;后三個是d…

php使用mysql5和8的區別_mysql8.0和mysql5.7的區別是什么?

區別&#xff1a;mysql8.0的索引可以被隱藏和顯示&#xff0c;當一個索引隱藏時&#xff0c;他不會被查詢優化器所使用&#xff1b;2、mysql8.0新增了“SET PERSIST”命令&#xff1b;3、從mysql8.0開始&#xff0c;數據庫的缺省編碼將改為utf8mb4&#xff0c;包含了所有emoji字…

mysql pt check sum_percona工具pt-table-checksum

利用pt-table-checksum進行數據庫同步檢查rpm方式#wget percona.com/get/percona-toolkit.rpm源碼方式#wget http://www.percona.com/downloads/percona-toolkit/2.2.1/percona-toolkit-2.2.8.tar.gz#yum install perl perl-CPAN perl-DBD-MySQL perl-Time-HiRes解壓&#xff0…

如何通過BBED找回刪除數據

項目案例&#xff1a;客戶刪除delete了重要數據&#xff0c;無備份&#xff0c;客戶聯系我&#xff0c;要求恢復相應數據。本次通過實驗方式重現客戶現場。備份高于一切&#xff0c;首先備份&#xff0c;再操作 創建表格&#xff1a; create table king(age number,name varcha…

mysql 重置密碼語音_數字語音信號處理學習筆記語音信號的同態處理(2)

5.4 復倒譜和倒譜 定義 設信號x(n)的z變換為X(z) z[x(n)]&#xff0c;其對數為&#xff1a; (1) 那么 的逆z變換可寫成&#xff1a; (2) 取 (1)式則有 (3) 于是式子(2)則可以寫成 (4) 則式子(4)即為信號x(n)的復倒譜 的定義。因為 一般為復數&#xff0c;故稱 為復倒譜。如果對…

NFS 八步神曲

Server:第一步yum install - y nfs*第二步vi /etc/exports第三步/var/testdirs *(rw,all_squash,anonuid99,anongid99,sync)第四步service nfs start第五步chkconfig --level 35 nfs on Client第一步mount 192.168.1.X:/var/www/testdirs /var/www/testdirs第二步vi /et…