基本查询:
-- 选择表中所有列的所有行
SELECT * FROM table_name;
-- 选择指定列的所有行
SELECT column1, column2 FROM table_name;
-- 带有条件的查询
SELECT * FROM table_name WHERE condition;
-- 排序查询结果
SELECT * FROM table_name ORDER BY column1 ASC;
-- 限制结果集的行数
SELECT * FROM table_name LIMIT 10;
子查询:
1. 标量子查询:
- 子查询返回单个值,可以嵌套在其他查询中的条件表达式中。
SELECT column1, (SELECT MAX(column2) FROM table2) AS max_value FROM table1;
2. 行子查询:
- 子查询返回多个值,可以在其他查询中的 IN 子句中使用。
SELECT column1 FROM table1 WHERE column2 IN (SELECT column2 FROM table2);
3. 表子查询:
- 子查询返回一个结果集,可以在其他查询中的 FROM 子句中使用。
SELECT * FROM (SELECT column1, column2 FROM table1) AS subquery;
连接查询:
1. INNER JOIN:
- 返回匹配的行,根据连接条件从两个或多个表中检索数据。
SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;
2. LEFT JOIN (或 LEFT OUTER JOIN):
- 返回左表的所有行和匹配的右表的行。
SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column;
3. RIGHT JOIN (或 RIGHT OUTER JOIN):
- 返回右表的所有行和匹配的左表的行。
SELECT * FROM table1 RIGHT JOIN table2 ON table1.column = table2.column;
4. FULL JOIN (或 FULL OUTER JOIN):
- 返回左表和右表的所有行,如果没有匹配的行,则用 NULL 值填充。
SELECT * FROM table1 FULL JOIN table2 ON table1.column = table2.column;
这些是一些基本的查询和子查询的示例,具体的查询逻辑会根据具体的业务需求而有所不同。在编写复杂查询时,理解表之间的关系以及如何使用子查询和连接操作是很重要的。
转载请注明出处:http://www.zyzy.cn/article/detail/11493/OceanBase