Mysql中视图的使用以及常见运算符的使用示例和优先级

场景

基础知识回顾:mysql中视图的基础使用以及常见运算符的使用示例。

注:

博客:
霸道流氓气质-CSDN博客

实现

Mysql中视图的使用

视图的创建

CREATE VIEW stu_view AS
SELECT * FROM bus_student;

视图查询

SELECT * FROM stu_view;

查看视图基本信息

SHOW TABLE STATUS LIKE 'stu_view';

执行结果显示,表的 Comment 的值为 VIEW 说明该表为视图,其他信息为 NULL 说明这是一个虚表。

查看视图详细信息

执行结果显示视图的名称、创建视图的语句等信息

SHOW CREATE VIEW stu_view;

修改视图

使用 CREATE OR REPLACE VIEW 语句可以修改视图。当视图存在时可以对视图进行修改,当视图不存在时可以创建视图。

CREATE OR REPLACE VIEW stu_view AS
SELECT id,name,age FROM bus_student;

除了可以使用 CREATE OR REPLACE 修改视图以外,用户还可以使 ALTER 修改

ALTER VIEW stu_view AS
SELECT id,name FROM bus_student;

更新视图

CREATE OR PLAC ALTER 主要是对视图的结构进行修改,其实在 MySQL 中还可以对视图内

容进行更新,也就是对视图进 UPDATE 操作,通过视图增加、删除、修改数据表中的数据,当然对视图

的更新操作实际上是对数据表进行操作

UPDATE stu_view SET name='公众号:霸道的程序猿' WHERE id =1;

当视图中包含以下内容时视图的更新操作不能被执行

视图中不包含基表中被定义为非空的列 

在定义视图的 SELECT 语句后的字段列表中使用了数学表达式。

在定义视图的 SELECT 语句后的字段到表中使用了聚合函数。

在定义视图的 SELECT 语句中使用了 DISTINCT UNION TOP GROUP BY HAVING 子句

注意:虽然修改视图的方法有很多,但不建议对视图频繁修改,一般将视图作为虚拟表未完成查询操作

删除视图

DROP VIEW IF EXISTS stu_view;

Mysql 常用的运算符

算数运算符

CREATE TABLE test1(a INT);
INSERT INTO test1 VALUES(10);
SELECT a,a+10,a-1+2,a+10.5,a*2,a/2,a/3,a%3,a/0 FROM test1;

运行结果

10 20 11 20.5 20 5.0000 3.3333 1 NULL

比较运算符=

SELECT5=6,'8'=8,'0.02'=0,'badao'='badao',(1+6)=(2+5),NULL=NULL;

运行结果

0 1 0 1 1 

-- 在进行数值比较时有以下规则
-- 若有一个或两个操作数为 NULL,则比较运算的结果为 NULL
-- 若同一个比较运算中的两个操作数都是字符串,则按照字符串进行比较。
-- 若两个操作数均为整数,则按照整数进行比较
-- 若一个字符串和一个数字进行相等判断,则 MySQL可以自动将字符串转换为数字。

安全等于运算符<=>

具有=运算符的所有功能,不同的是<=>可以用来判断 NULL 值。当两个操作数均为

NULL 其返回值为1,而不为 NULL; 当其中一个操作数为 NULL 时,其返回值为0,而不为 NULL

SELECT5<=>6,'8'<=>8,'0.02'<=>0,'badao'<=>'badao',(1+6)<=>(2+5),NULL<=>NULL;

运行结果

0 1 0 1 1 1

不等于运算符<> 或者!=

用来判断左边的操作数是否小于等于右边的操作数,如果小于或等于,返回值为1 ,否则返回值0

注意<=不能用于判断空值

SELECT'badao'<='badao',5<=6,8<=8,8.8<=8,(1+2)<=(1+3),NULL<= NULL;

运行结果

1 1 1 0 1 NULL

小于运算符< 

SELECT 'badao'<'badao',5<6,8<8,8.8<8,(1+2)<(1+3),NULL<NULL;

运行结果

0 1 0 0 1 NULL

