mysql-视图基础学习

SELECT s.*,p.hometown FROM student s,province p WHERE s.wai = p.id
-- 视图的简介,作用,优点
-- 1.       什么是视图?
-- a.       视图是一种虚拟的表,是从数据库中一个或者多个表中导出的表
-- b.       数据库只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中
-- c. 使用视图查询数据时,数据库系统会从原来的表中取出对应的记录
--  
-- 2.         视图的作用:
-- a.         使操作简便化
-- b.         增加数据的安全性
-- c.         提高表的逻辑独立性
-- 
-- 3.         视图的优点:
-- a. 视点集中
-- b. 简化操作
-- c. 定制数据
-- d. 合并分割数据
-- e. 安全性
-- 二: 创建视图
-- CREATE [ ALGORITHM ={ UNDEFIEND | MERGE | TEMPTABLE }]
-- VIEW 视图名[ ( 属性清单) ]
-- AS SELECT 语句
-- [ WITH [ CASCADED | LOCAL ] CHECK OPTION ];
--  
-- ALGORITHM 是可选参数,表示视图选择的算法;
-- “视图名”参数表示要创建的视图的名称;
-- “属性清单”是可选参数,其指定了视图中各种属性的名词,默认情况下与SELECT 语句中查询的属性相同;
-- SELECT 语句参数是一个完整的查询语句,标识从某个表查出某些满足条件的记录,将这些记录导入视图中;
-- WITH CHECK OPTION 是可选参数,表似乎更新视图时要保证在该视图的权限范围之内;
-- ALGORITHM 包括3 个选项UNDEFINED、MERGE 和TEMPTABLE。
-- UNDEFINED 选项表示MySQL 将自动选择所要使用的算法;
-- MERGE 选项表示将使用视图的语句与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分;
-- TEMPTABLE 选项表示将视图的结果存入临时表,然后使用临时表执行语句;CASCADED是可选参数,表示更新视图时要满足所有相关视图-- 和表的条件,该参数为默认值;
-- LOCAL 表示更新视图时,要满足该视图本身的定义条件即可;

-- 创建一个查询全表的视图 one
CREATE VIEW two 
AS
SELECT s.*,p.hometown FROM student s,province p WHERE s.wai = p.id;

-- 使用视图,根据条件查询视图中内容
SELECT * FROM two WHERE hometown = '山西';

-- 创建视图three 查询姓名,课程,分数和家乡
CREATE VIEW three
AS
SELECT s.namea 姓名,s.subjecta 课程,s.score 分数,p.hometown 家乡 FROM student s,province p WHERE s.wai = p.id
-- 使用视图three
SELECT * FROM three;

-- 查看视图
-- DESCRIBE 语句查看视图基本信息
DESC three;
DESC two;
--  SHOW CREATE VIEW 语句查看视图详细信息
SHOW CREATE VIEW two;
SELECT * FROM three;

-- 四			修改视图
-- CREATE OR REPLACE VIEW 语句修改视图
-- CREATE OR REPLACE [ ALGORITHM ={ UNDEFINED | MERGE | TEMPTABLE }]
-- VIEW 视图名[( 属性清单)]
-- AS SELECT 语句
-- [ WITH [ CASCADED | LOCAL ] CHECK OPTION ];
-- 如果视图存在就REPLACE该视图,如果不存在 就Create 该视图

-- 原来的视图
SELECT * FROM three;
-- 创建或修改视图
CREATE OR REPLACE VIEW three
AS
SELECT * FROM province;
-- ALTER 语句修改视图
-- ALTER [ ALGORITHM ={ UNDEFINED | MERGE | TEMPTABLE }]
-- VIEW 视图名[( 属性清单)]
-- AS SELECT 语句
-- [ WITH [ CASCADED | LOCAL ] CHECK OPTION ];
-- 只能修改视图,不能创建视图
SELECT * FROM three;
ALTER VIEW three
AS
SELECT * FROM province;
-- alter只能修改稿视图,不能创建视图
ALTER view four
AS
SELECT * FROM province;
-- 更新视图
-- 更新视图是指通过视图来插入(INSERT)、更新(UPDATE)和删除(DELETE)表中的数据。
-- 因为视图是一个虚拟的表,其中没有数据。通过视图更新时,
-- 都是转换基本表来更新。更新视图时,只能更新权限范围内的数据。超出了范围,就不能更新。

-- 通过视图来插入(INSERT)、更新(UPDATE)和删除(DELETE)时,都是对原表来进行操作.
-- 查看视图
SELECT * FROM three;
-- 插入数据
INSERT INTO three VALUES (NULL,'杭州');
-- 更新数据
UPDATE three SET hometown = '天山' WHERE id = 6;
-- 删除数据
DELETE FROM three WHERE id = 6;

SELECT * FROM three;
SELECT * FROM province;

-- 删除视图
-- 删除视图是指删除数据库中已存在的视图。删除视图时,只能删除视图的定义,不会删除数据;
-- DROP VIEW [ IF EXISTS ] 视图名列表[ RESTRICT | CASCADE ]

DROP VIEW IF EXISTS one;

-- 创建视图
CREATE VIEW one
AS
SELECT * FROM student;

SELECT * FROM one;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值