PostgreSQL - 表达式

你好,未来的数据库大师们!今天,我们将深入探索PostgreSQL表达式的迷人世界。如果你是新手,不用担心;我们会从基础开始,逐步深入。在本教程结束时,你将能够像专业人士一样编写表达式!

PostgreSQL - Expressions

PostgreSQL中的表达式是什么?

在我们具体讲解之前,让我们先了解一下表达式是什么。在PostgreSQL中,表达式是一个或多个值、操作符和函数的组合,它们计算出一个单一的结果。把它想象成一份食谱:你混合不同的配料(值)使用各种工具(操作符和函数)来制作一道美味的菜肴(结果)。

现在,让我们探索PostgreSQL中不同类型的表达式。

PostgreSQL - 布尔表达式

布尔表达式就像你考试中的是非题。它们计算结果为TRUE或FALSE。当你想要过滤数据或在数据库查询中做决策时,这些表达式非常有用。

基本布尔操作符

下面是PostgreSQL中常见的布尔操作符表格:

操作符 描述 示例
AND 如果两个条件都为真,则返回TRUE a AND b
OR 如果至少一个条件为真,则返回TRUE a OR b
NOT 否定结果 NOT a

让我们看看这些操作符的实际应用:

SELECT * FROM students WHERE age >= 18 AND grade = 'A';

这个查询选择所有18岁或以上且成绩为'A'的学生。就像说,“展示给我所有成年且成绩为A的学生!”

SELECT * FROM products WHERE category = 'Electronics' OR price > 1000;

这个查询检索所有属于'Electronics'类别或价格超过1000美元的产品。就像问,“我们的高端或科技产品有哪些?”

比较操作符

PostgreSQL还提供了比较操作符来创建布尔表达式:

操作符 描述
= 等于
<> 或 != 不等于
< 小于
> 大于
<= 小于或等于
>= 大于或等于

示例:

SELECT name, salary FROM employees WHERE salary > 50000;

这个查询找到所有薪水超过50000美元的员工。就像问人力资源部,“谁是我们的高收入者?”

PostgreSQL - 数值表达式

PostgreSQL中的数值表达式涉及数学运算。它们就像你在学校解决的数学问题,但现在它们在数据库中帮助你处理数字!

算术操作符

以下是一些基本的算术操作符:

操作符 描述 示例
+ 加法 a + b
- 减法 a - b
* 乘法 a * b
/ 除法 a / b
% 求余(余数) a % b
^ 乘方 a ^ b

让我们在查询中使用这些操作符:

SELECT product_name, price, price * 0.9 AS discounted_price
FROM products;

这个查询计算所有产品10%的折扣。就像慷慨的店主正在进行促销!

SELECT employee_name, salary, salary + (salary * 0.05) AS new_salary
FROM employees;

在这里,我们给每个人加薪5%。那不是很好吗?

数学函数

PostgreSQL还提供了多种数学函数。以下是一些:

函数 描述
ABS(n) 绝对值
ROUND(n, m) 四舍五入到m位小数
POWER(x, y) x的y次幂
SQRT(n) 平方根

示例:

SELECT order_id, total_amount, ROUND(total_amount, 2) AS rounded_total
FROM orders;

这个查询将总金额四舍五入到两位小数,确保我们的财务看起来整洁。

PostgreSQL - 日期表达式

PostgreSQL中的日期表达式允许你操作和计算日期和时间。它们就像你的数字日历和时钟的结合!

日期/时间函数

PostgreSQL提供了许多用于处理日期和时间的函数。以下是一些常见的:

函数 描述
CURRENT_DATE 当前日期
CURRENT_TIME 当前时间
CURRENT_TIMESTAMP 当前日期和时间
AGE(timestamp, timestamp) 计算两个时间戳之间的差异
DATE_PART(text, timestamp) 获取日期/时间值的子字段

让我们看看这些函数的实际应用:

SELECT username, registration_date,
AGE(CURRENT_DATE, registration_date) AS account_age
FROM users;

这个查询计算每个用户注册了多长时间。就像检查每个账户的“年龄”!

SELECT event_name, event_date,
DATE_PART('day', event_date) AS day_of_month
FROM events;

在这里,我们从每个事件日期中提取月份中的日。这对于按日期组织活动很有用!

间隔算术

PostgreSQL允许你使用日期和间隔进行算术运算。间隔表示一段时间。

SELECT order_date,
order_date + INTERVAL '7 days' AS expected_delivery_date
FROM orders;

这个查询计算订单日期后7天的预期送达日期。就像物流经理计划所有送货一样!

就这样,朋友们!我们已经穿越了PostgreSQL表达式的领域,从布尔逻辑到数字计算到时间旅行(好吧,有点像)。记住,熟能生巧,所以不要害怕在自家的数据库沙盒中尝试这些表达式。快乐查询!

Credits: Image by storyset