MYSQL之视图的使用

2023-05-16

视图的使用

使用视图的好处

1、简化select的字段,方便管理。

2、可以针对不同用户,对视图进行不同的查看。也就是说可以做权限管理。

3、视图的语法

CREATE VIEW MYTEST AS 
select 列车号,车辆编号,车门编号,

没有使用视图之前的一个查询语句:

select 列车号,车辆编号,车门编号,
			case 
        when 霍尔信号异常 != 0  then '霍尔信号异常'
				when 电机过流故障 != 0  then '电机过流故障'
				when 门锁到位开关故障 != 0  then '门锁到位开关故障'
				when 安全互锁回路异常故障 != 0  then '安全互锁回路异常故障'
				when 门关到位开关故障 != 0  then '门关到位开关故障'
				when 门地址编码故障 != 0  then '门地址编码故障'
				when 开门超时故障 != 0  then '开门超时故障'
				when 电机过流故障 != 0  then '电机过流故障'
				when 关门超时故障 != 0  then '关门超时故障'
				when 蜂鸣器输出口短路故障 != 0  then '蜂鸣器输出口短路故障'
				when 门FSR故障 != 0  then '门FSR故障'
				when 门测试开关故障 != 0  then '门测试开关故障'
				when 门开故障 != 0  then '门开故障'
				when 门关故障 != 0  then '门关故障'
				when 内部控制电压故障 != 0  then '内部控制电压故障'
				when 内部RS485总线通信故障 != 0  then '内部RS485总线通信故障'
				when 门未经许可离开关锁到位位置故障 != 0  then '门未经许可离开关锁到位位置故障'
				when 关门防挤压故障 != 0  then '关门防挤压故障'
				when 开门防挤压故障 != 0  then '开门防挤压故障'
				when 门故障 != 0  then '门故障'
				when 门驱动电机电路断路故障 != 0  then '门驱动电机电路断路故障'
				when 门位置传感器故障 != 0  then '门位置传感器故障'
				when 数据总线通信故障 != 0  then '数据总线通信故障'
				when 电磁铁故障 != 0  then '电磁铁故障'
				when 电钥匙开关故障 != 0  then '电钥匙开关故障'
			end '故障名称',
			case 
        when 霍尔信号异常 != 0  then 'Y004001'
				when 电机过流故障 != 0  then 'Y004002'
				when 门锁到位开关故障 != 0  then 'Y005001'
				when 安全互锁回路异常故障 != 0  then 'Y001001'
				when 门关到位开关故障 != 0  then 'Y006001'
				when 门地址编码故障 != 0  then 'Y003001'
				when 开门超时故障 != 0  then 'Y006002'
				when 电机过流故障 != 0  then '123'
				when 关门超时故障 != 0  then 'Y006003'
				when 蜂鸣器输出口短路故障 != 0  then 'Y003002'
				when 门FSR故障 != 0  then 'Y006004'
				when 门测试开关故障 != 0  then 'Y006005'
				when 门开故障 != 0  then 'Y006006'
				when 门关故障 != 0  then 'Y006007'
				when 内部控制电压故障 != 0  then 'Y003003'
				when 内部RS485总线通信故障 != 0  then 'Y002001'
				when 门未经许可离开关锁到位位置故障 != 0  then 'Y006008'
				when 关门防挤压故障 != 0  then 'Y006009'
				when 开门防挤压故障 != 0  then 'Y006010'
				when 门故障 != 0  then 'Y006011'
				when 门驱动电机电路断路故障 != 0  then 'Y004003'
				when 门位置传感器故障 != 0  then 'Y006012'
				when 数据总线通信故障 != 0  then 'Y002001'
				when 电磁铁故障 != 0  then 'Y007001'
				when 电钥匙开关故障 != 0  then 'Y007002'
			end '故障代码'
			from 2故障预警登记表 	WHERE 霍尔信号异常 != 0 or 电机过流故障 != 0 or 门锁到位开关故障 != 0 or 安全互锁回路异常故障 != 0 or 门关到位开关故障 != 0 or 门地址编码故障 != 0 or 开门超时故障 != 0 or 电机过流故障 != 0 or 关门超时故障 != 0 or 蜂鸣器输出口短路故障 != 0 or 门FSR故障 != 0 or 门测试开关故障 != 0 or 门开故障 != 0 or 门关故障 != 0 or 内部控制电压故障 != 0 or 内部RS485总线通信故障 != 0 or 门未经许可离开关锁到位位置故障 != 0 or 关门防挤压故障 != 0 or 开门防挤压故障 != 0 or 门故障 != 0 or 门驱动电机电路断路故障 != 0 or 门位置传感器故障 != 0 or 数据总线通信故障 != 0 or 电磁铁故障 != 0 or 电钥匙开关故障 != 0
