查询数据库的语句是SQL(Structured Query Language)中的一种基本操作,用于检索数据库中的数据,以下是一些常见的查询数据库的语句及其用法:

基本查询语句
| 语句类型 | 示例 | 说明 |
|---|---|---|
| SELECT | SELECT * FROM 表名; | 查询表中的所有数据 |
| SELECT 指定列 | SELECT 列名1, 列名2 FROM 表名; | 查询表中的指定列数据 |
| WHERE 条件 | SELECT * FROM 表名 WHERE 条件; | 根据条件查询数据 |
| ORDER BY 排序 | SELECT * FROM 表名 ORDER BY 列名 ASC/DESC; | 根据指定列进行升序/降序排序 |
| GROUP BY 分组 | SELECT 列名1, COUNT(*) FROM 表名 GROUP BY 列名2; | 根据指定列进行分组,并计算分组数量 |
| HAVING 条件 | SELECT 列名1, COUNT(*) FROM 表名 GROUP BY 列名2 HAVING 条件; | 对分组后的结果进行筛选 |
复杂查询语句
| 语句类型 | 示例 | 说明 |
|---|---|---|
| JOIN 连接 | SELECT * FROM 表名1 JOIN 表名2 ON 条件; | 将两个表通过指定条件连接起来 |
| 子查询 | SELECT * FROM 表名 WHERE 条件 IN (SELECT 列名 FROM 表名2); | 在查询中使用子查询 |
| EXISTS 存在性 | SELECT FROM 表名 WHERE EXISTS (SELECT FROM 表名2 WHERE 条件); | 判断子查询是否存在结果 |
| EXISTS 非存在性 | SELECT FROM 表名 WHERE NOT EXISTS (SELECT FROM 表名2 WHERE 条件); | 判断子查询不存在结果 |
例子
假设有一个名为students的表,包含以下列:id(学生ID)、name(学生姓名)、age(学生年龄)。
- 查询所有学生的姓名和年龄:
SELECT name, age FROM students; - 查询年龄大于20岁的学生姓名:
SELECT name FROM students WHERE age > 20; - 查询年龄在20到30岁之间的学生姓名和年龄:
SELECT name, age FROM students WHERE age BETWEEN 20 AND 30; - 查询年龄在20到30岁之间的学生姓名,并按年龄升序排序:
SELECT name, age FROM students WHERE age BETWEEN 20 AND 30 ORDER BY age ASC; - 查询与
students表中的id相匹配的teachers表中的name:SELECT t.name FROM students s JOIN teachers t ON s.id = t.student_id;
FAQs
Q1:如何查询表中不存在的记录?

A1: 使用NOT EXISTS子查询可以查询表中不存在的记录,查询students表中不存在于teachers表中的学生ID:
SELECT id FROM students WHERE NOT EXISTS (SELECT * FROM teachers WHERE teachers.student_id = students.id);
Q2:如何查询两个表中的共同记录?

A2: 使用JOIN语句可以查询两个表中的共同记录,查询students表和teachers表中id相同的记录:
SELECT * FROM students JOIN teachers ON students.id = teachers.student_id;
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/179457.html