PostgreSQL 中的 if 语句
if
语句通过返回真或假值来评估条件。我们可以使用它来执行基于条件的查询。
本文将教我们如何编写 if
语句查询,并了解条件语句在开发后端应用程序时如何帮助我们。
在 PostgreSQL 中使用 if
语句编写查询以执行不同的操作
使用以下命令登录 PostgreSQL 服务器。在返回的提示中输入密码并回车。
david@david-HP-ProBook-6470b:~/Documents/work/upwork/jhinku-tutorials$ psql -U postgres
Password for user postgres:
默认用户 postgres 有一个名为 postgres 的数据库,我们需要创建我们的数据库,我们将使用它来测试我们的 if 语句查询。
postgres=#
使用以下命令创建一个新数据库:
postgres=# create database if_statement_db;
CREATE DATABASE
要从 postgres 数据库转移到 if_statement_db,请使用下面提供的命令并注意我们以用户 postgres 连接到新数据库。
postgres=# \c if_statement_db;
You are now connected to database "if_statement_db" as user "postgres".
if_statement_db=#
创建一个名为 phone 的表,其中包含字段 id、phone_name、phone_color 和 phone_price。使用下面提供的数据定义查询。
if_statement_db=# create table phone(
if_statement_db(# id SERIAL UNIQUE NOT NULL,
if_statement_db(# phone_name varchar(50),
if_statement_db(# phone_type varchar(50),
if_statement_db(# phone_price integer,
if_statement_db(# PRIMARY KEY(id));
CREATE TABLE
在电话表中插入一些记录。这些记录将帮助我们执行条件 if 语句查询。
if_statement_db=# insert into phone(phone_name, phone_type, phone_price)
if_statement_db-# values('Sumsung A7', 'Refurbished',600);
INSERT 0 1
if_statement_db=# insert into phone(phone_name, phone_type, phone_price)
if_statement_db=# values('Motorola', 'new',800);
INSERT 0 1
if_statement_db=# insert into phone(phone_name, phone_type, phone_price)
if_statement_db=# values('Iphone 10', 'new',700);
INSERT 0 1
在你的机器上创建一个文件并将其命名为 data.sql 或你喜欢的任何名称。编写要针对此文件中的电话表执行的 if 语句查询。
示例(data.sql):
DO
$do$
BEGIN
IF EXISTS(SELECT * FROM phone) THEN
DELETE FROM phone;
ELSE
INSERT into phone(phone_name, phone_type, phone_price)
VALUES('Sumsung A7', 'Refurbished',600);
INSERT into phone(phone_name, phone_type, phone_price)
VALUES('Motorola', 'new',800);
INSERT into phone(phone_name, phone_type, phone_price)
VALUES('Iphone 10', 'new',700);
END IF;
END
$do$
我们的查询将检查表中是否存在任何记录。如果存在记录,这些记录将从表中删除。
如果表没有任何记录,则查询插入新记录。
使用以下命令执行 data.sql 文件。由于我们的表包含一些值,我们应该期望执行删除操作,因为 if 条件将评估为真。
if_statement_db=# \i /home/david/Documents/work/upwork/jhinku-tutorials/data.sql;
DO
检索数据库中所有值的查询返回零记录。
if_statement_db=# select * from phone;
输出:
id | phone_name | phone_type | phone_price
----+------------+------------+-------------
(0 rows)
相关文章
在一个 PostgreSQL 查询中使用多个 WITH 语句
发布时间:2023/03/20 浏览次数:127 分类:PostgreSQL
-
在本教程中,我们将学习如何使用多个 WITH 语句在 PostgreSQL 中使用两个临时表执行查询。
在 Ubuntu 上的 PostgreSQL 中找到配置文件
发布时间:2023/03/20 浏览次数:130 分类:PostgreSQL
-
本文介绍如何在 Ubuntu 上找到 PostgreSQL 数据库的配置文件。
在 PSQL 中运行 SQL 文件
发布时间:2023/03/20 浏览次数:178 分类:数据库
-
本文解释了如何直接从终端/命令行或 psql shell 运行 SQL 文件。为此,你需要指定主机名、端口、用户名和数据库名称。
在 PostgreSQL 中使用循环
发布时间:2023/03/20 浏览次数:124 分类:PostgreSQL
-
在 PL/SQL 中,你可能需要在 Postgres 中使用循环。我们可以使用 FOR 和 WHILE 语句来创建循环。
在 PostgreSQL 中重命名和更改列类型的单个查询
发布时间:2023/03/20 浏览次数:121 分类:PostgreSQL
-
本文介绍如何在 PostgreSQL 中仅使用单个查询来重命名列以及更改其类型。
在 PostgreSQL 中使用 Select 连接列
发布时间:2023/03/20 浏览次数:202 分类:PostgreSQL
-
本文介绍如何在 PostgreSQL 中使用 Select 方法连接列。