MySQL视图

【MySQL】视图 视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自我们定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SQL查询语句上。 阅读详情

1.创建视图
创建视图的语法:
CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    VIEW view_name [(column_list)]
    AS select_statement
    [WITH [CASCADED | LOCAL] CHECK OPTION]
其中,CREATE:表示新建视图;
REPLACE:表示替换已有视图;
ALGORITHM :表示视图选择算法;
view_name :视图名;
column_list:属性列;
select_statement:表示select语句。
[WITH [CASCADED | LOCAL] CHECK OPTION]参数表示视图在更新时保证在视图的权限范围之内。
可选的ALGORITHM子句是对标准SQL的MySQL扩展。
ALGORITHM可取三个值:MERGE、TEMPTABLE或UNDEFINED。
对于MERGE,会将引用视图的语句的文本与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分。
对于TEMPTABLE,视图的结果将被置于临时表中,然后使用它执行语句。
对于UNDEFINED,MySQL自己选择所要使用的算法。
如果可能,它倾向于MERGE而不是TEMPTABLE,这是因为MERGE通常更有效,而且如果使用了临时表,视图是不可更新的。
LOCAL和CASCADED为可选参数,决定了检查测试的范围,默认值为CASCADED。
CREATE VIEW stu_class(id,NAME,glass) AS SELECT student.`stuno`,student.`stuname`,stuinfo.`class` FROM student ,stuinfo WHERE student.`stuno`=stuinfo.`stuno`
SELECT * FROM stu_class
2.查看视图
查看视图必须要有SHOW VIEW权限。
查看视图的方法包括:DESCRIBE、SHOW TABLE STATUS、SHOW CREATE VIEW。
DESCRIBE stu_class;
SHOW TABLE STATUS LIKE 'stu_class';
SHOW CREATE VIEW stu_class;
3.修改视图
MYSQL中通过CREATE OR REPLACE VIEW 语句和ALTER语句来修改视图
语法如下:
ALTER OR REPLACE [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
该语句用于更改已有视图的定义。其语法与CREATE VIEW类似。当视图不存在时创建,存在时进行修改。
实例:

DELIMITER $$
CREATE OR REPLACE VIEW `stu_class` AS 
SELECT
  `student`.`stuno`   AS `id`
FROM (`student` JOIN `stuinfo`)
WHERE (`student`.`stuno` = `stuinfo`.`stuno`)$$
DELIMITER;
DESC stu_class;
alter语句修改视图:
ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION];
使用ALTER语句修改视图 stu_class:
ALTER VIEW  stu_class AS SELECT stuno FROM student;
使用DESC查看:
DESC stu_class;
4.更新视图
UPDATE stu_class SET stuname='xiaofang' WHERE stuno=2
DELETE FROM stu_class WHERE stuno=1
INSERT INTO stu_class VALUES(6,'haojie');
当视图中包含如下内容的时候,视图的更新操作将不能被执行。
(1)视图中包含基本中被定义为非空的列;
(2)定义视图的SELECT语句后的字段列表中使用了数学表达式;
(3)定义视图的SELECT语句后的字段列表中使用聚合函数;
(4)定义视图的SELECT语句中使用了DISTINCT、UNION、TOP、GROUP BY 、HAVING子句。
5.删除视图
删除视图使用DROP VIEW语法:
DROP VIEW [IF EXISTS]
view_name [, view_name] ...
[RESTRICT | CASCADE]
DROP VIEW能够删除1个或多个视图。必须在每个视图上拥有DROP权限。
可以使用关键字IF EXISTS来防止因不存在的视图而出错。
删除stu_class视图:
DROP VIEW IF EXISTS stu_class 
如果名称为 stu_class 的视图存在则删除。

【MySQL】mysql 视图转物化视图 create view stu_class (编号,姓名,班级)asselect student.id,student.name,stu_info.class from student,stu_info where student.id=stu_info.id;例一:现有一stu_info表(id,class,address),id为学生编号,创建视图,包含编号,姓名,班级。例一:现有student表(id,name,math,chinese),创建视图包含数学成绩,语文成绩,总成绩。 阅读详情

相关推荐

MySQL —— 视图

视图是一张虚拟的表,它是基于一个或多个基本表或其他视图的查询结果集。视图本身不存储数据,而是通过执行查询来动态生成数据,用户可以像操作普通表一样使用视图来进行查询更新与管理等操作。视图本身也不占用物理存储空间,它仅仅是一个查询的逻辑表示,物理上它依赖于基础表中的数据。语法:当我们有一个复杂的 sql 查询时,如果每次都有这个需求,那么每次就要写相同的 sql 语句,例如:现在有四张表,如下所示,学生表,成绩表,班级表和课程表 现在有一个需求:查询学生的 id ,姓名,对应的班级 ,课程名字以及对应的成绩,我

m0_74823595的博客 635

MySQL表相关注释

