MySQL 如何通过从基本表中选择一些值的范围来创建MySQL视图

MySQL 如何通过从基本表中选择一些值的范围来创建MySQL视图

在MySQL中,视图可以被认为是一个虚表,它是根据存储在数据库中的SQL查询创建的。视图是用于简化这些SQL查询,使它们更易于管理和使用。此外,它们可以用来隐藏底层表的结构,从而提高数据安全性。在本文中,我们将学习如何通过选择一些值的范围从基本表创建MySQL视图。

假设我们有一个名为“students”的表,其中包含学生的姓名,性别,年龄和分数。让我们首先创建一些示例数据来填充这个表。

阅读更多:MySQL 教程

创建示例数据和表结构

CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50),
    gender VARCHAR(10),
    age INT,
    score FLOAT
);

INSERT INTO students (name, gender, age, score) VALUES
('Alice', 'Female', 18, 85.6),
('Bob', 'Male', 19, 72.3),
('Charlie', 'Male', 20, 93.2),
('David', 'Male', 20, 87.4),
('Eve', 'Female', 19, 68.9),
('Frank', 'Male', 18, 78.5),
('Grace', 'Female', 20, 91.2),
('Henry', 'Male', 19, 85.3),
('Ivy', 'Female', 20, 79.5),
('Jack', 'Male', 18, 66.7);

现在我们已经创建了一个名为“students”的表,其中包含10个示例学生。

创建一个MySQL视图

让我们假设在我们的应用程序中,我们只需要获取年龄在18到20岁之间的学生。我们可以使用以下SQL查询语句来检索这些记录:

SELECT * FROM students WHERE age BETWEEN 18 AND 20;

但是,每次我们需要查询时都重复执行此查询是不必要且繁琐的。为了简化此过程,我们可以创建一个视图,该视图将筛选出学生的记录,其年龄位于指定范围内。以下是如何创建名为“students_age_range”的视图:

CREATE VIEW students_age_range AS
SELECT * FROM students WHERE age BETWEEN 18 AND 20;

现在,我们可以像选择普通表一样选择视图。例如,以下是如何选择我们刚创建的视图的示例查询:

SELECT * FROM students_age_range;

结果应该如下所示:

+----+---------+--------+-----+-------+
| id | name    | gender | age | score |
+----+---------+--------+-----+-------+
|  1 | Alice   | Female |  18 |  85.6 |
|  2 | Bob     | Male   |  19 |  72.3 |
|  3 | Charlie | Male   |  20 |  93.2 |
|  4 | David   | Male   |  20 |  87.4 |
|  5 | Eve     | Female |  19 |  68.9 |
|  6 | Frank   | Male   |  18 |  78.5 |
|  7 | Grace   | Female |  20 |  91.2 |
|  8 | Henry   | Male   |  19 |  85.3 |
|  9 | Ivy     | Female |  20 |  79.5 |
| 10 | Jack    | Male   |  18 |  66.7 |
+----+---------+--------+-----+-------+

正如您所看到的,结果只包含年龄在18到20岁之间的学生的记录。

修改MySQL视图

如果我们稍后决定更改我们的视图,以便仅检索得分大于等于80分的学生时,我们只需要修改我们的视图定义。以下是如何修改名为“students_age_range”的视图,以便仅返回得分大于等于80分的学生记录:

CREATE OR REPLACE VIEW students_age_range AS
SELECT * FROM students WHERE age BETWEEN 18 AND 20 AND score >= 80;

现在,我们可以重新运行相同的查询,以查看此新视图的输出:

SELECT * FROM students_age_range;

结果应该如下所示:

+----+-------+--------+-----+-------+
| id | name  | gender | age | score |
+----+-------+--------+-----+-------+
|  1 | Alice | Female |  18 |  85.6 |
|  3 | Charlie | Male |  20 |  93.2 |
|  4 | David | Male |  20 |  87.4 |
|  7 | Grace | Female |  20 |  91.2 |
|  8 | Henry | Male |  19 |  85.3 |
+----+-------+--------+-----+-------+

如您所见,只有得分大于等于80分的学生的记录被返回。

删除MySQL视图

如果我们不再需要视图,我们可以使用“DROP VIEW”语句从MySQL数据库中删除它。以下是如何删除名为“students_age_range”的视图:

DROP VIEW students_age_range;

结论

在本文中,我们学习了如何通过从基本表中选择一些值的范围来创建MySQL视图。我们选择了年龄在18到20岁之间的学生作为示例,并创建了名为“students_age_range”的视图,该视图筛选出这些学生的记录。我们还演示了如何修改和删除MySQL视图。这些技术有助于简化复杂的SQL查询,并提高应用程序的可维护性。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程