Mysql_view视图语法及介绍

FPGA之串口收发字符串之(四)——串口屏USART_HMI介绍 之前对串口各模块的设计都做了相关介绍。这里介绍串口屏的相关知识。 本次项目使用的串口屏型号是陶晶驰串口屏TJC3224T024_011,这个型号的串口屏的资料在官网可以找到。本文抛转引玉,简单介绍以便在本工程中更好的应用。 下图是该串口屏的实物图: 一般地,使用单片机或者嵌入式MCU控制串口屏,都会用到串口,同样地,在FPGA中实现也是类似,不过稍微复杂,具体代码设计过程中有以下问题需要... 阅读详情

#视图介绍

 

    含义:虚拟表,和普通表一样使用

        mysql5.1版本出现的新特性,是通过表动态生成的数据

        应用场景:

            多个地方用到同样的查询结果

            该查询结果使用的sql语句较复杂

 

     视图与普通表的对比:

                    创建语法的关键字       是否实际占用物理空间            使用

        视图        create view              只是保存sql逻辑                    增删改查,一般不能增删改一般只用到查

        表            create table            保存了数据                              增删改查

 

        #案例:查新姓名以字母k开头的员工名和部门名

            #不用视图做 以前的连接查询

                SELECT Last_name,department_name

                FROM employees e

                INNER JOIN departments d ON e.`department_id`=d.`department_id`

                WHERE e.`last_name` LIKE 'k%';

 

            #视图 就相当于将查询进行封装了

                CREATE VIEW v1

                AS

                SELECT Last_name,department_name

                FROM employees e

                INNER JOIN departments d ON e.`department_id`=d.`department_id`;

            #直接用视图做表进行筛选

                SELECT * FROM v1 WHERE `last_name` LIKE 'k%';

            

select *from v1; 同是也可以查看创建视图的信息表

 

#一、创建视图

        语句:

            create view 视图名

            as

            查询语句;

 

    #案例1.查询姓名中包含a字符的员工名、部门名和工种信息

    #1.创建视图

        CREATE VIEW myv1

        AS

        SELECT Last_name,department_name,j.*

        FROM employees e

        INNER JOIN departments d ON e.department_id=d.department_id

        INNER JOIN jobs j ON e.job_id=j.job_id;

    #2.对视图进行筛选

        SELECT *FROM myv1 WHERE Last_name LIKE '%a%';

 

    #案例2.查询各部门的平均工资级别

    #Ⅰ.创建视图查看每个部门的平均工资

        CREATE VIEW myv2

        AS

        SELECT AVG(e.salary) ag_sal,e.department_id

        FROM employees e

        GROUP BY e.department_id;

 

    #Ⅱ.在Ⅰ的基础上进行一个非等值连接的操作

        SELECT ag_sal,department_id,grade_level

        FROM myv2 v2

        INNER JOIN job_grades g

        ON v2.`ag_sal` BETWEEN g.`lowest_sal` AND g.`highest_sal`;

    #mysql视图是不支持子查询的

        CREATE VIEW myv2

        AS

        SELECT ag_sal,department_id,grade_level

        FROM (#子查询mysql不支持

            SELECT AVG(e.salary) ag_sal,e.department_id

            FROM employees e

            GROUP BY e.department_id

        ) avg_dep

        INNER JOIN job_grades g ON ag_sal BETWEEN g.lowest_sal AND g.highest_sal;

        

 

    #案例3.查询平均工资最低的部门信息

        #1.创建视图 查询每个部门的平均工资的部门信息

        CREATE VIEW myv3

        AS

        SELECT AVG(salary) ag,d.*

        FROM employees e

        INNER JOIN departments d ON e.department_id=d.department_id

        GROUP BY d.department_id;

        #2.在myv3视图基础上进行筛选

        SELECT MIN(myv3.`ag`),myv3.* FROM myv3;

 

    #案例4.查询平均工资最低的部门名和工资

        在myv3视图基础上进行筛选

        SELECT MIN(myv3.`ag`) AS salary,department_name FROM myv3;

 

    #二、视图的修改

    #方式一:

        create or replace view 视图名  v3视图如果存在则替换新的 视图不存在直接创建

        as

        查询语句;

 

        SELECT * FROM v1;

        #将视图v1 替换成查询每个工种的平均工资

            CREATE OR REPLACE VIEW v1

            AS

            SELECT AVG(salary),job_id

            FROM employees

            GROUP BY job_id;

 

    #方式二:

        语法:

        alter view 视图名

        as

        查询语句;

 

        #v3修改为员工工资的级别

            ALTER VIEW v1

            AS

            SELECT last_name,salary,grade_level

            FROM employees e

            INNER JOIN job_grades g

            ON e.salary BETWEEN `lowest_sal` AND `highest_sal`;

 

    #三、删除视图

        语法:drop view 视图名,视图名,视图名,...

        DROP VIEW v1;

 

    #四、查看视图

        #方式一 desc 视图名;

                DESC v1;

        #方式二 show create view 视图名;

                SHOW CREATE VIEW v1;

 

        #案例一、创建视图emp_v1,要求查询电话号码以'011'开头的员工姓名和工资、邮箱

            CREATE OR REPLACE VIEW emp_v1

            AS

            SELECT last_name,salary,email

            FROM employees

            WHERE phone_number LIKE '011%';

            SELECT * FROM emp_v1;

            

 

        #案例二.创建视图emp_v2,要求查询部门的最高工资高于12000的部门信息

            CREATE OR REPLACE VIEW emp_2

            AS

            SELECT MAX(salary) mx,department_id

            FROM employees

            GROUP BY department_id;

          #通过查询emp_v2视图 对视图进行筛选

            SELECT d.*,mx

            FROM emp_2

            INNER JOIN departments d

            ON emp_2.`department_id`=d.`department_id`

            WHERE mx>12000;

        

 

#五、视图的更新

       #可以更改视图的数据

 

        CREATE OR REPLACE VIEW my_info

        AS

        SELECT Last_name,email

        FROM employees;

        SELECT *FROM my_info;

 

    #1.插入

        INSERT INTO my_info VALUE('李四','admi999@qq.com');

        视图插入数据成功 

        

          同时原始employees表中也成功插入数据

 

    #2.更新

        #my_info视图成功修改

         UPDATE my_info SET Last_name='俊杰' WHERE Last_name='李四';

    

    同时原始employees表中也成功修改数据

 

    

  #3.删除

        #my_info视图成功删除 原employees表也修改删除

        DELETE FROM my_info WHERE Last_name='俊杰';

      

         同时原始employees表中也成功删除数据

        

    对于视图的更新、修改、删除、会对原始表进行修改 一般会对视图进行权限限制 一般视图是只读

 

#具备以下特点的视图不允许更新的

    #1.包含以下关键字的sql语句:分组函数、 distinct、 group by、 having、 union或者union all

    #创建视图查询每个部门的最高工资

        CREATE OR REPLACE VIEW max_sa_dep

        AS

        SELECT MAX(salary) mx,department_id

        FROM employees

        GROUP BY department_id;

 

        SELECT *FROM max_sa_dep;

    #更新操作 存在分组函数和group by子句 执行更新操作会     出现不允许更新错误

        UPDATE max_sa_dep SET mx=11111 WHERE department_id=10

    

 

    #2.常量视图

        CREATE OR REPLACE VIEW max_sa_dep

        AS

        SELECT 'tomcat' NAME;

        SELECT *FROM max_sa_dep;

        #对常量视图 也不可更新等相关操作 也会报错

        UPDATE max_sa_dep SET NAME='lucy';

 

    #3.Select中包含子查询

        CREATE OR REPLACE VIEW v2

        AS

        SELECT (SELECT MAX(salary) FROM employees) 最高工资;

        #对Select中包含子查询视图 也不可更新等相关操作 也会报错

        UPDATE v2 SET 最高工资=10000;

 

    #4.join 可以update 但不能insert、delete

        CREATE OR REPLACE VIEW v2

        AS

        SELECT Last_name,department_name

        FROM employees e

        INNER JOIN departments d ON e.department_id=d.department_id;

        #更新 但还是更新没错 但对原始表数据进行了修改  插入就会报异常

        UPDATE v2 SET Last_name='李四' WHERE Last_name='whalen';

        

 

        INSERT INTO v2 VALUE('lucy','xxx');    插入就会报异常

        

 

    #5.from一个不能更新的视图

        CREATE OR REPLACE VIEW v3

        AS

        SELECT * FROM v2; #那视图v2做数据 创建v3视图

        #更新

        INSERT INTO v3 VALUE('lucy','xxx');

        

 

    #6.where子句的子查询引用了from子句中的表

        CREATE OR REPLACE VIEW v4

        AS

        SELECT Last_name,Salary,email

        FROM employees

        WHERE manager_id IN (

            SELECT e.manager_id

            FROM employees e

            WHERE e.manager_id IS NOT NULL

        );

        #更新

        SELECT * FROM v4;

        UPDATE v4 SET Salary=12222 WHERE Last_name='kocjjar';

        

 

