shell脚本查询mysql库和表

需求

写一个支持带参数的shell脚本,查询MySQL指定库和指定表的数据。具体要求如下:
1)用户执行脚本格式不对时,需要提示用户正确的脚本用法
2)第一个参数指定数据库名,必须指定
4)第二个指定表名,必须指定
5)第三个参数指定查询多少行(前N行) ,可以不指定(如果不指定,就查询所有行)

假设,mysql root用户名密码为as64upBwyXpq

实现
#!/bin/bash

passwd=as64upBwyXpq

if [ ! -f /data/dblist.txt ]
then
    `mysql -uroot -p$passwd -e "show databases;" | awk '{print $1}' | sed '1'd` > /data/dblist.txt
fi

if [ -z "$1" ]
then
    echo "Please use: $0 dbname tbname row"
    exit
else
    if ! grep -qw $1 /data/dblist.txt
    then
        echo "The db $1 you input is not exist."
    fi
fi

if [ -z "$2" ]
then
    echo "Please use: $0 dbname tbname row"
    exit
fi

if [ -z "$3" ]
then
    mysql -uroot -p$passwd -e "SELECT * FROM $1.$2;"
else
    mysql -uroot -p$passwd -e "SELECT * FROM $1.$2 LIMIT $3;"
fi
要在Shell脚本查询MySQL数据库,你可以使用以下方法。 方法1:在脚本中直接连接数据库并执行SQL语句 你可以使用mysql命令来连接数据库并执行查询语句。在脚本中,你需要提供数据库的连接信息和要执行的SQL语句。例如: ```shell #!/bin/bash HOSTNAME="192.168.111.84" # 数据库主机地址 PORT="3306" # 数据库端口号 USERNAME="root" # 数据库用户名 PASSWORD="111" # 数据库密码 DBNAME="test_db_test" # 数据库名称 TABLENAME="test_table_test" # 数据库中表的名称 # 连接数据库并执行查询语句 mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD}<<EOF use ${DBNAME} SELECT * FROM ${TABLENAME}; EOF ``` 这个脚本会连接到指定的MySQL数据库,并查询指定表的所有数据。 方法2:将SQL语句保存在脚本中的EOF块中 另一种方法是将SQL语句保存在脚本中的EOF块中,并使用<<EOF将其作为输入传递给mysql命令。这种方法可以在一个脚本中执行多个SQL语句。例如: ```shell #!/bin/bash HOSTNAME="192.168.111.84" # 数据库主机地址 PORT="3306" # 数据库端口号 USERNAME="root" # 数据库用户名 PASSWORD="111" # 数据库密码 DBNAME="test_db_test" # 数据库名称 TABLENAME="test_table_test" # 数据库中表的名称 # 连接数据库并执行多个SQL语句 mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD}<<EOF use ${DBNAME} # 第一个查询语句 SELECT * FROM ${TABLENAME}; # 第二个查询语句 SELECT NOW(); # 第三个查询语句 CREATE TEMPORARY TABLE temp (SELECT * FROM ${TABLENAME}); EOF ``` 这个脚本会连接到指定的MySQL数据库,并依次执行三个查询语句。 方法3:使用变量进行条件查询 如果你需要在SQL语句中使用变量进行条件查询,你可以在脚本中定义变量,并将其插入到SQL语句中。例如: ```shell #!/bin/bash HOSTNAME="192.168.111.84" # 数据库主机地址 PORT="3306" # 数据库端口号 USERNAME="root" # 数据库用户名 PASSWORD="111" # 数据库密码 DBNAME="test_db_test" # 数据库名称 TABLENAME="test_table_test" # 数据库中表的名称 CONDITION='a = 1 and b = 2' # 查询条件 # 连接数据库并执行条件查询语句 mysql -h${HOSTNAME} -P${PORT} -u${USERNAME} -p${PASSWORD}<<EOF use ${DBNAME} # 使用变量进行条件查询 SELECT * FROM ${TABLENAME} WHERE ${CONDITION}; EOF ``` 这个脚本会连接到指定的MySQL数据库,并使用变量进行条件查询。 综上所述,你可以通过Shell脚本连接到MySQL数据库并执行各种查询操作。根据你的需求,选择适合的方法来查询数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值