MySQL添加注释 在数据库设计中,我们是建议为数据库,数据表以及数据字段进行添加注释的,MySQL数据库中, 字段或列的注释是用属性comment来添加。 创建新表的脚本中, 可在字段定义创建表脚本中添加comment属性来添加注释。 示例代码如下: 1 create table test( 2 id int not null default 0 comment '用户id'...

yangman 584

PCB布局规范及其注意事项(纯干货)

这样做的好处是信号1,3层不会有串扰,4和5作为电源有紧密的耦合,3个信号层都有GND平面可以参考,且不会互相产生串扰,唯一的缺点是布线的层面只有3个信号层(信号03的是最适合来传输高速信号,因为该层的二面都有屏蔽,防止干扰传出,也防止干扰传入)33、影响阻抗匹配的参数(ER介电常数(1GHZ以下默认为4.2,以上的话问板厂),H介质厚度(就是内层压合的PP片厚度),W走线的线宽,T走线的厚度(铜厚/减小线的厚度可以增大阻抗))我这里使用的是CITS25来计算阻抗。

qq_42379138的博客 8847

mysql设置账号只能访问某些表,某些字段的权限

创建一个只包含允许访问的字段的视图,并将权限授予用户访问该视图。假设您已创建名为"mydatabase"的数据库和表"table1"和"table2"。这将允许用户"myuser"在"mydatabase"中执行SELECT、INSERT、UPDATE和DELETE操作。这将允许用户"myuser"查询"restricted_view"视图并访问其中的"name"和"email"字段。这将创建一个用户名为"myuser"、密码为"password"的用户,并限制其仅能从本地主机连接。

Cynhard_Cheung的博客 4895

阿里云导出的镜像raw转换成vmdk格式工具

阿里云导出的镜像raw转换成vmdk格式工具 1.安装java环境,安装教程不介绍了 2.raw2vmdk软件下载: 在我的链接里面: 3.使用 打开cmd.bat软件: java -jar raw2vmdk.jar (原镜像)C:\\images\\raw\\disk.img (转换的镜像)D:\\images\\vmdk\\disk.vmdk 4.vmware打开vmdk文件 ...

3845

Windows报错“The system cannot find the file specified“的PATH环境变量解决方案

摘要: Windows系统中出现"The system cannot find the file specified"错误通常因PATH环境变量配置问题导致。本文提供解决方案:1)检查并修正PATH变量(通过命令行或图形界面添加缺失路径);2)确认程序安装路径及拼写无误;3)恢复误改的系统变量。示例演示了Python路径配置及无效路径清理方法,建议谨慎修改变量、使用绝对路径并定期检查。附参考表格详述操作步骤,帮助用户高效解决问题并优化系统环境。

shejizuopin的博客 3518

MySQL视图创建和给予用户视图权限

MySQL视图创建和给予用户视图权限

weixin_45086164的博客 5820

hcaptcha-challenger:基于本地AI模型自动破解验证码的工程实践

验证码作为区分人类与机器的经典安全机制,其核心原理是通过图像识别、行为分析等交互式挑战来阻挡自动化程序。传统绕过方法依赖第三方打码平台或脚本,存在成本高、稳定性差的问题。随着多模态大语言模型和计算机视觉技术的发展,本地化AI求解成为新的技术方向,它通过集成YOLO、ResNet等模型,在本地完成图像语义理解,实现了高隐私、低成本、可进化的验证码自动化解决方案。这种范式尤其适用于需要大规模稳定处理网页交互的场景,如电商数据采集和社交媒体管理。hcaptcha-challenger项目正是这一理念的工程实践,它

weixin_42587866的博客 1028

MySQL查看视图

查看视图 是指查看数据库中,已经存在的视图的定义 查看视图,必须要有SHOW VIEW的权限查看视图有三种方式使用DESCRIBE语句使用DESCRIBE语句,查看视图 MySQL中,使用DESCRIBE可以查看视图的字段信息,其中,包括字段名、字段类型等信息语法格式 DESCRIBE 视图名; 或者简写 DESC 视图名;使用describe语句,查看stu_class视图可以看出,显

天高任鸟飞 4万+

c#【保姆级教程】基于System.Text.Json 支持多态类型序列化! 手把手教你实现一个通用的 PolymorphicJsonConverter!

我们需要自己实现一个继承自的转换器,在序列化时记录具体类型,在反序列化时根据类型标识还原成正确的子类对象。public abstract class WorkStepBase { /* 抽象方法等 */ }public class Person : WorkStepBase { /* 实现 */ }public class Product : WorkStepBase { /* 实现 */ }特性说明✅ 自动发现子类无需手动维护类型列表,自动扫描程序集✅ 类名映射。

一个编程的同学 425

PyQt5开发编译器安装(PyCharm安装)

