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