OceanBase SQL表达式入门科普,掌握数据库查询的核心语法与技巧

文章导读
SELECT 语句是 SQL 的核心,用于从数据库中检索数据。基本语法:SELECT 列名 FROM 表名。使用 WHERE 子句过滤数据,如 SELECT * FROM users WHERE age > 18。聚合函数如 COUNT、SUM、AVG 用于统计,GROUP BY 分组数据,HAVING 过滤分组结果。ORDER BY 排序,LIMIT 限制行数。这些是查询的基础技巧。
📋 目录
  1. SQL 表达式基础
  2. 子查询与嵌套
  3. 窗口函数技巧
  4. 连接查询
  5. 常用函数
  6. 性能优化技巧
A A

SELECT 语句是 SQL 的核心,用于从数据库中检索数据。基本语法:SELECT 列名 FROM 表名。使用 WHERE 子句过滤数据,如 SELECT * FROM users WHERE age > 18。聚合函数如 COUNT、SUM、AVG 用于统计,GROUP BY 分组数据,HAVING 过滤分组结果。ORDER BY 排序,LIMIT 限制行数。这些是查询的基础技巧。

SQL 表达式基础

SQL表达式包括算术表达式、字符串表达式和逻辑表达式。算术如 a + b * 2,字符串连接用 || 或 CONCAT 函数,逻辑用 AND、OR、NOT。比较运算符 =, !=, >, < 等。CASE 表达式实现 if-else 逻辑:CASE WHEN condition THEN result ELSE other END。

子查询与嵌套

子查询在 SELECT、WHERE、FROM 中使用。例如 SELECT name FROM users WHERE id IN (SELECT id FROM orders WHERE amount > 100)。相关子查询引用外部查询列。EXISTS 检查子查询是否存在行。

OceanBase SQL表达式入门科普,掌握数据库查询的核心语法与技巧

窗口函数技巧

OceanBase 支持窗口函数,如 ROW_NUMBER() OVER (PARTITION BY dept ORDER BY salary DESC) 排名。LAG、LEAD 获取前后行数据。用于分析排名、累计等复杂查询。

连接查询

INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN。语法:SELECT * FROM table1 JOIN table2 ON table1.id = table2.id。多表连接用别名提高效率,如 t1 ON t1.id = t2.id WHERE t1.status = 'active'。

常用函数

字符串:UPPER、LOWER、SUBSTR、LENGTH。日期:NOW()、DATE_ADD、DATEDIFF。数值:ROUND、TRUNC、MOD。NULL 处理:IS NULL、COALESCE。

OceanBase SQL表达式入门科普,掌握数据库查询的核心语法与技巧

性能优化技巧

使用索引,避免 SELECT *,合理 WHERE 条件。EXPLAIN 查看执行计划。OceanBase 的分布式特性下,注意数据分布键。

FAQ
Q: SQL表达式和SQL语句有什么区别?
A: 表达式是计算值的片段,如列+常量;语句是完整指令如SELECT。
Q: 如何在OceanBase中处理NULL值?
A: 用IS NULL检查,用COALESCE(val1, val2)替换为非空值。
Q: 窗口函数和GROUP BY的区别?
A: GROUP BY聚合整组,窗口函数每行保留细节并计算组内值。
Q: 子查询性能如何优化?
A: 改写为JOIN,或确保子查询结果小。