轉 mysql mysql命令行中執行sql的幾種方式總結


https://www.jb51.net/article/96394.htm

 

1.直接輸入sql執行

MySQL> select now();
+---------------------+
| now() |
+---------------------+
| 2013-09-18 13:55:45 |
+---------------------+
1 row in set (0.00 sec)

2.執行編寫好的sql腳本

mysql> source H:/1.sql
+---------------------+
| now() |
+---------------------+
| 2013-09-18 13:54:04 |
+---------------------+
1 row in set (0.00 sec)

3.select ...into outfile 方式執行sql

mysql> select now() into outfile 'h:/data/2.sql';
Query OK, 1 row affected (0.00 sec)

4.使用mysql命令執行

H:\>mysql -uaHmin -p -e "select now()"
Enter passworH: ****
+---------------------+
| now() |
+---------------------+
| 2013-09-18 13:57:09 |
+---------------------+

5.mysql命令執行sql,並將查詢結果保存到文本中

a)執行簡單sql

mysql -uaHmin -proot test -e "select now()" -N >H:/work/target1.txt
如果sql很長,這種方式就不是很適合了。

b)執行復雜sql

可以將復雜的sql事先編輯好,存放到文本中在執行。
H:\> mysql -uroot -pmypwH -h127.0.0.1 -p3306 test < H:/work/source.sql > H:/work/target.txt

將最后一種執行方式加上操作系統的定時任務,就可以在mysql中實現定時執行sql,並保存執行結果的目的了。

參考:官方文檔中的 3.5. Using mysql in Batch Mode
http://dev.mysql.com/doc/refman/5.6/en/batch-mode.html

以上就是小編為大家帶來的mysql命令行中執行sql的幾種方式總結全部內容了,希望大家多多支持腳本之家~

 

 

########

MySQL關於時間的一些查詢,查詢今天,昨天......

 

https://blog.csdn.net/weixin_41986096/article/details/80464008

##查詢最近的一條信息

SELECT column_name(s) FROM table_name WHERE column_name = pattern ORDER BY create_time DESC LIMIT 1;

在某些情況下,如果明知道查詢結果只有一個,SQL語句中使用LIMIT 1 會提高查詢效率,避免全表掃描。

 

##查詢今天

SELECT column_name(s) FROM table_name WHERE DATE_FORMAT( create_time,'%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d');

DATE_FORMAT()函數用於以不同的格式顯示日期/時間數據

DATE_FORMAT(date,format)

date參數是合法的日期。format規定日期/時間的輸出格式

NOW()函數返回當前的日期和時間

 

 

SELECT column_name(s) FROM table_name WHERE TO_DAYS(create_time) =TO_DAYS(NOW());

 

SELECT colum_name(s) FROM table_name WHERE DATE(create_time) =DATE(CURDATE());

DATE()提取日期或日期/時間表達式的日期部分

 

 

 

 

 

 

##查詢昨天

SELECT column_name(s) FROM table_name WHERE DATE_FORMAT( create_time,'%Y-%m-%d') = DATE_FORMAT(CURDATE()-1,'%Y-%m-%d');

SELECT column_name(s) FROM table_name WHERE DATE(create_time) =DATE(CURDATE()-1);

 

##輸出格式:2017-04-14

SELECT CURDATE();

 

##輸出格式:2017-04-14 13:44:11

SELECT NOW();

 

##查詢一個星期內的數據

## DATE_SUB(date,INTERVAL expr unit) 從日期減去指定的時間間隔

SELECT column_name(s) FROM table_name WHERE DATE_SUB(CURDATE(),INTERVAL 7 DAY) <=DATE(create_time) ORDER BY create_time DESC;

 

##查詢一個月內的數據

SELECT column_name(s) FROM table_name WHERE DATE_SUB(CURDATE(),INTERVAL 1 MONTH) <= DATE(create_time) ORDER BY create_time DESC;

 

##返回date的星期索引(1 = Sunday, 2 = Monday, ... 7 = Saturday)。索引值符合 ODBC 的標准

SELECT DAYOFWEEK(create_time) FROM table_name ORDER BY create_time DESC;

 

##格式化時間

SELECT DATE_FORMAT(create_time,'%Y-%m-%d') FROM table_name ;

 

##返回當前時間 輸出格式:15:17:51

SELECT CURTIME();

 

##給日期添加指定的時間間隔  DATE_ADD(date,INTERVAL expr unit)

SELECT column_name(s) FROM table_name WHERE DATE_ADD(create_time,INTERVAL 1 DAY) <= DATE(NOW());

 

##返回兩個日期之間的天數 DATEDIFF(expr1,expr2)

SELECT column_name(s) FROM table_name WHERE DATEDIFF( NOW(),create_time)=0

 

=0代表查詢的是當天,=1 查詢的就是昨天……
————————————————
版權聲明:本文為CSDN博主「摘星族」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_41986096/article/details/80464008

 

####

MySQL 字符串拼接詳解

 

在Mysql 數據庫中存在兩種字符串連接操作.具體操作如下
一. 語法:
   1. CONCAT(string1,string2,…)   說明 : string1,string2代表字符串,concat函數在連接字符串的時候,只要其中一個是NULL,那么將返回NULL


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM