SQLite - 表达式
SQLite - 表达式
Section titled “SQLite - 表达式”表达式是一个或多个值、运算符和 SQL 函数的组合,最终解析为一个值。SQL 表达式是查询的基本组成部分,允许您直接在数据库中转换、计算和过滤数据。
表达式最常用于查询的 SELECT 列表和 WHERE 子句中。
SELECT expression_1, expression_2, ...FROM table_nameWHERE filter_expression;让我们探索不同类型的 SQLite 表达式。
SQLite - 布尔表达式
Section titled “SQLite - 布尔表达式”布尔表达式的计算结果为 TRUE、FALSE 或 UNKNOWN。它们是 WHERE 子句的基石,用于根据条件过滤行。
考虑一个包含以下记录的 EMPLOYEES 表:
ID | NAME | AGE | DEPARTMENT | SALARY---|-----------|-----|-------------|---------1 | Alice | 32 | Engineering | 95000.02 | Bob | 25 | Marketing | 60000.03 | Charlie | 28 | Engineering | 85000.04 | David | 45 | Marketing | 72000.05 | Eve | 28 | Sales | 68000.0此示例使用布尔表达式(SALARY > 70000)来仅获取薪水超过 70,000 美元的员工。
sqlite> SELECT name, department, salary FROM EMPLOYEES WHERE SALARY > 70000;
NAME | DEPARTMENT | SALARY--------|-------------|---------Alice | Engineering | 95000.0Charlie | Engineering | 85000.0David | Marketing | 72000.0SQLite - 数值表达式
Section titled “SQLite - 数值表达式”数值表达式执行数学计算。您可以直接在 SELECT 列表中使用它们,通常使用别名(AS)来提供可读的列名。
SELECT numerical_expression AS alias_name[FROM table_name WHERE condition];这是一个简单的示例:
sqlite> SELECT (20 * 5) + 10 AS result;
result------110一个更实用的示例是计算每位员工的预计年度奖金。
sqlite> SELECT name, salary, salary * 0.1 AS bonus FROM EMPLOYEES;
NAME | SALARY | bonus----------|---------|--------Alice | 95000.0 | 9500.0Bob | 60000.0 | 6000.0Charlie | 85000.0 | 8500.0David | 72000.0 | 7200.0Eve | 68000.0 | 6800.0SQLite 还包括聚合函数(aggregate functions),如 AVG()、SUM() 和 COUNT(),它们对多行执行计算。
sqlite> SELECT COUNT(*) AS total_employees, AVG(salary) AS average_salary FROM EMPLOYEES;
total_employees | average_salary----------------|-----------------5 | 76000.0SQLite - 日期和时间表达式
Section titled “SQLite - 日期和时间表达式”SQLite 提供了强大的函数来处理日期和时间。这些表达式可以返回当前时间戳(timestamp)或操作日期/时间值。
要获取当前时间戳:
sqlite> SELECT CURRENT_TIMESTAMP;
CURRENT_TIMESTAMP-------------------2023-10-27 14:50:15strftime() 函数在格式化和计算日期方面非常通用。这里,我们计算从现在起 30 天后的日期。
sqlite> SELECT date('now', '+30 days');
date('now', '+30 days')----------------------2023-11-26