2021-07-30 SQL Day12

一.虚拟的“表” —— 视图

视图(VIEW):一面镜像,本身不包含数据。源数据发生改变,镜像也发生改变。

image.png

image.png

CREATE VIEW pet_show
AS
SELECT * FROM pet;

SELECT ps.name, ps.species FROM pet_show AS ps WHERE ps.sex = 'm';

DROP VIEW pet_show;



CREATE VIEW pet_show
AS
SELECT name, species FROM pet;

SELECT * FROM pet_show;

DROP VIEW pet_show;



CREATE VIEW pet_show
AS
SELECT name, species FROM pet WHERE 1 = 2;

SELECT * FROM pet_show;

DROP VIEW pet_show;


---按出生日期

CREATE VIEW pet_show
AS
SELECT * FROM pet ORDER BY birth;

SELECT * FROM pet_show;

DROP VIEW pet_show;


二.固化SQL语句 —— 存储过程

image.png

image.png

image.png

1.使用MySQL黑框

image.png

三.课后作业

Q1:按要求复制 milk_tea 表,并进行如下操作。
1、复制 milk_tea 表中 prod_id 为 1-5 的行,并命名为 copy_milk_tea 表。

CREATE TABLE copy_milk_tea
AS
SELECT * 
FROM milk_tea AS mt
WHERE mt.prod_id < 6;

2、在 copy_milk_tea 表上建立视图,视图名为 view_milk_tea。查看该视图。

CREATE VIEW view_milk_tea
AS
SELECT * FROM copy_milk_tea

3、对视图进行查询操作,找出销售价高于 15 的产品。

SELECT * 
FROM view_milk_tea AS vmt
WHERE vmt.sale_price > 15;

Q2:按要求对 copy_milk_tea 表进行操作,并同时查看视图。
1、插入 milk_tea 表中 prod_id 为 6 的行。

INSERT INTO copy_milk_tea
SELECT *
FROM milk_tea
WHERE prod_id = 6;

2、删除 copy_milk_tea 表中销售价格为 15 的行。

DELETE FROM copy_milk_tea
WHERE sale_price = 15;

Q3:简单阐述视图与表的异同。(对比复制表操作)
答:
同:都是二维表结构,都可以使用SELECT语句的去哪不操作
异:视图是虚拟的表,本身不包括数据,其内容随着SELECT语句的结果改变而改变。但如果是复制表,则是固定不变的,即使AS后的SELECT语句结果发生改变,复制表也不会发生改变。不可以通过视图更新原表数据。

你可能感兴趣的:(2021-07-30 SQL Day12)