MySQL——视图(二)视图管理(3)在多表上创建视图

        在 MySQL中除了可以在单表上创建视图,还可以在两个或者两个以上的基本表上创建视图。本节将通过具体的案例来讲解如何在多表上创建视图。

        例如, 在 student 表和 stu_info 表上创建 stu class 视图,查询出sid号、姓名和班级,具体步骤如下。

        (1)首先创建 stu info表,创建 stu info 表的 SQL 语句如下所示:

mysql> CREATE TABLE stu_info(
    -> s_id INT(3),
    -> class VARCHAR(50),
    -> addr VARCHAR(100)
    -> );
Query OK, 0 rows affected, 1 warning (0.04 sec)

        使用 INSERT 语句向 stu _info 表中插人数据,SQL 语句如下所示:

INSERT INTO stu_info(s_id,class,addr) VALUES(1,'erban','anhui');
INSERT INTO stu_info(s_id,class,addr) VALUES(2,'sanban','chongging');
INSERT INTO stu_info(s_id,class,addr) VALUES(3,'yiban','shandong');

        在上述 SQL语句执行成功后,会在 stu_info 表中添加三条数据。为了验证数据是否添加成功,使用 SELECT 语句查询 stu_info 表,查询结果如下所示:

mysql> SELECT * FROM stu_info;
+------+--------+-----------+
| s_id | class  | addr      |
+------+--------+-----------+
|    1 | erban  | anhui     |
|    2 | sanban | chongging |
|    3 | yiban  | shandong  |
+------+--------+-----------+
3 rows in set (0.00 sec)

        从查询结果可以看出,stu_info 表中成功地添加了三条记录。

(2)创建 stu class 视图,SQL语句如下所示:

CREATE VIEW stu_class(id,name,glass)
AS
SELECT student.s_id,student.name,stu_info.class
FROM student,stu_info
WHERE student.s_id=stu_info.s_id;

       上述 SQL语句执行成功后,会生成一个名为 stu_class 的视图,接下来使用 SELECT语句查看 view_stu2 视图,查询结果如下所示:

mysql> SELECT * FROM stu_class;
+------+------+--------+
| id   | name | glass  |
+------+------+--------+
|    1 | Tom  | erban  |
|    2 | Jack | sanban |
|    3 | Lucy | yiban  |
+------+------+--------+
3 rows in set (0.01 sec)

        从执行结果可以看出,创建的视图中包含 id、name 和 class 字段,其中,id 字段对应student 表中的 s_id 字段,name 对应 student 表中的 name 字段,class 字段对应 sut info表中的 class 字段。

猜你喜欢

转载自blog.csdn.net/W_Fe5/article/details/141888763