ORDER BY 故障名称 

查询结果如下所示:
创建视图:

CREATE VIEW MYTEST AS 
select 列车号,车辆编号,车门编号,
			case 
        when 霍尔信号异常 != 0  then '霍尔信号异常'
				when 电机过流故障 != 0  then '电机过流故障'
				when 门锁到位开关故障 != 0  then '门锁到位开关故障'
				when 安全互锁回路异常故障 != 0  then '安全互锁回路异常故障'
				when 门关到位开关故障 != 0  then '门关到位开关故障'
				when 门地址编码故障 != 0  then '门地址编码故障'
				when 开门超时故障 != 0  then '开门超时故障'
				when 电机过流故障 != 0  then '电机过流故障'
				when 关门超时故障 != 0  then '关门超时故障'
				when 蜂鸣器输出口短路故障 != 0  then '蜂鸣器输出口短路故障'
				when 门FSR故障 != 0  then '门FSR故障'
				when 门测试开关故障 != 0  then '门测试开关故障'
				when 门开故障 != 0  then '门开故障'
				when 门关故障 != 0  then '门关故障'
				when 内部控制电压故障 != 0  then '内部控制电压故障'
				when 内部RS485总线通信故障 != 0  then '内部RS485总线通信故障'
				when 门未经许可离开关锁到位位置故障 != 0  then '门未经许可离开关锁到位位置故障'
				when 关门防挤压故障 != 0  then '关门防挤压故障'
				when 开门防挤压故障 != 0  then '开门防挤压故障'
				when 门故障 != 0  then '门故障'
				when 门驱动电机电路断路故障 != 0  then '门驱动电机电路断路故障'
				when 门位置传感器故障 != 0  then '门位置传感器故障'
				when 数据总线通信故障 != 0  then '数据总线通信故障'
				when 电磁铁故障 != 0  then '电磁铁故障'
				when 电钥匙开关故障 != 0  then '电钥匙开关故障'
			end '故障名称',
			case 
        when 霍尔信号异常 != 0  then 'Y004001'
				when 电机过流故障 != 0  then 'Y004002'
				when 门锁到位开关故障 != 0  then 'Y005001'
				when 安全互锁回路异常故障 != 0  then 'Y001001'
				when 门关到位开关故障 != 0  then 'Y006001'
				when 门地址编码故障 != 0  then 'Y003001'
				when 开门超时故障 != 0  then 'Y006002'
				when 电机过流故障 != 0  then '123'
				when 关门超时故障 != 0  then 'Y006003'
				when 蜂鸣器输出口短路故障 != 0  then 'Y003002'
				when 门FSR故障 != 0  then 'Y006004'
				when 门测试开关故障 != 0  then 'Y006005'
				when 门开故障 != 0  then 'Y006006'
				when 门关故障 != 0  then 'Y006007'
				when 内部控制电压故障 != 0  then 'Y003003'
				when 内部RS485总线通信故障 != 0  then 'Y002001'
				when 门未经许可离开关锁到位位置故障 != 0  then 'Y006008'
				when 关门防挤压故障 != 0  then 'Y006009'
				when 开门防挤压故障 != 0  then 'Y006010'
				when 门故障 != 0  then 'Y006011'
				when 门驱动电机电路断路故障 != 0  then 'Y004003'
				when 门位置传感器故障 != 0  then 'Y006012'
				when 数据总线通信故障 != 0  then 'Y002001'
				when 电磁铁故障 != 0  then 'Y007001'
				when 电钥匙开关故障 != 0  then 'Y007002'
			end '故障代码'
			from 2故障预警登记表 	WHERE 霍尔信号异常 != 0 or 电机过流故障 != 0 or 门锁到位开关故障 != 0 or 安全互锁回路异常故障 != 0 or 门关到位开关故障 != 0 or 门地址编码故障 != 0 or 开门超时故障 != 0 or 电机过流故障 != 0 or 关门超时故障 != 0 or 蜂鸣器输出口短路故障 != 0 or 门FSR故障 != 0 or 门测试开关故障 != 0 or 门开故障 != 0 or 门关故障 != 0 or 内部控制电压故障 != 0 or 内部RS485总线通信故障 != 0 or 门未经许可离开关锁到位位置故障 != 0 or 关门防挤压故障 != 0 or 开门防挤压故障 != 0 or 门故障 != 0 or 门驱动电机电路断路故障 != 0 or 门位置传感器故障 != 0 or 数据总线通信故障 != 0 or 电磁铁故障 != 0 or 电钥匙开关故障 != 0
