
查询语句(Query Statements)是用于从数据库中检索数据的SQL(Structured Query Language,结构化查询语言)指令。以下是一些常见的查询语句类型及其基本用法:
1. SELECT 查询
用于从一个或多个表中选取数据。
SELECT column1, column2, ... FROM table_name WHERE condition;- column1, column2, ...:要选择的列名。
- table_name:表名。
- condition:(可选)筛选条件。
2. DISTINCT 查询
用于返回唯一不同的值。
SELECT DISTINCT column1, column2, ... FROM table_name;3. JOIN 查询
用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
- INNER JOIN:返回两个表中匹配的记录。SELECT a.*, b.* FROM table1 a INNER JOIN table2 b ON a.common_field = b.common_field;
- LEFT JOIN (或 LEFT OUTER JOIN):返回左表中的所有记录和右表中匹配的记录;如果右表中没有匹配,则结果中右表的部分包含NULL。SELECT a.*, b.* FROM table1 a LEFT JOIN table2 b ON a.common_field = b.common_field;
- RIGHT JOIN (或 RIGHT OUTER JOIN):返回右表中的所有记录和左表中匹配的记录;如果左表中没有匹配,则结果中左表的部分包含NULL。SELECT a.*, b.* FROM table1 a RIGHT JOIN table2 b ON a.common_field = b.common_field;
- FULL JOIN (或 FULL OUTER JOIN):返回两个表中所有的记录,当其中一个表中没有匹配时,结果中另一个表的部分包含NULL。SELECT a.*, b.* FROM table1 a FULL JOIN table2 b ON a.common_field = b.common_field;
4. UNION 查询
用于合并两个或多个 SELECT 语句的结果集,并删除重复的行。
SELECT column1, column2, ... FROM table1 UNION SELECT column1, column2, ... FROM table2;5. GROUP BY 查询
用于结合聚合函数,根据一个或多个列对结果集进行分组。
SELECT column1, COUNT(*) FROM table_name GROUP BY column1;6. HAVING 查询
用于过滤 GROUP BY 结果集中的行。
SELECT column1, COUNT(*) FROM table_name GROUP BY column1 HAVING COUNT(*) > value;7. ORDER BY 查询
用于对结果集按照一个或多个列进行排序。
SELECT column1, column2, ... FROM table_name ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;- ASC:升序(默认)。
- DESC:降序。
8. LIMIT 和 OFFSET 查询
用于限制返回的记录数以及指定从哪一条记录开始获取数据。
SELECT column1, column2, ... FROM table_name LIMIT number OFFSET offset;或者在某些数据库中使用:
SELECT column1, column2, ... FROM table_name LIMIT offset, number;9. 子查询(Subquery)
在一个查询的 WHERE 或 FROM 子句中嵌套另一个查询。
-- 在 WHERE 子句中的子查询 SELECT column1 FROM table_name WHERE column2 = (SELECT column2 FROM another_table WHERE condition); -- 在 FROM 子句中的子查询(派生表) SELECT sub.column1, sub.column2 FROM (SELECT column1, column2 FROM another_table) AS sub WHERE sub.condition;这些查询语句是SQL中最常用的几种形式,通过组合和修改它们,可以构建出复杂且强大的数据库查询。
