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

ops/2024/9/20 1:26:07/ 标签: 数据库, pgAdmin, 占位符, psql

目录

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--


http://www.ppmy.cn/ops/110917.html

相关文章

Grafana 汉化

点击 Home -> Administration 点击 Default preferences 点击 中文(简体)后点击 Save 即可

遥感技术在生态系统碳储量、碳收支、碳排放、碳循环以及人为源排放反演等领域的技术发展,实践角度解决遥感技术在生态、能源、大气等领域的碳排放监测及模拟问题

卫星遥感具有客观、连续、稳定、大范围、重复观测的优点,已成为监测全球碳盘查不可或缺的技术手段,卫星遥感也正在成为新一代 、国际认可的全球碳核查方法。本教程的目的就是梳理碳中和与碳达峰对卫星遥感的现实需求,系统总结遥感技术在生态系…

唯徳知识产权管理系统 DownloadFileWordTemplate 文件读取漏洞复现

0x01 产品简介 唯徳知识产权管理系统,由深圳市唯德科创信息有限公司精心打造,旨在为企业及代理机构提供全方位、高效、安全的知识产权管理解决方案。该系统集成了专利、商标、版权等知识产权的全面管理功能,并通过云平台实现远程在线办公,提升工作效率。是一款集知识产权申…

Radware Alteon 负载均衡-基于URL Filetype的七层负载均衡

作者:Xiaolei Ren Radware Alteon作为一款高性能的负载均衡器,其基于URL Filetype的七层负载均衡功能为众多企业提供了灵活、高效的解决方案。 该案例实现如下需求:当客户端访问服务器时,默认访问10.200.1.100,在ht…

快手自研Spark向量化引擎正式发布,性能提升200%

Blaze 是快手自研的基于Rust语言和DataFusion框架开发的Spark向量化执行引擎,旨在通过本机矢量化执行技术来加速Spark SQL的查询处理。Blaze在快手内部上线的数仓生产作业也观测到了平均30%的算力提升,实现了较大的降本增效。本文将深入剖析blaze的技术原…

Anaconda 安装与使用教程

Anaconda 安装与使用教程 介绍 Anaconda 是一个用于科学计算的 Python 和 R 的发行版,它包含了众多流行的科学计算、数据分析、机器学习等领域的库。本教程旨在帮助初学者快速上手 Anaconda,并学会如何使用其管理环境以及安装包。 第一步:…

Linux下的gcc与gdb

目录 Linux下的gcc与gdb 代码编译与链接 函数库 gdb介绍和安装 gdb基本使用指令 示例代码 debug模式和release模式 基本指令 进入gdb调试与显示调试代码 创建断点与删除断点 启用和禁用断点 执行代码 逐语句和逐过程调试 断点跳转 显示指定变量以及对应内容 打印变量的值 执行到…

代码随想录算法day30 | 动态规划算法part03 | 01背包问题 二维 ,01背包问题 一维,416. 分割等和子集

正式开始背包问题,背包问题还是挺难的,虽然大家可能看了很多背包问题模板代码,感觉挺简单,但基本理解的都不够深入。 背包问题,力扣上没有原题,题目是在卡码网找的 动态规划:01背包理论基础 本…

简单易懂的方式来解释机器学习(ML)和深度学习(DL)的区别与联系

让我们从多个角度出发,用一些简单易懂的方式来解释机器学习(ML)和深度学习(DL)的区别与联系。 1. 概念上的区别 机器学习 想象一下你在教一个小孩子如何分辨猫和狗。你可能会给这个孩子看很多猫和狗的照片&#xff…

Unity-Time类

目录 Time.timeScale Time.deltaTime Time.unscaledDeltaTime Time.time Time.frameCount Time.fixedDeltaTime Time.timeScale 时间缩放比例 时间停止 Time.timeScale 0; //回复正常 //Time.timeScale 1; //2倍速 …

VSCode 离线安装中文语言包

1.插件市场 Extensions for Visual Studio family of products | Visual Studio Marketplace 输入: language 在version history里面下载相应的版本,若没有就下载最新的 在下面安装 安装完重启就可以了。 可能会提示的失败: Unable to ins…

【vscode】 快速生成react组件

在VSCode中快速生成React组件的方法主要包括使用内置的代码片段和安装第三方插件。以下是具体的步骤和方法: 使用内置代码片段‌ VSCode支持用户自定义代码片段,你可以通过输入特定的前缀,然后按下Tab键,来快速生成React组件的基…

Cenos7镜像+Docker问题

前言 好用的镜像 阿里 curl -o /etc/yum.repos.d/Centos7-aliyun.repo https://mirrors.wlnmp.com/centos/Centos7-aliyun-x86_64.repo科大 curl -o /etc/yum.repos.d/Centos7-ustc.repo https://mirrors.wlnmp.com/centos/Centos7-ustc-x86_64.repo网易 curl -o /etc/yum…

概率论原理精解【14】

文章目录 拓扑空间拓扑空间映射一、连续映射二、同胚映射三、开映射与闭映射四、其他映射五、映射空间 第一可数空间第一可数性公理第一可数空间的性质例子与反例 邻域基定义性质例子应用 参考文献 拓扑空间 拓扑空间映射 是一个相当宽泛且复杂的话题,因为拓扑空间…

HW蓝队某知名大厂面试题分享

🤟 基于入门网络安全/黑客打造的资源包无偿分享中: 👉黑客&网络安全入门&进阶学习资源包 应急响应流程 1)首先判断服务器资产、影响范围以及严重程度,确认有没有必要将服务器下线隔离,然后根据服务…

基于python+django+mysql+Nanodet检测模型的水稻虫害检测系统

博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…

第158天:安全开发-Python-Socket编程反弹Shell分离免杀端口探针域名爆破

前置知识 使用 socket 模块 1. 导入模块 首先,你需要导入 Python 的 socket 模块。 import socket 2. 创建套接字 使用 socket.socket() 函数创建一个新的套接字。这个函数可以接收两个参数:地址族和套接字类型。 地址族(Address Family&…

筑牢网络安全防线:为数字时代保驾护航

《筑牢网络安全防线:为数字时代保驾护航》 一、网络安全:数字时代的关键课题 网络安全在当今数字时代的重要性愈发凸显。2024 年国家网络安全宣传周以 “网络安全为人民,网络安全靠人民” 为主题,深刻体现了网络安全与每个人息息…

OpenGL(四) 纹理贴图

几何模型&材质&纹理 渲染一个物体需要: 几何模型:决定了物体的形状材质:绝对了当灯光照到上面时的作用效果纹理:决定了物体的外观 纹理对象 纹理有2D的,有3D的。2D图像就是一张图片,3D图像是在…

MyBatis 如何将 Mapper 接口与其 XML 映射文件关联:深入原理与实现

MyBatis 如何将 Mapper 接口与其 XML 映射文件关联:深入原理与实现 1. 概述 MyBatis 是一个简单、灵活的持久层框架,它通过 SQL 语句将 Java 对象与数据库进行映射。MyBatis 支持基于 XML 和注解的配置方式。在实际开发中,XML 映射文件与 M…