ORDER BY 故障名称 
	

使用创建视图之后的查询语句:

2022.9.19视图的使用
SELECT * FROM MYTEST;

实验结果:

在这里插入图片描述

结论:效果一致 ,但是大大减少的查询语句的使用!!

2、在Navicat中创建好视图之后,可以在QT开发软件中直接使用创建好的视图。
这里通过QT操作视图和之前Navicat操作视图的访问结果是完全一致的。

在这里插入图片描述

视图使用对比

在这里插入图片描述

查看视图

DESCRIBE 可以用来查看视图,语法如下:

DESCRIBE 视图名

DESCRIBE MYTEST

在这里插入图片描述

修改视图

CREATE OR REPLACE VIEW 视图名 AS SELECT [...] FROM [...];

删除视图

DROP VIEW [IF EXISTS]   view_name ,[view_name] ;

在这里插入图片描述

注意点:

  1. 视图不是表,不直接存储数据,是一张虚拟的表;
  2. 一般情况下,在创建有条件限制的视图时,加上“WITH CHECK OPTION”命令。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MYSQL之视图的使用 的相关文章

  • 如何在 MySql Workbench 中禁用 INVISIBLE 索引选项?

    我刚刚安装了MySqlWorkbench我发现了实施INVISIBLE index所描述的here https dev mysql com doc refman 8 0 en invisible indexes html 我想禁用此功能 因
  • 在 MySQL 表中存储用户密码的最佳 PHP 哈希方法?

    我已经阅读 Stack Overflow 问题大约 15 分钟了 每一个问题似乎都与我之前读到的问题相矛盾 Bcrypt SHA1 MD5 等 我目前对我的密码进行 MD5 但我想让我的数据库在发生泄露时更加安全 我知道这个问题已经被问了一
  • 在 while 循环内查询可以吗?

    我在一个数据库中有两个表 我正在查询第一个表限制 10 然后循环结果 在 while 循环内 我使用第一个查询中的数据作为参数再次执行另一个查询 以下是该脚本的示例
  • PDO 库比本机 MySQL 函数更快吗?

    我已经阅读了几个与此相关的问题 但我担心它们可能已经过时 因为自这些问题得到解答以来 更新版本的 PDO 库已经发布 我编写了一个 MySQL 类 它构建查询并转义参数 然后根据查询返回结果 目前这个类正在使用内置的mysql函数 我很清楚
  • MySQL:更新所有行将字段设置为0,但将一行的字段设置为1

    是否有一种有效的方法将行字段的选择更新为 0 但根据 ID 将其中一行设置为 1 基本上 我在数据库中有多个对象 我想在其中一个 inuse 之间切换 因此查询将其中一行 按 id 设置为 inuse 1 将其他行设置为 inuse 0 谢
  • MySQL 连接不工作:2002 没有这样的文件或目录

    我正在尝试设置 WordPress 我已经运行了 Apache 和 MySQL 并且帐户和数据库都已设置 我尝试建立一个简单的连接 我总是得到这个 错误 2002 没有这样的文件或 目录 它正在谈论什么文件或目录 我使用的是 OS X Sn
  • BigDecimal 的 JPA @Size 注释

    我该如何使用 SizeMySQL 的注释DECIMAL x y 列 我在用着BigDecimal 但是当我尝试包括 Size max它不起作用 这是我的代码 Size max 7 2 Column name weight private B
  • MySQL ALTER TABLE 挂起

    我知道这个问题已经被问过好几次了 但我的问题发生在我刚刚创建的表上 它只有 10 列和 1 行 因此 与通常的挂起问题不同 这不是具有大量数据的大表的情况 但它仍然挂着 这是我正在运行的 SQL ALTER TABLE db Search
  • Mysql:计算访问频率

    我有这张桌子 CREATE OR REPLACE TABLE hits ip bigint page VARCHAR 256 agent VARCHAR 1000 date datetime 我想计算每个页面的 googlebot 访问频率
  • 当我耗尽 bigint 生成的密钥时会发生什么?怎么处理呢?

    我自己无法想象一个好的答案 所以我想在这里问 在我心里 我总是想知道 如果AUTO INCREMENT PRIMARY ID我的专栏MySQL表用完了吗 举例来说 我有一个有两列的表 一个ID auto increment primary
  • MySQL 查询获取每小时计数

    我需要统计每小时发生的操作次数 我的数据库按操作的时间戳保存日志 我明白我可以做一个 SELECT table time COUNT table time from table t group by t time 然而 也有一段时间没有采取
  • MySQL 全文搜索之谜

    我们的网站上有一个使用 MySQL 全文搜索的简单搜索 但由于某种原因 它似乎没有返回正确的结果 我不知道这是否是 Amazon RDS 我们的数据库服务器所在的位置 或我们请求的查询的某种问题 这是数据库表的结构 CREATE TABLE
  • ORDER BY id 或 date_created 显示最新结果?

    我有一个表 实际上有几个 我想首先从中获取最新条目的结果 这是我的ORDER BY条款选项 date created INT 从不改变值 id 当然是INT AUTO INCRMENT 两列应同等地代表记录插入的顺序 我自然会使用date
  • 将程序存储在 phpMyAdmin 中

    我必须将存储过程添加到 MySQL 数据库 问题是托管提供php我的管理员来管理数据库 我在网上搜索了一下 想法是运行创建程序的MySQL本机语句 但由于程序的代码通常可能有 我们必须更改 MySQL 中的分隔符 php我的管理员没有这个选
  • MySql JOINS 的优点/缺点

    当我从多个表中选择数据时 我经常使用 JOINS 最近我开始使用另一种方式 但我不确定从长远来看会产生什么影响 例子 SELECT FROM table 1 LEFT JOIN table 2 ON table 1 column table
  • 使用 RMySQL 会干扰 RPostgreSQL

    我有一个 R 脚本 我想从 MySQL 数据库中提取一些数据 然后从 PostgreSQL 数据库中提取一些数据 但是 从 RMySQL 加载 MySQL 驱动程序会阻止我从以下位置加载 PostgreSQL 驱动程序 PostgreSQL
  • 如何列出表中的所有列?

    对于各种流行的数据库系统 如何列出表中的所有列 对于 MySQL 请使用 DESCRIBE name of table 只要您使用 SQL Plus 或 Oracle 的 SQL Developer 这也适用于 Oracle
  • 如何对主索引重新编号

    我有一个简单的 MySQL 表 主索引 id 不是一一编号的 1 31 35 100 等 我希望它们的编号如 1 2 3 4 请告诉我该怎么做 我还想指出的是 我知道该操作可能产生的后果 但我只是想整理一下表格 我同意其他方法也可以 但我只
  • php echo 不工作

    我的代码似乎不起作用 单选按钮出现 但旁边什么也没有 似乎 mysql fetch array 由于某种原因无法工作 因为我已经玩过代码并反复测试它以查找代码似乎遇到的位置出现问题并停止工作 有人可以告诉我出了什么问题吗 欢呼声我是新手 最
  • mysql计算唯一行值

    TABLE quotation id clientid 1 25 2 25 3 25 4 25 5 26 如何查询有多少个不同的客户端TABLE quotation 我不希望重复的条目被计算多次 我需要的答案是2 在 1 行中 因为唯一的非