PyCharm 提供了最完整的 PyQt5 开发体验,特别是其集成的调试工具和 Qt Designer 支持,能显著提高开发效率。是最受欢迎和功能最完整的 IDE。它专门为 Python 开发优化,对 PyQt5 有很好的支持。右键运行该文件,如果出现窗口说明配置成功。对于 PyQt5 开发,

啊渊的专栏 419

mysql视图创建以及权限

一、视图介绍 创建视图是指在已经存在的 MYSQL 数据库表上建立视图。视图可以建立在一张表中,也可以建立在多张表中。 语法格式如下: CREATE VIEW <视图名> AS <SELECT语句> <视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。 <SELECT语句>:指定创建视图的 SELECT 语句,...

chenhongming888的博客 7794

第133章 PCL OrientedBoundingBox 有向包围盒

中文叫有向包围盒,是一种旋转过的包围盒。特点:不像AABB那样固定朝向坐标轴能更紧密地包裹物体适用于复杂姿态的物体,比如倾斜、旋转的物体通常通过PCA、惯性矩等算法确定方向。

yumeiguo的博客 264

【MySQL进阶】MySQL视图详解

小杨带你学MySQL进阶内容视图的相关知识,一文让你掌握视图的概述,视图的增删查改操作,视图数据的增删查改操作,视图的级联检查和非级联检查以及视图的优缺点。

小杨的博客 5431

五种音频器件综合对比——《器件手册--音频器件》

音频器件当在蜂鸣片的两片电极之间接通交流音频信号时,蜂鸣片会根据信号的大小和频率发生振动,从而产生相应的声音。结构简单、造价低廉。广泛应用于玩具、电子表、电子仪器、电子钟表、定时器等电子电器方面。蜂鸣器是一种一体化结构的电子讯响器,采用直流电源供电,广泛应用于各种电子产品中作发声器件有源蜂鸣器:内部带震荡源,通电即发声,程序控制方便。无源蜂鸣器:内部不带震荡源,需用方波驱动,声音频率可控,价格相对便宜。计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品。

XU157303764的博客 1535

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Mysql视图

1.初识视图 1.视图的概念和作用 什么是视图:是从一个或多个表中导出来的表,它是一种虚拟存在的表,表的结构和数据都依赖于基本表。 作用: 简化查询语句:简化用户的查询操作,使查询更加快捷。 安全性:更方便的进行权限控制。 逻辑数据独立性:屏蔽真实表结构变化带来的影响。 2.创建视图语法 CREATE[OR REPLACE][ALGORITHM = {UNDEFINED |MERGE│TEMPTABLE] [DEFINER= { user | CURRENT_USER] [SQL SECURITY { DE

海盗船长y的博客 5584

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

MYSQL视图

MYSQL视图

Excuse_lighttime的博客 1347

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

MySQL创建视图语法,MySQL视图的作用

MySQL创建视图语法,MySQL视图的作用 一、语法 1、 MySQL创建视图语法如下: CREATE VIEW view_name AS SELECT * FROM table_name ; 2、view_name:必填,唯一不可重复。 3、调用视图: SELECT * FROM view_name ; 4、查看视...

HaHa_Sir的博客 5483

MySQL | 视图

本篇文章详细介绍了怎么创建视图、查看视图、修改视图、更新视图和删除视图等mysql数据库知识。

天下弈星~的博客 1万+

【Mysql】视图

Mysql的视图概念,作用,使用修改删除视图

2303_77535762的博客 889

mysql之视图

保姆级教程,实操有效

qq_66129888的博客 1548

mysql 视图

视图是从一个或多个表中导出来的表,是一种虚拟存在的表。视图就像一个窗口,通过这个窗口可以看到系统专门提供的数据。这样,用户可以不用看到整个数据库表中的数据,而只关心对自己有用的数据。视图可以使用户的操作更方便,而且可以保障数据库系统的安全性。 1 、视图简介 视图由数据库中的一个表或多个表导出的虚拟表。其作用是方便用户对数据的操作。 1.1 视图的含义 视图是一种虚拟的表,是从数据库中一个或多个表中导出来的表。视图还可以从已经存在的视图的基础上定义。数据库中只存放了视图的定义,而并没有存放视图中的数

weixin_45441862的博客 2312

MySQL 视图

什么是 MySQL 视图呢,其实就是一张由查询创建的虚拟表,所谓视图(View):视图是由查询结果形成一张虚拟的表。非临时表,只要不删除的话就会一直存放在磁盘上,但是没有对应的文件。视图的使用和正常的表的使用一样。视图是数据库中数据的定制的子集,可以限制用户直接访问原始表,确保用户通过视图来操作数据,这种机制有效地保护了用户和应用程序,减少了数据库结构变更对它们的影响。视图是一种抽象层,动态地从表中提取信息,创建出一个看似实体的虚拟表。

是个非常热爱生活、乐观、奋斗、努力的逗比青年 1625
上一篇: MySQL索引的创建与删除
下一篇: MySQL存储过程和函数详细定义
Yaroo
博客等级 码龄11年 88粉丝 115原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值