MySQL数据库——视图-介绍及基本语法(创建、查询、修改、删除、演示示例)

news2024/11/18 16:53:16

目录

介绍

语法

创建

查询

修改

删除

演示示例


介绍

视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表(称为基表),并且是在使用视图时动态生成的。

通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。

语法

因为视图是一种虚拟存在的表,所以可以根据之前操作表的方法来操作视图(其中修改视图与修改表不同,修改视图有两种方式)。

创建

CREATE [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句 
[ WITH [CASCADED | LOCAL ] CHECK OPTION ]

查询

-- 查看创建视图语句:
SHOW CREATE VIEW 视图名称;

-- 查看视图数据:
SELECT * FROM 视图名称 ...... ;

修改

-- 方式一:
CREATE [OR REPLACE] VIEW 视图名称[(列名列表)] AS SELECT语句 
[ WITH [ CASCADED | LOCAL ] CHECK OPTION ]

-- 方式二:
ALTER VIEW 视图名称[(列名列表)] AS SELECT语句 
[ WITH [ CASCADED | LOCAL ] CHECK OPTION ]

删除

DROP VIEW [IF EXISTS] 视图名称 ...

演示示例

-- 创建视图
create or replace view stu_v 
as
select id,name from student
where
id <= 10;

-- 查询视图
show create view stu_v;

select * from stu_v;

select * from stu_v where id < 3;

-- 修改视图
create or replace view stu_v 
as 
select id,name,no from student 
where 
id <= 10;

alter view stu_v 
as 
select id,name from student 
where 
id <= 10;

-- 删除视图
drop view if exists stu_v;

上述我们演示了,视图应该如何创建、查询、修改、删除,那么我们能不能通过视图来插入、更新数据呢?

接下来,做一个测试。

-- 创建视图,设置条件id < 10
create or replace view stu_v 
as 
select id,name from student 
where 
id <= 10 ;

-- 插入两条数据,一条id < 10,另一条id > 10
insert into stu_v values(6,'Tom');

insert into stu_v values(17,'Tom22');

-- 查询视图
select * from stu_v;

执行上述的SQL,我们会发现,id为6和17的数据都是可以成功插入的。

但是我们执行查询,查询出来的数据,却没有id为17的记录。

因为我们在创建视图的时候,指定的条件为 id<=10,

id为17的数据,是不符合条件的,所以没有查询出来,

但是这条数据已经成功的插入到了基表中。

 
如果我们定义视图时指定了条件,然后我们在插入、修改、删除数据时,是否可以做到必须满足条件才能操作,否则不能够操作呢? 答案是可以的,这就需要借助于视图的检查选项了。

下一篇就来了解视图的检查选项这一内容。


END


学习自:黑马程序员——MySQL数据库课程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1112866.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

优雅而高效的JavaScript——?? 运算符、?. 运算符和 ?. .运算符

&#x1f974;博主&#xff1a;小猫娃来啦 &#x1f974;文章核心&#xff1a;优雅而高效的JavaScript——?? 运算符、?. 运算符和 ?. 运算符 文章目录 引言空值处理的挑战解决方案1&#xff1a;?? 运算符基本用法与 || 运算符的区别实际应用场景举例 解决方案2&#xff…

fastadmin如何让后台的日期显示成年月日格式

fastadmin的后台时间戳字段如何显示成年月日的日期格式&#xff0c;网上有很多同仁也在问这个问题&#xff0c;下面我把我这摸索到的方法给大家分享一下&#xff1a; 解决方法&#xff1a; 找到public\asset\js\backend\控制器.js 增加formatter: Table.api.formatter.datetim…

基于stm32f103c8t6的串口中断蓝牙通讯

这一篇文章与 上一篇文章相基于 stm32f103c8t6的串口非中断蓝牙通讯上一篇文章相http://t.csdnimg.cn/7j0Ec 相比&#xff0c;硬件部分是相同的。在原有的旧初上&#xff0c;要在stm32cube加入中断&#xff0c;同时代码中也要引入中断函数以及中断回调函数。到后面我谁说说我…

免费的国产数据集成平台推荐

在如今的数字化时代下&#xff0c;企业内部的数据无疑是重要资产之一。随着数据源的多样性和数量剧增&#xff0c;如何有效地收集、整合、存储、管理和分析数据变得至关重要。为了解决这些常见痛点&#xff0c;数据集成平台成为了现代企业不可或缺的一部分。 数据集成是现代数…

腾讯云双11服务器优惠活动价格表预热!

2023腾讯云双十一优惠活动服务器特价多配置报价2核2G3M、2核2G4M、2核4G5M、2核4G5M、4核8G12M、8核16G18M和16核32G28M&#xff0c;目前腾讯云双11价格还没出来&#xff0c;阿腾云根据目前2核2G3M配置95元一年预测双11价格可能是88元一年&#xff0c;整理大概有个10%的优惠幅度…

原型设计工具:Balsamiq Wireframes 4.7.4 Crack

原型设计工具:Balsamiq Wireframes是一种快速的低保真UI 线框图工具&#xff0c;可重现在记事本或白板上绘制草图但使用计算机的体验。 它确实迫使您专注于结构和内容&#xff0c;避免在此过程后期对颜色和细节进行冗长的讨论。 线框速度很快&#xff1a;您将产生更多想法&am…

Android笔记(七)Android JetPack Compose组件搭建Scaffold脚手架

在去年2022年曾发布一篇关于脚手架的文章&#xff1a;“Android JetPack Compose组件中Scaffold的应用” 。但是Android的版本从12变更到13及以上版本&#xff0c;导致一些细节的实现存在不同。在本文中&#xff0c;将从头开始介绍整个脚手架的搭建过程。 一、新建项目模块 在…

uniGUI文件操作

一.文件上传TUniFileUploadButton TUniFileUploadButton主要属性&#xff1a; Filter: 文件类型过滤&#xff0c;有图片image/* audio/* video/*三种过滤 MaxAllowedSize: 设置文件最大上传尺寸&#xff1b; Message&#xff1a;标题以及消息文本&#xff0c;可翻译成中文…

手写call(),apply(),bind()方法

目录 知识储备&#xff1a; 一&#xff1a;手写call方法 1、思路 2、实现 3、Symbol调优 二&#xff1a;手写apply方法 1、思路 2、实现 三&#xff1a;手写bind方法 1、思路 2、实现 四&#xff1a;总结 知识储备&#xff1a; 所有的方法都可以调用我们手写的方法&…

npm ERR! node-sass@6.0.1 postinstall: `node scripts/build.js`

1.遇到的问题 vue npm install提示以下错误 2.首次尝试方法 尝试用下面的方式重新安装弄得-saas&#xff0c;结果不起作用 。 npm config set sass_binary_sitehttps://npm.taobao.org/mirrors/node-sass npm install node-sass 这时考虑降级node版本&#xff0c;node.js从…

上海亚商投顾:沪指再创年内新低 贵州茅台等权重股集体调整

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数昨日全线调整&#xff0c;沪指逼近3000点大关&#xff0c;深成指、创业板指续创年内新低。芯片板块逆…

推荐系统(RS)

主流推荐算法 协同过滤算法 协同过滤算法的原理 根据用户群体对产品偏好的数据&#xff0c;发现用户之间的相似性或者物品之间的相似性&#xff0c;并基于这些相似性为用户作推荐。 基于用户的协同过滤算法&#xff08;User-based Collaborative Filtering&#xff09; 其本…

Leetcode刷题详解——四数之和

1. 题目链接&#xff1a;四数之和 2. 题目描述&#xff1a; 给你一个由 n 个整数组成的数组 nums &#xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] &#xff08;若两个四元组元素一一对应&#xff0…

『力扣刷题本』:相交链表

咳咳&#xff0c;实在抱歉&#xff0c;刚开始心气太高了&#xff0c;叫『每日一题』&#xff0c;我是真的坚持不下了。 经过这次打击&#xff0c;我算是摸明白自己在写博客这件事情上几斤几两了&#xff0c;现在预计一周两更&#xff0c;再慢慢把更新频率提上来。 正在努力补…

python写的自动按键和鼠标连点

自己用python写的自动按键和鼠标自动点击。 分享一下源码&#xff0c;比较干净的&#xff0c;缺点就是是python打包有点大50多M from PyQt5 import QtWidgets, uic, QtCore from pynput import keyboard, mouse import pygetwindow as gw from PyQt5.QtGui import QPainter, Q…

YOLOv7改进实战 | 更换轻量化主干网络Backbone(一)之Ghostnet

前言 轻量化网络设计是一种针对移动设备等资源受限环境的深度学习模型设计方法。下面是一些常见的轻量化网络设计方法: 网络剪枝:移除神经网络中冗余的连接和参数,以达到模型压缩和加速的目的。分组卷积:将卷积操作分解为若干个较小的卷积操作,并将它们分别作用于输入的不…

Netty常用类与接口

netty架构图 ServerBootstrap 、 Bootstrap ServerBootstrap &#xff1a;服务器的引导类&#xff0c;可以绑定服务器和端口&#xff0c;配置 Channel、ChannelHandler等。 Bootstrap&#xff1a;客户端的引导类。可以开启客户端&#xff0c;连接服务端的端口&#xff0c;配置…

矩阵系统功能介绍

数据大屏&#xff1a;监测读取后台数据 AI素材库&#xff1a;一键去水印功能 将视频做出自己的 AI智能文案&#xff1a;一键生成各种文案&#xff0c;解决文案编写困难的问题 视频剪辑&#xff1a;一键剪辑多个视频

vue3引入全局js

main.js中引入js&#xff0c;设置全局属性 m a p : a p p . c o n f i g . g l o b a l P r o p e r t i e s . map:app.config.globalProperties. map:app.config.globalProperties.map引入js对象 vue页面中使用。引入vue实例&#xff1a; import {getCurrentInstance} from “…

VS2022更换背景壁纸逐步图示教程

&#x1f984;个人主页:修修修也 ⚙️操作环境:Visual Studio 2022 目录 一.下载壁纸插件 二.更改自定义壁纸 三.调整壁纸布局 一.下载壁纸插件 因为更改自定义壁纸需要一个插件的辅助,所以我们要先下载一个小插件 首先,打开VS2022,点击"扩展"->"管理扩…