随机推荐

  • C语言 转换10进制为16进制

    实际上就是除16取余然后将其本身除以16 xff0c 得到的这一个数将它转换为具体的16进制数字的过程 xff0c 当然最后还要注意前面的字符位置的添加 span class token comment 进制之间互相转换 xff1a 将十进
  • TCP协议是如何保证传输可靠性的

    TCP确保传输可靠性的方式 校验和序列号 确认应答超时重传连接管理流量控制 xff08 滑动窗口控制 xff09 拥塞控制 校验和 xff1a TCP校验和是一个端到端的校验和 xff0c 由发送端计算 xff0c 然后由接收端验证 其目的
  • TCP的三次握手与四次挥手详解

    文章目录 TCP 协议简述TCP包首部TCP 三次握手建立连接TCP 四次挥手关闭连接常见面试题 xff1a TCP 协议简述 TCP 提供面向有连接的通信传输 xff0c 面向有连接是指在传送数据之前必须先建立连接 xff0c 数据传送完
  • IP数据报格式及分片与重组

    IP数据报 在 TCP IP 协议中 xff0c 使用 IP 协议传输数据的包被称为 IP 数据报 xff08 也叫数据包或数据报文 xff09 xff0c 每个数据包都包含 IP 协议规定的内容 IP协议提供不可靠无连接的数据报传输服务
  • mysql锁机制

    MySQL的锁机制 文章目录 MySQL的锁机制1 行锁2 表锁3 页锁4 乐观锁和悲观锁4 1悲观锁4 2乐观锁5 1InnoDB锁的特性 首先对mysql锁进行划分 xff1a 按照锁的粒度划分 xff1a 行锁 表锁 页锁按照锁的使用
  • uboot开发流程

    uboot其实就是一段比较复杂的单片机代码用来作为引导程序 xff0c 它的主要任务是初始化硬件设备 xff0c 将系统的软硬件环境带到一个合适的状态 xff0c 再将内核从一种存储介质读入到内存中 xff0c 然后跳到内核的入口点去运行
  • java的几种IO

    Java IO方式大体上可以分为三类 xff0c 基于不同的io模型可以简单分为同步阻塞的BIO 同步非阻塞的NIO和异步非阻塞的AIO IO又主要可以分为文件IO和网络IO 针对Java的网络IO模型 xff0c 可以看网络IO模型 xf
  • 哈希冲突和一致性哈希

    文章目录 哈希冲突处理哈希冲突1 开放地址法2 再散列法3 链地址法4 建立一个公共溢出区 一致性哈希普通 hash算法普通 hash 算法的缺陷 一致性哈希算法一致性 hash 算法的优点hash 环的倾斜与虚拟节点 哈希冲突 哈希函数又
  • Redis IO多路复用理解

    IO多路复用在Redis中的应用 Redis 服务器是一个事件驱动程序 xff0c 服务器处理的事件分为时间事件和文件事件两类 文件事件 xff1a Redis主进程中 xff0c 主要处理客户端的连接请求与相应 时间事件 xff1a fo
  • 分布式理论CAP,BASE

    什么是CAP理论 xff1f CAP理论指的是一个分布式系统最多只能同时满足一致性 xff08 Consistency xff09 可用性 xff08 Availability xff09 和分区容错性 xff08 Partition to
  • javaEE接收request参数以及输出结果到html页面

    1 引入需要的类 这里需要注意 xff0c servlet类不是jre自带的 xff0c 需要自己添加 添加相关类主要有以下两种方式 xff1a 下载servlet api jar xff08 tomcat自带 xff09 然后添加到cla
  • 西门子博途数据块(DB块)快速导入导出

    有些人可能会想用查表法计算CRC校验码 查表法效率和速度都很高 但是空间换时间 让你用几秒钟时间 把一张完整的表存入博途里 就算了你单身20年的手速估计也完成不了 想要几秒钟完成也不是不可以 就是导入别人的源文件 拿来主义当然块 继续上图
  • opencv4.0学习笔记

    目录 课程来源 xff1a 哔哩哔哩大学 第一节课 显示第一张图片 环境配置了一个早上 xff0c 到10 48分配置完毕 xff0c 有点难受 还好最后显示出第一张图片 include span class token operator
  • 程序人生

    http zhan renren com itonline from 61 template amp checked 61 true
  • 传感器的使用(一)-火焰传感器

    火焰传感器的介绍 1 工作电压 xff1a DC 3 3V 5V 2 灵敏度可调 xff08 可调电位器 xff09 3 工作温度 xff1a xff0d 10 xff0b 50 4 设有固定螺铨孔 xff0c 方便安装 5 探测角度 60
  • 传感器的使用(二)-温湿度传感器DHT11(HAL库实现)

    温湿度传感器的介绍 DHT11技术性能特征 工作电压范围 xff1a 3 3V 5 5V 工作电流 xff1a 平均0 5mA 输出 xff1a 单总线数字信号 测量范围 xff1a 湿度20 90 xff05 RH xff0c 温度0 5
  • Makefile详解及使用

    内容来自大丙老师的blog Makefile简介 linux环境下 xff0c 当用户编译文件过多的时候 xff0c 使用makefile可以帮助模块化编译文件 xff0c makefile是一个脚本文件 xff0c 根据规则 xff0c
  • QT绘制实时动态曲线——qcustomplot使用(二)

    在QT绘制实时动态曲线 qcustomplot使用 xff08 一 xff09 中 xff0c 介绍使用官方的demo实现动态实时曲线 官方代码移植 针对动态显示数据项目要求 xff0c 移植官方代码demo 开启绘图的函数 span cl
  • QT的多种功能使用记录

    设置控件的边角为圆角 xff1a border top left radius 设置左上角圆角 border top right radius 设置右上角圆角 border bottom left radius 设置左下角圆角 border
  • MYSQL之视图的使用

    视图的使用 使用视图的好处 1 简化select的字段 xff0c 方便管理 2 可以针对不同用户 xff0c 对视图进行不同的查看 也就是说可以做权限管理 3 视图的语法 CREATE VIEW MYTEST AS select 列车号