制作Ubuntu22.04启动盘 现在越来越多程序代码都需要运行在linux环境下,运行这些代码的前提是安装一个稳定的linux操作系统。本文选择Ubuntu 22.04去制作系统启动盘。本文主要对ubuntu22.04的启动盘制作过程进行了详细的说明,希望能帮助到有需要的朋友。 阅读详情

相关推荐

MAIXCAM无线连接实战:5分钟搞定远程调试与代码烧录(避坑版)

本文提供了一份详细的MAIXCAM无线连接实战指南,帮助嵌入式视觉开发者快速配置远程调试与代码烧录。文章重点介绍了通过MaixHub IDE进行Wi-Fi配置、建立远程终端连接、使用SFTP进行文件传输以及管理自启动应用程序的完整流程,并针对IP地址变动、信号中断等常见问题提供了实用的避坑解决方案,旨在提升开发效率与灵活性。

weixin_29188043的博客 299

Mysql进阶三板斧(一)带你彻底搞懂View视图的原理及应用,理解透彻

create TABLE student_score( SID INT PRIMARY KEY, TOTAL_SCORE INT NOT NULL, RANK INT NOT NULL, CONSTRAINT FK_ID FOREIGN KEY(SID) REFERENCES student(ID) ) #插入如下: INSERT INTO student_score (SID, TOTAL_SCORE, RANK) VALUES (‘1’, ‘405’, ‘1760’); INSERT INTO stud

m0_64867092的博客 348

CANoe软件之离线报文回放与分析实战

本文详细介绍了如何使用CANoe软件进行离线报文回放与分析,帮助工程师将现场故障数据转化为可反复研究的实验室资源。通过实战步骤,指导如何搭建分析工程、加载DBC文件解码信号,并利用Trace和Graphics窗口进行深度数据筛选与图形化分析,从而高效定位汽车电子故障,是提升诊断效率的关键技能。

weixin_29227585的博客 530

MySQL学习笔记三(索引和视图)

