shell编程mysql语句

要执行这些脚本,要在虚拟机里面安装mysql数据库

文章目录

目录

文章目录

一、简单的导出数据脚本

二、稍微复杂的存储过程

三、批量执行.sql文件 





一、简单的导出数据脚本

#!/bin/bash

# MySQL连接信息
DB_HOST="192.168.91.13"
DB_USER="root"
DB_PASS="admin"
DB_NAME="student"

# 查询语句
QUERY="SELECT * FROM tbl_student;"

# 导出的文件路径和文件名
EXPORT_PATH="/root/rcgshell"
EXPORT_FILENAME="message.txt"

# 运行mysql命令查询数据并导出到文件
mysql -h $DB_HOST -P 3306 -u $DB_USER -p$DB_PASS $DB_NAME -e "$QUERY" > $EXPORT_PATH/$EXPORT_FILENAME

echo "数据已成功导出到:$EXPORT_PATH/$EXPORT_FILENAME"

二、稍微复杂的存储过程

当需要在MySQL中完成一系列复杂的操作时,存储过程是一种常用的选择。然而,如果您希望使用脚本来替代存储过程,可以考虑使用shell脚本和MySQL命令来执行所需的操作。以下是一个示例脚本,展示了如何通过脚本实现与存储过程相似的功能:

#!/bin/bash

# MySQL连接信息
DB_HOST="数据库主机"
DB_USER="用户名"
DB_PASS="密码"
DB_NAME="数据库名"

# 执行CREATE TABLE语句
CREATE_TABLE_QUERY="CREATE TABLE 表名 (列1 数据类型, 列2 数据类型, 列3 数据类型);"
mysql -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME -e "$CREATE_TABLE_QUERY"

# 执行INSERT语句批量插入数据
INSERT_QUERY="INSERT INTO 表名 (列1, 列2, 列3) VALUES (值1, 值2, 值3), (值4, 值5, 值6), (值7, 值8, 值9);"
mysql -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME -e "$INSERT_QUERY"

# 执行SELECT语句查询数据
SELECT_QUERY="SELECT * FROM 表名 WHERE 条件;"
RESULT=$(mysql -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME -se "$SELECT_QUERY")

# 处理查询结果
echo "查询结果:"
echo "$RESULT"

# 执行UPDATE语句更新数据
UPDATE_QUERY="UPDATE 表名 SET 列1 = 新值 WHERE 条件;"
mysql -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME -e "$UPDATE_QUERY"

# 执行DELETE语句删除数据
DELETE_QUERY="DELETE FROM 表名 WHERE 条件;"
mysql -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME -e "$DELETE_QUERY"

echo "操作已完成。"

要执行其他操作(如存储过程中的条件判断、循环等),需要使用shell脚本的控制结构,如if语句和for循环。 

最后需要给脚本赋予权限

#给文件赋权
chmod +x test.sh
#运行
./test.sh

三、批量执行.sql文件 


#!/bin/bash

# 设置数据库连接参数
DB_HOST="192.168.91.13"
DB_USER="root"
DB_PASSWORD="admin"
DB_NAME="student"

# 指定包含.sql文件的目录路径
SQL_DIR="/root/rcgshell/sql"

# 遍历目录下的.sql文件,并执行创建表操作
for sql_file in $SQL_DIR/*.sql
do
  # 使用mysql命令执行SQL文件
  mysql -h $DB_HOST -P 3306 -u $DB_USER -p$DB_PASSWORD -D $DB_NAME < "$sql_file"
  echo "Created tables from: $sql_file"
done


 


你可能感兴趣的:(Linux,mysql,android,数据库)