大于或等于运算符>=

SELECT'badao'>='badao',5>=6,8>=8,8.8>=8,(1+2)>=(1+3),NULL>=NULL;

运行结果

1 0 1 1 0 NULL

大于运算符>

SELECT 'badao'>'badao',5>6,8>8,8.8>8,(1+2)>(1+3),NULL>NULL;

运行结果

0 0 0 1 0 NULL

IS NULL 、IS NOT NULL 运算符

SELECT NULL IS NULL,ISNULL(NULL),ISNULL(2),6 IS NOT NULL,NULL IS NOT NULL;

运行结果

1 1 0 1 0

BETWEEN AND 运算符

SELECT 6 BETWEEN 1 AND 10,10 BETWEEN 1 AND 5;

运行结果

1 0

LEAST运算符

返回最小值 假如任意一个自变量为 NULL ,返回值为 NULL。

SELECT LEAST(1,2,3),LEAST('a','b','c'),LEAST(100,NULL);

运行结果

1 a  NULL

GREATEST 运算符

返回最大值,假如任意1个变量为NULL,返回值为 NULL

SELECT GREATEST(1,2,3),GREATEST('a','b','c'),GREATEST(100,NULL);

运行结果

3  c  NULL

IN NOT IN 运算符

IN 运算符用来判断操作数是否为 IN 列表中的-个值,如果是,返回值为 1,否则返回值为0

NOT IN 运算符用来判断操作数是否为 IN 列表中的一个值,如果不是,返回值为1 否则返回值为0

SELECT 2 IN (2,4,'AA'),'A' IN (3,'DD');
-- 1  0
SELECT 2 NOT IN (2,4,'AA'),'A' NOT IN (3,'DD');
-- 0 1

LIKE 运算符

LIKE 运算符用来匹配字符串, 其语法格式为 expr LIKE 匹配条件 。如果 expr 足匹配条件,

返回值 TRUE 如果不匹配 返回 FALSE。若 expr 或匹配条件中 的任何一个为 NULL ,则为NULL

%配任何字符, 甚至包括零字符。

_只能匹配一个字符。

SELECT 'BADAO' LIKE 'BADAO','BADAO' LIKE 'BADA_','BADAO' LIKE '%O','BADAO' LIKE 'B____','B' LIKE NULL;
-- 1 1 1 1 NULL

REGEEXP 运算符

-- REGEXP 算符用来匹配字符串,其语法格式为“expr REGEXP 匹配条件”。如果 expr 满足匹配条件,
-- 返回1:如果不满足, 返回0。若 expr 或匹配条件中的任意个为 NULl 结果为 NULL
-- REGEXP 算符在进行匹配时常用下面几种通配符。
-- (1)^:匹配以该字符后面的字符开头的字符串
-- (2)$:匹配以该字符前面的字符结尾的字符串
-- (3).:匹配任何一个单字符
-- (4)[...]:匹配方括号内的任何字符 例如[abc]匹配a、b、c。 为了指定字符的范围,使用[-]例如
-- [a-z]匹配任意字母,而[0-9]匹配任意数字
-- (5)*:匹配零个或多个在它前面的字符 例如,"x*"匹配任意数量'x'字符,"[0-9]*"匹配任意数量
-- 的数字,而".*"匹配任意数量的任意字符

SELECT 'BADAO' REGEXP '^B','BADAO' REGEXP 'O$','BADAO' REGEXP '.DAO','BADAO' REGEXP '[AB]'
-- 1 1 1 1

逻辑运算符

逻辑非运算符NOT 或者 !

逻辑非运算符 NOT 或者 ! 当操作数为0时返回值为1, 当操作数为1时返回值为0,当操作数NULL 时返回值为 NULL

SELECT NOT 6,NOT(6-6),NOT -6,NOT NULL,NOT 6+6;
-- 0 1 0 NULL 0
SELECT !6,!(6-6),!-6,!NULL,!6+6;
-- 0 1 0 NULL 6

NOT 和 !的优先级不同,NOT的优先级低于+,!的优先级高于+

