MySQL 视图
目录
一、视图概述
二、视图的作用和优点
三、视图的使用规则
四、视图操作
1、创建视图
2、查看视图
1)查看视图基本信息
2)查看视图详细信息
3、修改视图
4、更新视图
5、删除视图
一、视图概述
视图是数据库中的一个虚拟表,同真实表一样,视图包含一系列带有名称的行和列数据。
视图是从一个或者多个表中导出来的,视图的行为与表非常相似,在视图中,用户可以使用SELECT、INSERT、UPDATE、DELETE等语句。从MySQL5.0开始就可以使用视图,视图可以使用户操作方便,而且可以保障数据库系统的安全性。视图其实没有存储任何数据,它只是对表的一个查询,视图的定义保存在数据字典内,创建视图所基于的表叫做‘基表’。
二、视图的作用和优点
作用:控制安全、保存查询数据
优点:提供了灵活一致级别安全性、隐藏了数据的复杂性、简化了用户的SQL指令、通过重命名列,从另一个角度提供数据。
三、视图的使用规则
1、视图名必须有唯一的命名;
2. 在mysql中视图的数量没有限制;
3. 创建视图必须从管理员那里获得必要的权限;
4. 视图支持嵌套,也就是说可以利用其他视图检索出来的数据创建新的视图;
5. 在视图中可以使用OREDR BY,但是如果视图内已经使用该排序子句,则视图的ORDER BY将覆盖前面的 ORDER BY;
6. 视图不能索引,也不能关联触发器或默认值;
7. 视图可以和表同时使用。
四、视图操作
1、创建视图
基本语法
create [or replace] [algorithm = {undefined | merge | temptable}]
view 视图名 [字段列表] as 查询语句
[with [cascaded | local] check option]
例如:
mysql> create view view_emp3 as select * from emp3;
Query OK, 0 rows affected (0.00 sec)mysql> show tables;
+-----------------+
| Tables_in_mydb3 |
+-----------------+
| dept3 |
| emp3 |
| view_emp3 |
+-----------------+
3 rows in set (0.00 sec)mysql> select * from view_emp3;
+-----+--------------+------+---------+
| eid | ename | age | dept_id |
+-----+--------------+------+---------+
| 1 | 乔峰 | 20 | 1001 |
| 10 | 丁春秋 | 71 | 1005 |
| 2 | 段誉 | 21 | 1001 |
| 3 | 虚竹 | 23 | 1001 |
| 4 | 阿紫 | 18 | 1001 |
| 5 | 扫地僧 | 85 | 1002 |
| 6 | 李秋水 | 33 | 1002 |
| 7 | 鸠摩智 | 50 | 1002 |
| 8 | 天山童姥 | 60 | 1003 |
| 9 | 慕容博 | 58 | 1003 |
+-----+--------------+------+---------+
10 rows in set (0.03 sec)
2、查看视图
1)查看视图基本信息
语法1
describe 视图名;
例如
mysql> describe view_emp3;
+---------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| eid | varchar(20) | NO | | NULL | |
| ename | varchar(20) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| dept_id | varchar(20) | YES | | NULL | |
+---------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)
语法2
show table status like '视图名' \G
例如
mysql> show table status like 'view_emp3' \G
*************************** 1. row ***************************Name: view_emp3Engine: NULLVersion: NULLRow_format: NULLRows: NULLAvg_row_length: NULLData_length: NULL
Max_data_length: NULLIndex_length: NULLData_free: NULLAuto_increment: NULLCreate_time: NULLUpdate_time: NULLCheck_time: NULLCollation: NULLChecksum: NULLCreate_options: NULLComment: VIEW
1 row in set (0.00 sec)
2)查看视图详细信息
语法
show create view 视图名;
例如
mysql> show create view view_emp3;
+-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+
| View | Create View | character_set_client | collation_connection |
+-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+
| view_emp3 | CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `view_emp3` AS select `emp3`.`eid` AS `eid`,`emp3`.`ename` AS `ename`,`emp3`.`age` AS `age`,`emp3`.`dept_id` AS `dept_id` from `emp3` | utf8 | utf8_general_ci |
+-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+
1 row in set (0.00 sec)
3、修改视图
语法1
create [or replace] [algorithm = {undefined | merge | temptable}]
view 视图名 [字段列表] as 查询语句
[with [cascaded | local] check option]
语法2
alter [algorithm = {undefined | merge | temptable}]
view 视图名 [字段列表] as 查询语句
[with [cascaded | local] check option]
例如
mysql> alter view view_emp3 as select eid,ename from emp3;
Query OK, 0 rows affected (0.01 sec)
#修改后查看表基本信息
mysql> desc view_emp3;
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| eid | varchar(20) | NO | | NULL | |
| ename | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)
4、更新视图
语法
#更新数据
update 视图名 set 字段名1=值1,…… [where <条件>];
#插入数据
insert into 视图名 [字段名列表] values (字段1值,字段2值,……) [,(字段1值,字段2值,……)……];
#删除数据
delete from 视图名 [where <条件>];
例如
#更新数据前查看表数据
mysql> select * from view_emp3;
+-----+--------------+
| eid | ename |
+-----+--------------+
| 1 | 乔峰 |
| 10 | 丁春秋 |
| 2 | 段誉 |
| 3 | 虚竹 |
| 4 | 阿紫 |
| 5 | 扫地僧 |
| 6 | 李秋水 |
| 7 | 鸠摩智 |
| 8 | 天山童姥 |
| 9 | 慕容博 |
+-----+--------------+
10 rows in set (0.00 sec)#修改数据 eid=10 的记录ename为‘张三’
mysql> update view_emp3 set ename='张三' where eid=10;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0#插入一个数据eid=20 ename='李四'的数据
mysql> insert into view_emp3 values (20,'李四');
Query OK, 1 row affected (0.00 sec)#更新数据后进行查看
mysql> select * from view_emp3;
+-----+--------------+
| eid | ename |
+-----+--------------+
| 1 | 乔峰 |
| 10 | 张三 |
| 2 | 段誉 |
| 20 | 李四 |
| 3 | 虚竹 |
| 4 | 阿紫 |
| 5 | 扫地僧 |
| 6 | 李秋水 |
| 7 | 鸠摩智 |
| 8 | 天山童姥 |
| 9 | 慕容博 |
+-----+--------------+#删除eid=20的数据
mysql> delete from view_emp3 where eid=20;
Query OK, 1 row affected (0.00 sec)#删除后再进行查看
mysql> select * from view_emp3;
+-----+--------------+
| eid | ename |
+-----+--------------+
| 1 | 乔峰 |
| 10 | 张三 |
| 2 | 段誉 |
| 3 | 虚竹 |
| 4 | 阿紫 |
| 5 | 扫地僧 |
| 6 | 李秋水 |
| 7 | 鸠摩智 |
| 8 | 天山童姥 |
| 9 | 慕容博 |
+-----+--------------+
10 rows in set (0.00 sec)
5、删除视图
语法
drop view [if exists] 视图视 [,视图名] …… [restrict | cascade];
例如
#删除前先查看存在的表
mysql> show tables;
+-----------------+
| Tables_in_mydb3 |
+-----------------+
| dept3 |
| emp3 |
| view_emp3 |
+-----------------+
3 rows in set (0.00 sec)#删除视图view_emp3
mysql> drop view view_emp3;
Query OK, 0 rows affected (0.00 sec)#删除后再进行查看
mysql> show tables;
+-----------------+
| Tables_in_mydb3 |
+-----------------+
| dept3 |
| emp3 |
+-----------------+
2 rows in set (0.00 sec)
参考书籍:MySQL5.7从入门到精通-清华大学出版社
相关文章:
MySQL 视图
目录 一、视图概述 二、视图的作用和优点 三、视图的使用规则 四、视图操作 1、创建视图 2、查看视图 1)查看视图基本信息 2)查看视图详细信息 3、修改视图 4、更新视图 5、删除视图 一、视图概述 视图是数据库中的一个虚拟表,同真…...
深入理解回调函数qsort:从入门到模拟实现
🍁博客主页:江池俊的博客 💫收录专栏:C语言进阶之路 💡代码仓库:江池俊的代码仓库 🎪我的社区:GeekHub 🎉欢迎大家点赞👍评论📝收藏⭐ 文章目录 前…...
【Git基础】获取远程仓库
我们通常从远程服务器克隆一个Git仓库或者将本地仓库初始化为Git仓库。 1 从远程服务器克隆一个Git仓库 $ git clone https://github.com/your-username/your-repo-name你可以自定义其仓库名称: $ git clone https://github.com/your-username/your-repo-name cu…...
chatGPT界面
效果图: 代码: <!DOCTYPE html> <html> <head><title>复选框样式示例</title> </head> <style>* {padding:0;margin: 0;}.chatpdf{display: flex;height: 100vh;flex-direction: row;}.chatpdf .pannel{widt…...
windows一键启动jupyter
windows一键启动jupyter jupyter简介 Jupyter是一个开源的交互式计算环境,主要用于数据分析、数据可视化和科学计算。它的名字来源于三种编程语言的缩写:Julia、Python和R,这三种语言都可以在Jupyter环境中运行。如果您想进行数据分析、科学…...
树形结构的快速生成
背景 相信大家都遇到过树形结构,像是文件列表、多级菜单、评论区的设计等等,我们都发现它有很多层级,第一级可以有多个,下边的每一个层级也可以有多个;有的可以设计成无限层级的,有的只能设计成两级。那么…...
Android笔记(二十七):自定义Dialog实现居中Toast
背景 记录实现符合项目需求的Toast弹窗 具体实现 class MyTipDialog private constructor(val context: Activity): Dialog(context, R.style.MyTipTheme) {val resId ObservableField(0)private val mainHandler Handler(Looper.getMainLooper())init {setCanceledOnTouc…...
css实现文字的渐变,适合大屏
1 在全局写一个全局样式,文字渐变 2 在组件中使用 CSS3利用-webkit-background-clip: text;实现文字渐变效果_css如何把盒子底部的文字变成透明渐变_I俩月亮的博客-CSDN博客 CSS 如何实现文字渐变色 ?_css字体颜色渐变_一个水瓶座程序猿.的博客-CSDN博客…...
软考高级系统架构设计师系列论文八十七:论企业应用集成
软考高级系统架构设计师系列论文八十七:论企业应用集成 一、企业应用集成相关知识点二、摘要三、正文四、总结一、企业应用集成相关知识点 软考高级系统架构设计师系列之:企业集成平台技术的应用和架构设计二、摘要 本文讨论了某公司的应用系统集成项目。某公司为了应对市场变…...
C++设计模式之适配器模式
一、适配器模式 适配器模式(Adapter Pattern)是一种结构型设计模式,用于将一个类的接口转换成另一个类所期望的接口,以便两个类能够协同工作。 适配器模式可以解决现有类接口与所需接口不匹配的问题,使得原本因接口不…...
山西电力市场日前价格预测【2023-08-24】
日前价格预测 预测明日(2023-08-24)山西电力市场全天平均日前电价为319.98元/MWh。其中,最高日前电价为370.78元/MWh,预计出现在19: 30。最低日前电价为272.42元/MWh,预计出现在12: 45。 价差方向预测 1: 实…...
一文速学-让神经网络不再神秘,一天速学神经网络基础(一)
前言 思索了很久到底要不要出深度学习内容,毕竟在数学建模专栏里边的机器学习内容还有一大半算法没有更新,很多坑都没有填满,而且现在深度学习的文章和学习课程都十分的多,我考虑了很久决定还是得出神经网络系列文章,…...
百度Q2财报:营收341亿元实现加速增长,净利润高速增长44%,增长强劲全线重构
北京时间8月22日,百度发布了截至2023年6月30日的第二季度未经审计的财务报告。第二季度,百度实现营收341亿元,同比增长15%;归属百度的净利润(non-GAAP)达到80亿元,同比增长44%。营收和利润双双实…...
ARM DIY(二)配置晶振频率
文章目录 前言串口乱码问题定位内核修改晶振频率uboot 修改晶振频率番外篇 前言 上篇文章《ARM DIY 硬件调试》介绍了 DIY ARM 板的基础硬件焊接,包括电源、SOC、SD 卡座等,板子已经可以跑起来了。 但是发现串口乱码,今天就来解决串口乱码问…...
高等数学:线性代数-第三章
文章目录 第3章 矩阵的初等变换与线性方程组3.1 矩阵的初等变换3.2 矩阵的秩3.3 方程组的解 第3章 矩阵的初等变换与线性方程组 3.1 矩阵的初等变换 矩阵的初等变换 下面三种变换称为矩阵的初等变换 对换两行(列),记作 r i ↔ r j ( c i …...
深入理解 SQL 注入攻击原理与防御措施
系列文章目录 文章目录 系列文章目录前言一、SQL 注入的原理二、防御 SQL 注入攻击的措施1. 使用参数化查询2.输入验证与过滤3.最小权限原则4.不要动态拼接 SQL5.ORM 框架6.转义特殊字符三、实例演示总结前言 SQL 注入是一种常见的网络攻击方式,攻击者通过在输入框等用户交互…...
QT5.12.12通过ODBC连接到GBase 8s数据库(CentOS)
本示例使用的环境如下: 硬件平台:x86_64(amd64)操作系统:CentOS 7.8 2003数据库版本(含CSDK):GBase 8s V8.8 3.0.0_1 为什么使用QT 5.12.10?该版本包含QODBC。 1&#…...
爱校对发布全新PDF校对工具,为用户带来更为便捷的校正体验
随着数字化文档使用的普及,PDF格式已经成为最为广泛使用的文件格式之一。为满足广大用户对于高效、准确PDF文档校对的需求,爱校对团队经过深入研发,正式推出全新的PDF校对工具! 这一全新工具针对PDF文件格式进行了深度优化&#…...
记录protocol buffers Mac安装
使用brew安装最新的protobuf 在Mac 上安装,使用brew 可以安装最新的protobuf。这个也比较简单,简单说一下。 首先先检查一下是否安装了brew。如果没有安装brew的话,请先安装brew.可以通过brew --version来检查 使用brew install protobuf 来…...
基于Jenkins自动打包并部署docker、PHP环境,ansible部署-------从小白到大神之路之学习运维第86天
第四阶段提升 时 间:2023年8月23日 参加人:全班人员 内 容: 基于Jenkins部署docker、PHP环境 目录 一、环境部署 (一)实验环境,服务器设置 (二)所有主机关闭防火墙和selinu…...
【附安装包】Midas Civil2019安装教程
软件下载 软件:Midas Civil版本:2019语言:简体中文大小:868.36M安装环境:Win11/Win10/Win8/Win7硬件要求:CPU2.5GHz 内存4G(或更高)下载通道①百度网盘丨64位下载链接:https://pan.…...
Apache StreamPark系列教程第一篇——安装和体验
一、StreamPark介绍 实时即未来,在实时处理流域 Apache Spark 和 Apache Flink 是一个伟大的进步,尤其是Apache Flink被普遍认为是下一代大数据流计算引擎, 我们在使用 Flink & Spark 时发现从编程模型, 启动配置到运维管理都有很多可以抽象共用的地方, 我们将一些好的经验…...
mysql replace insert update delete
目录 mysql replace && insert && update && delete replace mysql replace && insert && update && delete replace 我们在使用数据库时可能会经常遇到这种情况。如果一个表在一个字段上建立了唯一索引,当我们再向…...
实现SSM简易商城项目的商品查询功能
实现SSM简易商城项目的商品查询功能 介绍 在SSM(SpringSpringMVCMyBatis)框架下,我们可以轻松地实现一个简易商城项目。本博客将重点介绍如何实现商品查询功能,帮助读者了解并掌握该功能的开发过程。 步骤 1. 创建数据库表 首…...
视频批量剪辑矩阵分发系统源码开源分享----基于PHP语言
批量剪辑视频矩阵分发: 短视频seo主要基于抖音短视频平台,为企业实现多账号管理,视频分发,视频批量剪辑,抖音小程序搭建,企业私域转化等,本文主要介绍短视频矩阵系统抖音小程序开发详细及注意事…...
亚信科技AntDB数据库通过GB 18030-2022最高实现级别认证,荣膺首批通过该认证的产品之列
近日,亚信科技AntDB数据库通过GB 18030-2022《信息技术 中文编码字符集》最高实现级别(级别3)检测认证,成为首批通过该认证的数据库产品之一。 图1:AntDB通过GB 18030-2022最高实现级别认证 GB 18030《信息技术 中文编…...
第11章 优化多线程应用程序
对软件来说,为持续增长的CPU核数做好准备,对应用程序在未来的成功至关重要。 11.1 性能扩展和开销 通过可伸缩定律将计算单元(线程)之间的通信描述为影响性能的另一个门控因素。通用可伸缩定律描述性能劣化由多个因素导致&#…...
分布式下的session共享问题
首页我们确定在分布式的情况下session是不能共享的。 1.不同的服务,session不能共享,也就是微服务的情况下 2.同一服务在分布式情况,session同样不能共享,也会是分布式情况 分布式下session共享问题解决方案(域名相同) 1.session复…...
webrtc的Sdp中的Plan-b和UnifiedPlan
在一些类似于视频会议场景下,媒体会话参与者需要接收或者发送多个流,例如一个源端,同时发送多个左右音轨的音频,或者多个摄像头的视频流;在2013年,提出了2个不同的SDP IETF草案Plan B和Unified Plan&#x…...
LLM-Rec:基于提示大语言模型的个性化推荐
1. 基本信息 论文题目:LLM-Rec: Personalized Recommendation via Prompting Large Language Models 作者:Hanjia Lyu, Song Jiang, Hanqing Zeng, Yinglong Xia, Jiebo Luo 机构:University of Rochester, University of California Los Angeles, Meta AI, University of Ro…...
自营店网站建设/重庆seo推广外包
场景:java 解析csv文件例子,csv文件 中文乱码有关问题java 解析csv文件例子,csv文件 中文乱码问题java 解析csv文件例子,采用了第三方包,csv文件 中文乱码问题解析方法:public List resolveCsv(String csvFileName) {CSVReader re…...
做网站的备案/百度一下你就知道手机版
正则表达式经常被用于字段或任意字符串的校验,比如下面这段校验基本日期格式的JavaScript代码:var reg /^(\\d{1,4})(-|\\/)(\\d{1,2})\\2(\\d{1,2})$/; var r fieldValue.match(reg); if(rnull)alert(Date format error!); 1、校验密码强…...
无锡哪里有做网站/企业百度推广怎么收费
场上数据很水,比较暴力的做法都可以过90分以上,下面说几个做法。 1. 暴力枚举所有最大独立集,对每个独立集分别DP。复杂度玄学,但是由于最大独立集并不多,所以可以拿90. 2. dp[S][k]表示考虑到排列的第k位,…...
清远建设工程招投标网站/seo流量是什么意思
练习7-8 方阵循环右移 (20 分) 本题要求编写程序,将给定nn方阵中的每个元素循环向右移m个位置,即将第0、1、⋯、n−1列变换为第n−m、n−m1、⋯、n−1、0、1、⋯、n−m−1列。 输入格式: 输入第一行给出两个正整数m和n(1≤n≤6&a…...
网站运营需要哪些技术/海淀区seo引擎优化多少钱
Lecture 8 Additional Storage Linux上所有的存储设备都需要有一个设备文件对应,这些设备文件位于/dev/目录下。 USB,SCSI,SATA,iscsi设备以sd开头,IDE以hd开头。表示方式:/dev/sd[a-z]N。 这些设备文件由u…...
律师事务所网站设计/营销型网站建设价格
Python 近两年一直霸占编程语言排行榜 Top3,火热程度有目共睹。这也让刚入行的程序员,甚至 BATJ 的技术大牛,都意识到 Python 对于一个程序员职业发展的重要性,将其作为第一/第二开发语言去学习。虽然 Python 以简单易学著称&…...