【pgAdmin4】使用psql命令行执行查询时,使用占位符(:v1)传入参数

目录

0.环境

1.相关知识点

2.举例

3.详细操作


0.环境

windows11 + pgAdmin4 8.10

1.相关知识点

占位符如何理解?

SQL语句中的占位符是一种用于代表参数的特殊符号,通常以"?"或":"开头。它们被用来构建可重用的SQL语句,通过在运行时绑定实际的参数值,以生成具体的SQL语句。

举例:以下sql查询中的【:v1】就是占位符,在命令行输入执行sql语句的命令时,需要给v1传参,如【v1=1】,在执行时,就会把1这个数值传给sql语句中v1的位置再查询。

SELECT t.id, t.name  
FROM test t  
WHERE id = :v1

2.举例

一个简单的查询,但是要求某个参数需要从命令行输入,如

我有一张表如下,我想查询【id为1的行】

正常查询语句非常简单

SELECT t.id, t.name
FROM test t
WHERE id=1

但是现在【id=1】这个条件,我不想在sql语句中输入,我希望使用psql命令行执行sql语句,并且在输入的命令行中使用占位符,将【id=1】这个条件传入,改如何做呢?

答:

将【id=1】这个条件,用占位符替换,改为【id = :v1】

然后在执行命令psql命令语句时,用【v1=1】代替 id=1来使用

3.详细操作

1)在pgAdmin界面中,找到执行psql的位置,在菜单栏 - Tools - PSQL Tool 中,下面称为【psql命令行环境

2)修改sql语句,使用占位符替换想要在命令行输入的变量

SELECT t.id, t.name
FROM test t
WHERE id=:v1

3)将sql语句放入一个文本文件,并改名为【test.sql】,我就直接放D盘下了,好找,一会我们用psql命令行来执行这个test.sql文件。

4)在psql命令行环境中,输入命令执行这个【test.sql】

输入命令如下:

psql -h localhost -p 5432 -d postgres -U postgres -v v1=1 -f "D:\test.sql"

对应参数含义:

参数含义
-h参数后面跟的是数据库服务器的主机名或IP地址
-p参数用于指定数据库服务器的端口号
-d参数后面跟的是要连接的数据库的名称(我的数据库交postgres)
-U参数后面跟的是用于连接数据库的用户名(我的用户名为postgres)
-v参数用于设置 psql 变量,即占位符
-f参数后面跟的是要执行的 SQL 脚本文件的路径

刚打开的psql命令行界面是这样的,输入命令后会发现没有报错也没有返回

是因为运行环境(postgres=#)不对,此时我们需要使用命令【\q】退出当前环境

可以看到 \q 之后,进入了一个新运行环境,如下图

然后我们再执行【test.sql】,就会发现有筛选的结果了

此时我们用【v1=1】代替了【test.sql】中的【id=1】

至此,占位符的使用分享完了

--END--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wyn_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值