逻辑与运算符AND 或者 &&

SELECT 6 AND -6,6 AND 0,6 AND NULL,0 AND NULL;
-- 1 0 NULL 0
SELECT 6 && -6,6 && 0,6 && NULL,0 && NULL;
-- 1 0 NULL 0

逻辑或运算符OR 或者 ||

SELECT 6 OR -6,6 OR 0,6 OR NULL,0 OR NULL;
-- 1 1 1 NULL
SELECT 6 || -6,6 || 0,6 || NULL,0 || NULL;
-- 1 1 1 NULL

XOR 逻辑异或运算符

当任意一个操作符为NULL 时返回值为NULL;对于非NULL的操作数,如果两个操作数都是非零值或者都是零值,则返回0

如果一个为零值,一个为非零值,则返回1

SELECT 6 XOR 6,0 XOR 0,6 XOR 0,6 XOR NULL,6 XOR 6 XOR 6;
-- 0 0 1 NULL 1

位运算符

按位或运算符 |

按位或运算符实际是将参与运算的两个数据接对应的二进制数进行逻辑或运算,对应的二进制位有一个或两个为1 ,

则该位的运算结果为1 ,否则为0

SELECT 8|12,6|4|1;

-- 12 7
-- 10 的二进制数为 1000, 12 二进制数为 1100 在接位或之后结果为 1100 ,即整数 12;
-- 6的二进制数0110, 4的二进制数为 0100, 1的二进制数为 0001 ,在按位或之后结果为 0111 ,即整数7

按位与运算 &

按位与运算符实际是将参与运算的两个操作数接对应的二进制数逐位进行逻辑与运算 对应的二进制

位都为1,则该位的运算结果为1,否则为0

SELECT 8&12,6&4&1;
-- 8 0

按位异或运算符^

接位异或运算符实际是将两个数据按对应的二进制数逐位进行逻辑异或运算,

当对应的二进制数不同时对应位的结果才为1, 如果两个对应位数都为0或都为l,则对应位的运算结果为0

SELECT 8^12,6^4^1;
-- 4 3

按位左移运算符<<

按位左移运算符<<的功能是让指定二进制数的所有位都左移指定的位数。在左移指定位数之后 左边

高位的数值将被移出并丢弃,右边低位空出的位置用0补齐

语法格式为a<<n,这里的n指定值a移动的位置。

SELECT 6<<2,8<<1;
-- 24 16
-- 6的二进制数为 00000110 ,左移两位之后变成 00011000 ,即十进制数24; 8的二进制数为 00001000,
-- 左移一位之后变成 00010000 ,即十进制16

按位右移运算符>>

按位右移运算符>>的功能是让指定二进制数的所有位都右移指定的位数。

在右移指定位数之后,右边低位的数值将被移出并丢弃,左边高位空出的位置用0补齐。

其语法格式为a>>n,这里的n指定值a要移动的位置。

SELECT 6>>2,8>>2;
-- 1 2
-- 6的二进制数为 00000110 ,右移一位之后变成 00000011 ,即十进制数3;8的二进制数为 00001000,
-- 右移两位之后变成 00000010 即十进制数2

按位取反运算符~

按位取反运算符实际是将参与运算的数据接对应的二进制数逐位反转, 1取反后变为0, 0取反后变1

SELECT 6&~2;
-- 4
-- 对于逻辑运算 由于按位取反运算符“~”的级别高于接位运算符“&”, 因此先对2进行取
-- 反操作,取反的结果为 1101;然后再与十进制数6进行运算,结果为 0100 即整数4

Mysql中运算符的优先级

按照优先级从低到高

-- 1、== :=
-- 2、|| OR
-- 3、XOR
-- 4、&&、AND
-- 5、NOT
-- 6、BETWEEN  CASE  WHEN THEN ELSE
-- 7、= <=> >= > <= < <> != IS LIKE REGEXP IN
-- 8、|
-- 9、&
-- 10、<< >>
-- 11、- +
-- 12、* / %
-- 13、^
-- 14、-(负号) ~
-- 15、!

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

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

