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.mfbz.cn/a/772050.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从硬件角度看Linux的内存管理

1. 分页机制 分段机制的地址映射颗粒度太大&#xff0c;以整个进程地址空间为单位的分配方式导致内存利用率不高。 分页机制把这个分配机制的单位继续细化为固定大小的页(Page)&#xff0c;进程的虚拟地址空间也按照页来分割&#xff0c;这样常用的数据和代码就可以以页为单位…

Angluar 实现pdf页面预览以及编辑

之前用过一个pdf预览的lib&#xff0c;并且还支持在线编辑&#xff0c;和直接下载编辑之后的pdf和直接打印&#xff0c;还不错&#xff0c;记录下 PdfShowcase 首先安装依赖 npm install ngx-extended-pdf-viewer 然后引入 import { NgxExtendedPdfViewerModule } from &q…

论文解读StyleGAN系列——StyleGANv1

论文&#xff1a;A Style-Based Generator Architecture for Generative Adversarial Networks&#xff08;2018.12&#xff09; 作者&#xff1a;Tero Karras, Samuli Laine, Timo Aila 链接&#xff1a;https://arxiv.org/abs/1812.04948 代码&#xff1a;https://github.com…

四、(3)补充beautifulsoup、re正则表达式、标签解析

四、&#xff08;3&#xff09;补充beautifulsoup、re正则表达式、标签解析 beautifulsoupre正则表达式正则提取标签解析 beautifulsoup 补充关于解析的知识 还需要看爬虫课件 如何定位文本或者标签&#xff0c;是整个爬虫中非常重要的能力 无论find_all&#xff08;&#xff…

AI一键音频转文字工具 速度超快,支持实时转换,无需联网,本地整合包下载

这是 CapsWriter-Offline &#xff0c;一个 PC 端的语音输入、字幕转录工具。可用实现简单一键将音频文件转换成文字的懒人工具。 两个功能&#xff1a; 1、实时转换&#xff0c;按下键盘上的 大写锁定键&#xff0c;录音开始&#xff0c;当松开 大写锁定键 时&#xff0c;就会…

企商在线出席2024全球数字经济大会城市副中心论坛

2024年7月3日&#xff0c;2024全球数字经济大会城市副中心论坛“数字基础设施绿色创新发展分论坛”在北京市通州区成功举办。企商在线产品及解决方案总监孙杰受邀出席本次会议&#xff0c;并参与圆桌对话环节&#xff0c;分享“绿色”发展思路与经验。 2024全球数字经济大会城市…

一篇文章说清楚Filter(过滤器)、Interceptor(拦截器)和AOP(切面儿)

文章目录 前言一、Filter&#xff08;过滤器&#xff09;1.说明2.实现filterChain.doFilter() 3.order优先级4.解决跨域5.拦截返回错误信息JSON 二、Interceptor&#xff08;拦截器&#xff09;1.说明2.实现preHandlepostHandleafterCompletion 3.执行顺序图4.排除特定路径拦截…

@react-google-maps/api实现谷歌地图中添加多边围栏,并可编辑,编辑后可获得围栏各个点的经纬度

先上一张效果图 看看是不是大家想要的效果&#xff5e; ❤️ 由于该功能微微复杂一点&#xff0c;为了让大家精准了解 我精简了一下地图代码 大家根据自己的需求将center值和paths&#xff0c;用setState做活就可以了 1.第一步要加入项目package.json中或者直接yarn install它…

在Linux上查找文件的2个好用的命令

1. locate xx &#xff08;查找带xx字符的所有文件或目录&#xff09; 在终端输入命令 locate lua&#xff0c;可以看到&#xff0c;所有带lua字符的文件或目录都会被搜索出来。 2. find / -name xx &#xff08;查找名为xx的文件或目录&#xff09; 在终端输入命令 find …

揭开北斗系统和物联网的神秘面纱:探索未来技术的无限可能性

北斗系统和物联网是现代科技领域的两个重要概念。随着科学技术的快速发展和应用的深化&#xff0c;这两个术语逐渐进入人们的视野。本文将深入探讨北斗系统和物联网的原理、应用和未来发展前景&#xff0c;带您充分了解科技革命的幕后故事。北斗系统&#xff1a;引领全球导航新…

