放飞理想,让数据库之魂指引人生航向——DQL语言基础查询
2024-02-16 03:56:48
我们正在开始探索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语言中一些最基本的基础查询。通过使用这些查询,我们可以从数据库中提取有用的信息并将其组织成易于理解的形式。