相关文章

澳大利亚媒体发稿:怎样用图表提高易读性?-华媒舍

媒体发稿的可读性变得尤为重要。读者们不会再有时间与耐心去阅读文章繁琐的文本&#xff0c;他们更喜欢简洁明了的信息展现形式&#xff0c;在其中图表是一种极为高效的专用工具。下面我们就详细介绍怎么使用图表提高澳大利亚新闻媒体发稿的可读性&#xff0c;以适应读者的需要…

java 栅栏(CyclicBarrier)

Java中的栅栏&#xff08;CyclicBarrier&#xff09;是一种用于协调多个线程并发工作的同步辅助类。与CountDownLatch不同&#xff0c;CyclicBarrier允许一组线程相互等待&#xff0c;直到所有线程都到达一个共同的屏障点&#xff08;barrier&#xff09;后&#xff0c;才继续执…

CSS 【详解】样式选择器(含ID、类、标签、通配、属性、伪类、伪元素、Content属性、子代、后代、兄弟、相邻兄弟、交集、并集等选择器)

CSS 样式选择器&#xff0c;用于选中页面中的 html 元素&#xff0c;以便添加 CSS 样式。 按渲染性能由高到低 依次是&#xff1a; ID 选择器 #id 通过元素的 id 属性选中元素&#xff0c;区分大小写 <p id"p1" >第一段</p>#p1{color: red; }但不推荐使…

【LinuxC语言】手撕Http之处理POST请求

文章目录 前言声明POST的组成读取POST信息读取消息体长度读取消息体解析消息体How to use?总结前言 在互联网的世界中,HTTP协议无疑是最重要的协议之一。它是Web的基础,支持着我们日常生活中的大部分在线活动。尽管有许多现成的库可以处理HTTP请求,但了解其底层工作原理是…

全面解析:儿童编程等级考试及其区别

目录 1. 前言2. 儿童编程等级考试的重要性3. 儿童编程等级考试的特点4. 儿童编程等级考试4.1 非专业级软件能力认证(CSP-J/S)4.2 GESP编程能力等级认证4.3 青少年编程能力等级测试(CPA)4.4 全国青少年软件编程等级考试4.5 全国青少年编程能力等级考试(PAAT)1. 前言 近年来…

【学习笔记】Mybatis-Plus(四):MP中内置的插件

内置插件 目前MP已经存在的内部插件包括如下&#xff1a; 插件类名作用PaginationInnerInterceptor分页插件。可以代替以前的PageHelperOptimisticLockerInnerInterceptor乐观锁插件。用于幂等性操作&#xff0c;采用版本更新记录DynamicTableNameInnerInterceptor动态表名Te…

【Rust】Cargo介绍

一、Cargo简介 Cargo 是Rust语言的包管理工具&#xff0c;它帮助我们管理我们项目的依赖。做js开发的同学应该了解nodejs的包管理工具npm&#xff0c;Cargo和npm做的事情是一样的。C和C的同学可能对这个就比较陌生了&#xff0c;C/C语言没有统一的依赖管理工具&#xff0c;各个…

Spring中常见知识点及使用

Spring Framework 是 Java 生态系统中最流行的开源框架之一&#xff0c;它提供了一系列强大的功能&#xff0c;用于构建企业级应用。以下是一些常见的 Spring 知识点及其使用方法&#xff1a; 1. 依赖注入&#xff08;Dependency Injection&#xff09; 依赖注入是 Spring 的…

【SpringCloud应用框架】Nacos集群架构说明

第六章 Spring Cloud Alibaba Nacos之集群架构说明 文章目录 前言一、Nacos支持三种部署模式二、集群部署说明三、预备环境 前言 到目前为止&#xff0c;已经完成了对Nacos的一些基本使用和配置&#xff0c;接下来还需要了解一个非常重要的点&#xff0c;就是Nacos的集群相关的…

【芯片制造】【问题整理】明场检测和暗场检测