从零开始学习SLAM(三)

旋转向量 #include <Eigen/Geometry> #include <Eigen/Core>AngleAxisd 类有几种构造函数&#xff0c;其中最常用的是&#xff1a; Eigen::AngleAxisd(const Scalar& angle, const Axis& axis);angle 是旋转的角度&#xff0c;通常以弧度表示。axis 是旋…

数据库表导出到excel

数据库表导出到excel:前置知识1 ALL_TAB_COLS 数据库表导出到excel:前置知识2 Quartz基本使用 数据库表导出到excel:前置知识3 项目封装的Quartz实现动态定时任务 数据库表导出到excel:前置知识4 业务和效果 发起清单下载control层InventoryDownloadLogController /* * */ pa…

#### golang中【堆】的使用及底层 ####

声明&#xff0c;本文部分内容摘自&#xff1a; Go: 深入理解堆实现及应用-腾讯云开发者社区-腾讯云 数组实现堆 | WXue 堆&#xff08;Heap&#xff09;是实现优先队列的数据结构&#xff0c;Go提供了接口和方法来操作堆。 应用 package mainimport ("container/heap&q…

LVS-DR群集

LVS-DR集群 LVS-DR(Linux Virtual Server DIrector Server)工作模式&#xff0c;是生产环境中最常用的一种工作模式。 LVS-DR工作原理 LVS-DR模式&#xff0c;Director Server作为群集的访问入口&#xff0c;不作为网关使用&#xff0c;节点DirectorServer与Real Server需要…

光速入门 Tailwind CSS

文章目录 入门安装IDE 设置使用预编译器生产环境优化 基础概念分层指令tailwindlayerapplyconfig 函数theme()screen() 基础案例怎么设置属性任意值&#xff1f;hover 父元素时&#xff0c;怎么选中子元素添加样式&#xff1f;添加 animation 动画 配置主题 Tailwind CSS 中文网…

性能测试-JMeter学习

1、给不同的访问口分配访问占比&#xff1b;例&#xff1a;登录30%&#xff0c;首页&#xff1a;20%&#xff0c;新增&#xff1a;50% 不同业务放到不同线程组里&#xff0c;实现不同业务的分配 使用吞吐量控制器&#xff0c;设置不同的占比 使用if控制器&#xff0c;设置不同…

HX4004A-MFC 低噪声、稳压电荷泵DC/DC转换器芯片IC

一般描述 该HX4004A是一个低噪声开关电容电压倍。它产生一个调节输出电压从2.7V到4.5V的输入。低的外部零件数量(VIN和VOUT处一个飞行电容和两个小型旁路电容)使HX4004A非常适合小型电池供电应用。 该HX4004A具有热关断能力&#xff0c;可以生存从VOUT到GND的连续…

【pytorch13】激活函数及梯度

什么是激活函数 计算机科学家借鉴生物的神经元机制发明了计算机上的模型&#xff0c;这个模型与生物的神经元非常类似 激活的意思就是z变量要大于0&#xff0c;这一个节点才会激活&#xff0c;否则就会处于睡眠状态不会输出电平值 该激活函数在z0处不可导&#xff0c;因此不能…

地级市空气质量指数AQI、环境污染PM2.5、SO2

2015-2021年地级市月度空气质量数据&#xff08;AQI、SO2、NO2、PM2.5、PM10、O3、CO&#xff09; 目录 探究环境污染对经济增长的影响 一、引言 二、数据来源与描述性统计 三、实证模型 &#xff08;一&#xff09;模型设定 &#xff08;二&#xff09;变量说明 四、程…

混元大模型加持,微信输入法开启AI问答新体验

在人工智能技术飞速发展的今天&#xff0c;微信作为全球最大的社交平台之一&#xff0c;一直在不断地探索和创新&#xff0c;以提供更智能、更便捷的用户体验。 最近&#xff0c;微信官方宣布了一个令人兴奋的消息&#xff1a;微信输入法正式上线了“一键AI问答”功能&#xf…