当前位置:网站首页>MySQL | 视图《康师傅MySQL从入门到高级》笔记
MySQL | 视图《康师傅MySQL从入门到高级》笔记
2022-06-24 07:07:00 【Begonia_cat】
文章目录
1.视图概念
根据一个表创建一个视图,则这个表称为
基表。视图是一个
虚拟表,相当于SELECT语句的封装。套着羊皮SELECT的狼视图创建视图或者删除视图本身,不会影响基表。
2.为什么要用视图?——查询查询查询!
为了方便查询。重复三遍,记住,只做查询使用!
当只想给特定人看特定的内容时,使用视图可以简化查询。
形象记忆:视图像个魔法镜子,它只显示允许你看到基表的一部分。
(1)优点
与新建字表相比,可以减少数据的冗余。
视图具有隔离性,保护原始数据,有助于数据安全。
当查询比较复杂时,可以创建多个视图,然后将这些视图的结果进行整合,完成复杂查询。
所以,针对视图,不要整那些花里胡哨的,比如增删改!
视图相当一个虚拟窗口,所以对它进行DML(增删改)操作时,即直接对基表进行DML操作。
- 插入数据
INSERT(基表中字段有约束时,插入数据如果不符合约束,则会插入失败)- 更新数据
UPDATE- 删除数据
DELETE
视图中的字段,可能在基表中没有对应字段。比如,根据基表计算出的字段。对于这些字段,是无法执行UPDATE、DELETE操作的。
这段话看看就好,实际操作不建议使用!
(2)缺点
维护成本高
3.创建视图
CREATE OR REPLACE VIEW 视图可以直接用于创建或修改视图。实际上也基本都是这样写。
.
因为此处还没有讲到修改视图,所以先简单用CREATE VIEW进行介绍。
(1)单表
CREATE VIEW 视图名(字段别名1, 字段别名2, ...) -- 如果与查询中字段同名,可以省略起别名`(字段别名1, 字段别名2, ...)`
AS
SELECT 字段1, 字段2, ...
FROM 表名
WHERE 过滤条件
(2)多表
CREATE VIEW 视图名(字段别名1, 字段别名2, ...) -- 如果与查询中字段同名,可以省略起别名`(字段别名1, 字段别名2, ...)`
AS
SELECT 表名.字段1, 表名.字段2, ...
FROM 表名1, 表名2
ON 表名1.字段 = 表名2.字段;
WHERE 过滤条件
(3)基于视图创建视图
把视图看做表去写代码就好了,代码上没啥区别。
4.查看视图
(1)展示视图
SHOW TABLES;
(2)查看视图的结构
DESC 视图名称
(3)查看视图的详细信息
SHOW CREATE VIEW 视图名称
(4)查询视图中的全部内容
SELECT *
FROM 视图名
5.修改视图
常见题目:将...限制在...范围内
(1)加一个OR REPLACE就行
可以直接用这段代码进行创建或修改视图。
CREATE OR REPLACE VIEW 视图名
AS
针对基表的查询语句
(2)ALTER VIEW
ALTER TABLE 视图名
AS
针对基表的查询语句
6.删除视图
DROP VIEW IF EXISTS 视图名
边栏推荐
- It is enough to read this article about ETL. Three minutes will let you understand what ETL is
- Jenkins is deployed automatically and cannot connect to the dependent service [solved]
- 【力扣10天SQL入门】Day3
- Deep learning and neural networks: the six most noteworthy trends
- 何时使用RDD和DataFrame/DataSet
- RuntimeError: Missing dependencies:XXX
- [team management] 25 tips for testing team performance management
- 教程篇(5.0) 08. Fortinet安全架构集成与FortiXDR * FortiEDR * Fortinet 网络安全专家 NSE 5
- 一文详解|增长那些事儿
- 定时备份数据库脚本
猜你喜欢

MySQL 因字符集问题插入中文数据时提示代码 :1366

K8S部署高可用postgresql集群 —— 筑梦之路

Xiaohei ai4code code baseline nibble 1

什么是SRE?一文详解SRE运维体系

Jenkins自动化部署,连接不到所依赖的服务【已解决】

分布式 | 如何与 DBLE 进行“秘密通话”
![Jenkins is deployed automatically and cannot connect to the dependent service [solved]](/img/fe/f294955a9bdf7492aab360e44e052d.png)
Jenkins is deployed automatically and cannot connect to the dependent service [solved]

关于ETL看这篇文章就够了,三分钟让你明白什么是ETL

關於ETL看這篇文章就够了,三分鐘讓你明白什麼是ETL

It is enough to read this article about ETL. Three minutes will let you understand what ETL is
随机推荐
关于ETL看这篇文章就够了,三分钟让你明白什么是ETL
opencv最大值滤波(不局限于图像)
数据中台:民生银行的数据中台实践方案
表单图片上传在Chorme中无法查看请求体的二进制图片信息
WebRTC系列-网络传输之5选择最优connection切换
What is the future development trend of Business Intelligence BI
Several schemes of PHP code encryption
xargs使用技巧 —— 筑梦之路
leetcode 1642. Furthest building you can reach
DataX User Guide
Mysql数据(Liunx环境)定时备份
原生小程序用画布制作海报,等比例缩放,和uniapp差不多就是写法有点不同
Glusterfs replacement failure brick
数据库,查询本月借出书的数量,如果高于10本时,显示“本月借出书大于10本”,否则显示“本月借出书小于10本”
分布式 | 如何与 DBLE 进行“秘密通话”
剑指 Offer 55 - I. 二叉树的深度-dfs法
2138. 将字符串拆分为若干长度为 k 的组
leetcode 1642. Furthest Building You Can Reach(能到达的最远的建筑)
ZUCC_编译语言原理与编译_实验06 07 语法分析 LL 分析
Base64编码详解及其变种(解决加号在URL变空格问题)