常量表达式
📄字数 1.1K
👁️阅读量 加载中...
概述
常量表达式是最基本的 SQL 表达式,用于表示固定不变的值。常量可以出现在查询、条件、赋值等各种语句中,是构建其他复杂表达式的基础。
常见的常量类型包括:
- 数值常量(整数、小数)
- 字符串常量
- 布尔常量
- 日期/时间常量
- NULL值
示例
数值常量
sql
-- 数值常量
SQL> SELECT 100 AS int_value, 3.14 AS float_value;
+-----------+-------------+
| INT_VALUE | FLOAT_VALUE |
+-----------+-------------+
| 100 | 3.14 |
+-----------+-------------+
字符串常量
- 字符串常量使用单引号包裹
sql
SQL> SELECT 'Hello world' AS greeting;
+-------------+
| GREETING |
+-------------+
| Hello world |
+-------------+
提示
虚谷数据库兼容MySQL双引号的使用(需要将兼容性参数compatible_mode设置为MYSQL)
sql
SQL> show compatible_mode;
+-----------------+
| COMPATIBLE_MODE |
+-----------------+
| NONE |
+-----------------+
-- 设置兼容模式为MySQL
SQL> SET compatible_mode TO MYSQL;
-- MYSQL模式下的,双引号使用
SQL> SELECT "hello", "'hello'", "''hello''", "hel""lo" FROM DUAL;
+-------+---------+-----------+--------+
| hello | 'hello' | ''hello'' | hel"lo |
+-------+---------+-----------+--------+
| hello | 'hello' | ''hello'' | hel"lo |
+-------+---------+-----------+--------+
布尔常量
sql
SQL> SELECT TRUE AS success, FALSE AS failure;
+---------+---------+
| SUCCESS | FAILURE |
+---------+---------+
| T | F |
+---------+---------+
日期/时间常量
sql
SQL> SELECT
'2024-06-30' ::date AS date_literal,
'12:34:56'::time AS time_literal,
'2024-06-30 12:34:56' :: datetime AS datetime_literal;
+--------------+--------------+--------------------------+
| DATE_LITERAL | TIME_LITERAL | DATETIME_LITERAL |
+--------------+--------------+--------------------------+
| 2024-06-30 | 12:34:56.000 | 2024-06-30 12:34:56.000 |
+--------------+--------------+--------------------------+
提示
- 虚谷数据库支持根据xugu.ini配置文件中参数def_timefmt修改默认日期时间格式
- 日期时间格式推荐保持默认值,遵循ISO8601(如 YYYY-MM-DD HH24:MI:SS)
NULL值
- NULL表示“无值”或“未知值”
sql
SQL> SELECT NULL AS empty_value;
+-------------+
| EMPTY_VALUE |
+-------------+
| <NULL> |
+-------------+
提示
- NULL在表达式中具有“传播”特性:任何包含NULL的运算,其结果通常也为NULL
- 判断NULL使用IS NULL/IS NOT NULL,不能使用=或<>
使用场景
- 场景一:作为查询条件的固定值,直接作为过滤条件,用于提取特定行
- 场景二:在建表语句中,常量表达式可以作为字段的默认值,常用于填充固定初始值或当前时间等
- 场景三:用于计算派生列(虚拟列),在SELECT中直接使用常量表达式作为输出字段,也可用于构造“虚拟字段”
- 场景四:在构建复杂表达式时,先用常量表达式验证逻辑正确性是高效调试方法