函数 描述 实例 ASCII(s) 返回字符串 s 的第一个字符的 ASCII 码。 返回 CustomerName 字段第一个字母的 ASCII 码: SELECT ASCII(CustomerName) AS NumCodeOfFirstChar FROM Customers; CHAR_LENGTH(s) 返回字符串 s 的字符数 返回字符串 RUNOOB 的字符数 SELECT CHAR_LENGTH("RU..

qq_55906442的博客 966

建议收藏:模拟版图高频面试题,直通面试,Offer抢先拿!

直击模拟版图面试

nuoweishizi的博客 6340

HDMI协议介绍(一)--Overview

HDMI全称(High Definition Multimedia Interface)高清多媒体接口,支持在单线缆上传输全数字高清视频和多声道音频。

SlamDunk的博客 2万+

MySQL 视图(详解)

文章目录一,视图概念使用视图的原因二,创建视图(1)基本语法(2)创建基于单表的视图【实例 1】【实例 2】(3)创建基于多表的视图【实例 3】(4)查询视图【实例 4】三,查看视图1、查询表(包括view)2、查询视图四,修改视图(1)基本语法(2)修改视图内容【实例 1】【实例 2】(3)修改视图名称五,删除视图(1)基本语法(2)删除视图【实例】六,通过视图更新基本表数据(1)INSERT语句通过视图添加数据基本格式【实例1】(2)DELETE语句通过视图删除数据基本格式【实例2】(3)UPDATE语

梁辰兴的博客 5万+

uniapp中renderjs实战:手把手教你实现SSE即时通讯(附完整代码)

本文通过一个完整的实战案例,详细讲解了如何在uni-app中使用RenderJS实现SSE即时通讯功能。文章剖析了RenderJS作为Vue视图层强力补充的原理,并提供了包含自动重连、状态管理等健壮性设计的完整代码,帮助开发者突破框架限制,高效集成浏览器原生API。

weixin_29005499的博客 190

MySQL查看视图

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

sebeefe的博客 1万+

ROS与深度相机入门教程:(1)Ubuntu16.04 在ROS中驱动Intel D435i深度相机

Intel在Github上开源了支持所有RealSense系列相机的SDK,包括了D400、SR300系列深度相机和T265双目跟踪相机,支持Linux、Windows、Mac OS以及Android,链接:https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md#installin...

m0_37957160的博客 2077

ROS与Qt5人机交互界面开发:添加rviz显示界面

最后,点击"完成"以创建新的Qt5应用程序项目。通过结合ROS和Qt5,您可以创建强大的人机交互界面,以实现丰富的机器人控制和数据可视化。在本教程中,我们将在主窗口中创建一个简单的按钮,用于启动rviz显示界面。在Qt Creator的槽函数编辑器中,为按钮添加一个槽函数,该函数将在单击按钮时调用。在上面的代码中,我们使用QProcess类启动了一个新的进程,并执行"rviz"命令来启动rviz显示界面。当您单击Qt5应用程序中的按钮时,将会启动一个新的rviz窗口,显示机器人数据的可视化界面。

CodeJolt的博客 2068

【MySQL】视图

视图(VIEW)也被称作虚表,即虚拟的表,是一组数据的逻辑表示,其本质是对应于一条SELECT语句,结果集被赋予一个名字,即视图名字。视图本身并不包含任何数据,它只包含映射到基表的一个查询语句,当基表数据发生变化,视图数据也随之变化。视图是一种虚拟表,其内容由查询(通常是SQL查询)定义。

2301_80224556的博客 8692

第4章:外包接单全攻略——Upwork/电鸭/猪八戒从0到第一单

> - 三个外包平台的详细对比(适合人群、抽成、防骗) > - 每个平台的Profile优化模板(可直接复制修改) > - 用AI写Proposal的3个Prompt模板(我实测回复率提升50%) > - 报价策略与防骗指南(附5个危险信号) > - 我的第一单复盘:从注册到收款的全过程(含聊天记录脱敏)

sfishfly的博客 579

MySQL 视图View的SQL语法和更新(视图篇 二)

介绍如何操作视图以及视图的更新问题

DU9999999的博客 1729

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

MySQL中视图(view)的基本语法

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33991727的博客 390

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

mysql高级语法- view视图操作

视图和表一样,也可用于查询 1.什么是视图 ? 视图是存储在数据库中的用于查询的SQL语句,使用视图主要用于两种原因: 1. 安全原因。视图可以隐藏一些数据,如对于社会保险金表,可以用视图只显示 姓名、地址,而不显示社会保险好和工资数等。 2. 另一个原因是可使复杂的查询易于理解和使用。 2. 视图的语法 mysql在处理视图时有两种算法,分别为 merge

ntotl的博客 998

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

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

MYSQL-查看创建的视图VIEW 语法(十三)

查看创建视图 SHOW CREATE VIEW

口袋里的小龙的专栏 495

MySQL高级之主从复制与视图:MySQL主从复制、一主一从配置、视图View语法

主从复制 1.复制的基本原理 1.1复制的基本原理 slave会从master读取binlog来进行数据同步 1.2 三步骤+原理图 MySQL复制过程分成三步: 1 master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events; 2 slave将master的binary log events拷贝到它的中继日志(relay lo...

qq_43265673的博客 1139

【Mysql高级语法:视图操作】

Mysql高级语法- view视图操作-yuweixian4230-ChinaUnix博客

u012632105的博客 136

5、修改视图(ALTER VIEW)

修改视图是指修改 MySQL 数据库中存在的视图,当基本表的某些字段发生变化时,可以通过修改视图来保持与基本表的一致性。 基本语法 可以使用 ALTER VIEW 语句来对已有的视图进行修改。 语法格式如下: ALTER VIEW <视图名> AS <SELECT语句> 语法说明如下: <视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。 <SELECT 语句>:指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图

you can you up up up的博客 2万+

MySQL(16)如何创建和删除视图?

视图(View)是数据库中的虚拟表,基于SQL查询定义,用于简化复杂查询、提高数据安全性和增强数据抽象性。本文详细介绍了如何创建、使用、更新和删除视图,并通过代码示例进行了说明。创建视图使用 CREATE VIEW 语句,基于一个或多个表的查询;使用视图时,可以像操作表一样进行查询、筛选和排序。某些视图支持更新操作,会直接影响基础表。删除视图则使用 DROP VIEW 语句。通过视图,数据库管理更加灵活和高效。

qq_43012298的博客 488

MySQL 视图

MySQL 视图 一、实验介绍 1.1 实验内容 本节实验将学习并实践 MySQL 视图的创建、删除和使用。 1.2 实验知识点 视图视图处理算法可更新和插入的视图 1.3 实验环境 课程使用的实验环境为 Ubuntu Linux 14.04 64 位版本。实验中会用到程序: Mysql 5.5.50Xfce终端 二、实验步骤 2.1 创

小白鼠的成长记 776

mysql视图的语法错误_sql – 在Access中尝试CREATE VIEW会出现“CREATE TABLE语句中的语法错误”...

从ADO / OleDb执行时,Access支持CREATE VIEW.此代码段有效,因为CurrentProject.Connection是一个ADO对象…Dim strSql As StringstrSql = "CREATE VIEW NHTrips AS" & vbCrLf & _"SELECT TripID, TripName, StartLocation, State,...

weixin_31920157的博客 1015

sql建用户给视图权限_MySQL基础知识——VIEW视图

点击关注上方“SQL数据库开发”,设为“置顶或星标”,第一时间送达干货视图的定义视图是可视化的表。本章讲解如何创建、更新和删除视图。为什么使用视图 视图在数据库中应用的比较频繁,主要基于以下几点:重用SQL语句。化复杂的SQL操作。在编写查询后,可以方便地重用它而不必知道它的基本查询细节。用表的组成部分而不是整个表。护数据。可以给用户授予表的特定部分的访问权限而不是整个表的访问权限。改数...

weixin_39681621的博客 2252

mysql 创建视图语法_MySQL创建视图的语法格式

视图,具有简化查询语句、安全性和保证逻辑数据独立性等作用创建视图的语法格式视图中,包含SELECT查询的结果,因此,视图的创建基于SELECT语句,和已经存在的数据表,视图可以建立在一张表上,也可以建立在多张表上MySQL中,使用CREATE VIEW语句,创建视图语法格式CREATE [OR REPLACE] [ALGORITHM={UNDEFIEND | MERGE | TEMPTABLE}]...

weixin_35719402的博客 2486

mysql创建视图注意事项_mysql视图创建注意事项(转)

一. 视图概述视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少...

weixin_42665725的博客 2092
上一篇: Mysql_常见约束
下一篇: Mysql_sql的系统变量和自定义变量
YanQiu_Only
博客等级 码龄10年 6粉丝 21原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值