返回

放飞理想,让数据库之魂指引人生航向——DQL语言基础查询

后端

我们正在开始探索DQL语言,它是数据库查询语言,也是我们将用于从数据库中检索数据的工具。我们将开始学习基础查询,这些查询将帮助我们从数据库中提取信息并以有用的方式组织它。

在开始之前,我们首先需要一个可以查询的数据集。这里有一个简单的示例数据库,其中包含一个名为“students”的表,其中包含有关学生及其成绩的信息。

CREATE TABLE students (
  id INT NOT NULL AUTO_INCREMENT,
  name VARCHAR(255) NOT NULL,
  grade INT NOT NULL,
  PRIMARY KEY (id)
);

INSERT INTO students (name, grade) VALUES
  ('John Smith', 90),
  ('Jane Doe', 85),
  ('Michael Jones', 95),
  ('Mary Johnson', 80),
  ('Robert Smith', 92);

现在我们已经有了数据,我们可以开始学习如何查询它。

SELECT语句

SELECT语句是DQL语言中最基本和最重要的语句。它用于从数据库中检索数据。SELECT语句的基本语法如下:

SELECT column_name(s)
FROM table_name
WHERE condition;

例如,以下查询将从“students”表中选择所有学生的姓名和成绩:

SELECT name, grade
FROM students;

WHERE子句

WHERE子句用于将条件应用于SELECT语句,以便仅检索满足该条件的行。例如,以下查询将从“students”表中选择所有成绩高于90的学生:

SELECT name, grade
FROM students
WHERE grade > 90;

ORDER BY子句

ORDER BY子句用于根据一个或多个列对结果集进行排序。例如,以下查询将从“students”表中选择所有学生,并按成绩降序对结果集进行排序:

SELECT name, grade
FROM students
ORDER BY grade DESC;

GROUP BY子句

GROUP BY子句用于根据一个或多个列对结果集进行分组。例如,以下查询将从“students”表中选择所有学生,并按成绩对结果集进行分组:

SELECT name, grade
FROM students
GROUP BY grade;

HAVING子句

HAVING子句用于将条件应用于GROUP BY子句的结果集。例如,以下查询将从“students”表中选择所有学生,并按成绩对结果集进行分组,仅选择平均成绩高于85的分组:

SELECT name, grade
FROM students
GROUP BY grade
HAVING AVG(grade) > 85;

DISTINCT

DISTINCT关键字用于从结果集中删除重复行。例如,以下查询将从“students”表中选择所有学生,并仅选择不重复的姓名:

SELECT DISTINCT name
FROM students;

LIMIT关键字

LIMIT关键字用于限制结果集中的行数。例如,以下查询将从“students”表中选择所有学生,并将结果集限制为前10行:

SELECT name, grade
FROM students
LIMIT 10;

OFFSET关键字

OFFSET关键字用于跳过结果集中的行数。例如,以下查询将从“students”表中选择所有学生,并跳过前10行:

SELECT name, grade
FROM students
OFFSET 10;

这些是DQL语言中一些最基本的基础查询。通过使用这些查询,我们可以从数据库中提取有用的信息并将其组织成易于理解的形式。