mysql在终端执行sql并把结果写入文件的方法

本文介绍了一种在终端直接执行MySQL SQL语句的方法,无需进入MySQL环境。通过使用mysql命令的-e参数,可以直接运行SQL并输出结果,提高工作效率。此外,还介绍了如何利用重定向将查询结果保存到文件。

在终端使用mysql执行语句时,我们一般先进入mysql,然后再在里面执行sql语句。

例如:

mysql -uroot
mysql> use mydb;
mysql> select * from user;
...

如果我们需要进行某些表的监控,并保存执行后的查询结果,需要手动复制到文件,这样影响工作效率。

终端执行sql

因此提供以下方法,可以不用进入mysql,而是直接在终端使用shell调用mysql执行sql语句。

mysql 提供了 -e 参数用于直接在终端执行语句,并输出。

例如:

mysql -uroot -e 'select * from mydb.user'

 
使用mysql -e执行语句时,可以加入-v, -vv, -vvv参数

-v 显示语句本身
-vv 增加显示查询结果行数
-vvv 增加显示执行时间


执行结果写入文件

使用输出重定向,则可以把执行的结果保存到文件中。

例如:

mysql -uroot -e 'select * from mydb.user' > /tmp/mydb_user.txt

终端执行后,查询结果会保存到/tmp/mydb_user.txt中。

在不同环境下,终端执行 SQL 语句的方法不同: - **MySQL**:在终端使用 `mysql -uroot` 可连接 MySQL 数据库,之后就能执行 SQL 语句了[^1]。 - **Hive**: - **基本操作流程**:启动 Hive 使用 `bin/hive`;查看数据库用 `show databases;`;打开默认数据库用 `use default;`;显示数据库中的表用 `show tables;`;创建表如 `create table student(id int, name string) ;`;查看表结构用 `desc student;`;向表中插入数据用 `insert into student values(1001,"ss1");`;查询表中数据用 `select * from student;`;退出 Hive 用 `quit;` 或 `exit;` [^3]。 - **常用交互命令**:使用 `-e` 可在不进入 Hive 交互窗口的情况下执行 SQL 语句,例如 `bin/hive -e "select id from student;"`;使用 `-f` 可执行脚本中的 SQL 语句,先在指定目录下创建包含 SQL 语句的文件,如在 `/opt/module/datas` 目录下创建 `hive.sql` 文件写入 `select * from student;`,然后用 `bin/hive -f /opt/module/datas/hive.sql` 执行文件中的 SQL 语句,还可以将结果写入文件,如 `bin/hive -f /opt/module/datas/hive.sql > /opt/module/datas/hive_result.txt` [^3]。 - **MyBatis**:在 Spring Boot 启动类上添加 `@Slf4j` 注释可实现 SQL 语句显示,示例代码如下: ```java import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @Slf4j @SpringBootApplication public class TestApplication { public static void main(String[] args) { SpringApplication.run(TestApplication.class, args); } } ``` 这样在终端就能显示当前执行SQL 语句 [^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值