背景&#xff1a; 什么是明场检测和暗场检测 主要功能&#xff1a; 1、在明场检测中&#xff0c;光源直接照射到样品表面&#xff0c;透射光或反射光被收集并成像。样品上的颗粒、划痕、凹坑会改变光的反射和透射&#xff0c;形成对比&#xff0c;能够快速扫描大面积样品。 2、…

SAP - 初识

人过三十不学艺&#xff1b;活到老学到老。。。。。。 怎么说都有理&#xff0c;说不如做 低头做事&#xff0c;抬头看天 先做&#xff0c;至少了解下是个什么&#xff1f; 1. SAP是什么 https://www.sap.cn/ -- 思爱普中国 https://www.sap.cn/about/wha…

金斗云 HKMP智慧商业软件 任意用户创建漏洞复现

0x01 产品简介 金斗云智慧商业软件是一款功能强大、易于使用的智慧管理系统,通过智能化的管理工具,帮助企业实现高效经营、优化流程、降低成本,并提升客户体验。无论是珠宝门店、4S店还是其他零售、服务行业,金斗云都能提供量身定制的解决方案,助力企业实现数字化转型和智…

无人机遥控器指令加密方法

遥控信息的安全问题是无人机遥控系统设计和任务实施过程中最重要的问题之一。然而日益发展的电子侦察和电子对抗技术&#xff0c;使第三方可以截获已方所发送的遥控指令&#xff0c;分析和窃取遥控信息的内容&#xff0c;从而伪造遥控信息&#xff0c;对己方无人机构成严重威胁…

12.x86游戏实战-汇编指令and or not

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 上一个内容&#xff1a;11.x86游戏实战-汇编指令add sub inc dec and指令是与的意思 or指令是或的意思 …

MUX VLAN实现二层流量的弹性管控

一、模拟场景&#xff0c;企业有一台服务器&#xff0c;部门A&#xff0c;部门B&#xff0c;访客 二、要求&#xff1a;三者都可以访问服务器&#xff0c;部门A和B可以进行部门内部通信&#xff0c;A和B不可以通信&#xff0c;访客只能访问服务器 三、拓扑如下图 四、配置流程…

计算机网络编程和并发的知识

OSI七层协议 OSI&#xff08;Open Systems Interconnection&#xff09;模型是一个七层的网络通信模型&#xff0c;用于标准化不同层级的网络通信。从下到上分别是&#xff1a; 物理层&#xff08;Physical Layer&#xff09;&#xff1a;负责在物理媒介上传输原始的比特流。…

springcloud 面试经常被问问题

Spring Cloud 是一个基于 Spring Boot 的微服务架构解决方案&#xff0c;包含了许多用于构建和管理微服务的工具和框架。在面试中&#xff0c;与 Spring Cloud 相关的问题通常会涉及其核心概念、组件、常用模式和解决方案。以下是一些在 Spring Cloud 面试中经常被问到的问题及…

Linux系统(Centos)下MySQL数据库中文乱码问题解决

问题描述&#xff1a;在进行数据库使用过程中&#xff0c;数据库里的数据中文都显示乱码。操作数据库的时候&#xff0c;会出现中文乱码问题。 解决方法如下&#xff1a; 第一步&#xff1a;打开虚拟机进入系统&#xff0c;启动MySQL。 第二步&#xff1a;连接登录MySQL输入…

Java面试题系列 - 第4天

题目&#xff1a;深入理解Java泛型与类型擦除 背景说明&#xff1a;Java泛型是Java SE 5引入的一种新特性&#xff0c;它允许在编译时检查类型安全&#xff0c;并且所有的强制转换都是自动和隐式的&#xff0c;提高了代码的重用率。然而&#xff0c;Java泛型的实现背后有一个重…

执行力不足是因为选择模糊

选择模糊&#xff1a;执行力不足的根源 选择模糊是指在面对多个选项时&#xff0c;缺乏明确的目标和方向。这种模糊感会导致犹豫不决&#xff0c;进而影响我们的执行力。 选择模糊的表现&#xff1a; 目标不明确&#xff0c;不知道应该做什么。优先级混乱&#xff0c;不清楚…