Oracle 运算符
封面图
•
2025-10-01
•
Oracle
0
0
0
0
在 Oracle 数据库中,运算符用于执行各种操作,如数学计算、比较、逻辑判断等。Oracle 支持多种类型的运算符,主要包括以下几类: --- ## 一、算术运算符(Arithmetic Operators) | 运算符 | 说明 | 示例 | |--------|--------------|--------------------------| | `+` | 加法 | `2 + 3` → `5` | | `-` | 减法 | `5 - 2` → `3` | | `*` | 乘法 | `4 * 3` → `12` | | `/` | 除法 | `6 / 2` → `3` | | `**` | 幂运算 | `2 ** 3` → `8` | **示例:** ```sql SELECT 2 + 3 AS result FROM dual; ``` --- ## 二、比较运算符(Comparison Operators) | 运算符 | 说明 | 示例 | |--------|------------------|-------------------------------| | `=` | 等于 | `a = b` | | `!=` 或 `<>` | 不等于 | `a != b` 或 `a <> b` | | `>` | 大于 | `a > b` | | `<` | 小于 | `a < b` | | `>=` | 大于等于 | `a >= b` | | `<=` | 小于等于 | `a <= b` | | `BETWEEN` | 在某个范围之间 | `a BETWEEN 1 AND 10` | | `IN` | 在某个集合中 | `a IN (1, 2, 3)` | | `LIKE` | 模糊匹配 | `name LIKE 'A%'` | | `IS NULL` | 判断是否为 NULL | `column IS NULL` | **示例:** ```sql SELECT * FROM employees WHERE salary > 5000; SELECT * FROM customers WHERE name LIKE 'J%'; ``` --- ## 三、逻辑运算符(Logical Operators) | 运算符 | 说明 | 示例 | |--------|------------------|-------------------------------------------| | `AND` | 与 | `A AND B` | | `OR` | 或 | `A OR B` | | `NOT` | 非 | `NOT A` | | `NVL` | 替换 NULL 值 | `NVL(column, default_value)` | | `COALESCE` | 返回第一个非空值 | `COALESCE(col1, col2, 'default')` | **示例:** ```sql SELECT * FROM employees WHERE department_id = 10 AND salary > 3000; SELECT NVL(commission_pct, 0) AS commission FROM employees; ``` --- ## 四、字符串运算符(String Operators) | 运算符 | 说明 | 示例 | |--------|--------------|------------------------------| | `||` | 字符串连接 | `'Hello' || 'World'` → `'HelloWorld'` | **示例:** ```sql SELECT first_name || ' ' || last_name AS full_name FROM employees; ``` --- ## 五、集合运算符(Set Operators) 用于对两个或多个查询结果进行集合操作。 | 运算符 | 说明 | 示例 | |--------|------------------|--------------------------------------------| | `UNION` | 合并两个结果集,去重 | `SELECT * FROM table1 UNION SELECT * FROM table2` | | `UNION ALL` | 合并两个结果集,保留重复 | `SELECT * FROM table1 UNION ALL SELECT * FROM table2` | | `INTERSECT` | 取两个结果集的交集 | `SELECT * FROM table1 INTERSECT SELECT * FROM table2` | | `MINUS` | 取第一个结果集减去第二个 | `SELECT * FROM table1 MINUS SELECT * FROM table2` | **示例:** ```sql SELECT employee_id FROM employees UNION SELECT employee_id FROM job_history; ``` --- ## 六、其他特殊运算符 ### 1. `NULLIF` 返回第一个表达式,如果两个表达式相等则返回 NULL。 **示例:** ```sql SELECT NULLIF(10, 10) FROM dual; -- 返回 NULL SELECT NULLIF(10, 20) FROM dual; -- 返回 10 ``` ### 2. `DECODE` 类似于 IF-THEN-ELSE 的函数。 **语法:** ```sql DECODE(expression, search1, result1, search2, result2, ..., default) ``` **示例:** ```sql SELECT DECODE(department_id, 10, 'Accounting', 20, 'Research', 'Other') AS dept_name FROM employees; ``` --- ## 总结 | 类型 | 运算符示例 | |--------------|-----------------------------------------| | 算术 | `+`, `-`, `*`, `/`, `**` | | 比较 | `=`, `!=`, `>`, `<`, `BETWEEN`, `LIKE` | | 逻辑 | `AND`, `OR`, `NOT`, `NVL`, `COALESCE` | | 字符串 | `||` | | 集合 | `UNION`, `UNION ALL`, `INTERSECT`, `MINUS` | | 特殊 | `NULLIF`, `DECODE` | 如果你有具体的使用场景或想了解某个运算符的详细用法,欢迎继续提问!
上一篇:
Oracle 怎么删除外键
下一篇:
Oracle 事务
标题录入,一次不能超过6条
返回顶部
留言
留言
评论