MySQL的运算符(九)下

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: MySQL的运算符(九)

二.二.十.五 like 匹配通配符 返回值 为0 (假) 1(真)


通配符有两种:


1 .% 任意长度的任意字符,包括0长度的字符。

2 . _ 任意的单个字符。 长度只能是1.


  select '两个蝴蝶飞' like '%蝴蝶%','两个蝴蝶飞' like '_个蝴蝶飞','两个蝴蝶飞' like '%老蝴蝶%';


20191125084557790.png


如果想找不匹配的, 用 note like


  select '两个蝴蝶飞' not like '%蝴蝶%','两个蝴蝶飞' not like '_个蝴蝶飞','两个蝴蝶飞' not like '%老蝴蝶%';


20191125084612704.png


二.二.十.六 regexp 正则表达式匹配 返回值 为0 (假) 1(真)


关于正则表达式,这儿就不讲解了。 以后会有专门的一系列去讲解正则表达式。


  select 123456 regexp '^12','两个蝴蝶飞' regexp '蝴蝶飞$','abcd132' regexp 'cd13','abcd' regexp 'cde';


20191125084608667.png


用 regexp 与 like 基本是相同的。


如上面的那些语句,是可以等价于 like 的。


123456 regexp ‘^12’ 等价于 123456 like ‘12%’


‘两个蝴蝶飞’ regexp ‘蝴蝶飞$’ 等价于 ‘两个蝴蝶飞’ like ‘%蝴蝶飞’


‘abcd132’ regexp ‘cd13’ 等价于 ‘abcd132’ like ‘%cd13%’;


也有不匹配的, 用 not regexp


  select 123456 not regexp '^12','两个蝴蝶飞' not regexp '蝴蝶飞$',
   'abcd132' not regexp 'cd13','abcd' not regexp 'cde';


20191125084626871.png


推荐MySQL最好使用 regexp. 但实际生活中, like 用得比较多。


除了 least() 和greatest() 之外,其他比较运算符 返回的值 都是 0 (假) 1(真).


三. 逻辑运算符


三.一 拥有的运算符


image.png


在MySQL数据库里面, 1 代表着真,0代表着假, 非 0 代表着 真。


三.二 not 或者! 非


  select not 8, not 0, !5,!0;


20191125084643787.png


真为假, 假为真。


三.二 and 或者 && 与


  select 3 and 2, 5 and 0,0 and 5, 0 and 0;


20191125084649946.png


两个同时为真,才为真。


三.三 or 或者 || 或


  select 3 or 2, 5 or 0,0 or 5, 0 or 0;


2019112508465553.png


两个只要有一个为真,就为真。


三.四 xor 异或


  select 1 xor 0, 1 xor 1, 0 xor 0, 0 xor 1;


20191125084704238.png


两个数 相同为假,不同为真。 相同指的是在逻辑上相同。 1与2 都是真,是相同的。


四. 位运算符


四.一 拥有的运算符


image.png


3 表示成二进制就是


00000000 00000000 00000000 00000011


5 表示成二进制就是


00000000 00000000 00000000 00000101


四.二 ~ 取反


  select ~3;


20191125084722234.png


00000000  00000000  00000000  00000011 =3
11111111  11111111  11111111  11111100 =18446744073709551612


其中, bin() 方法是查询 该数的二进制数。 如果前面为0,就省略。


四.三 & 取与


  select 3&5;


20191125084735700.png


  00000000  00000000  00000000  00000011= 3
& 00000000  00000000  00000000  00000101=5
    00000000  00000000  00000000  00000001=1


四.四 | 取或


  select 3|5;


20191125084738179.png


  00000000  00000000  00000000  00000011= 3
| 00000000  00000000  00000000  00000101=5
    00000000  00000000  00000000  00000111=7


四.五 << 左移


相当于 数字* 2^n;


  select 3<<2;


20191125084745285.png


    00000000  00000000  00000000  00000011= 3
<<2   00000000  00000000  00000000  00000011
        00000000  00000000  00000000  0001100=12


四.六 >> 右移


相当于 数字/2^n;


  select 5>>2;


20191125084754272.png


    00000000  00000000  00000000  00000101=5
>>2       00000000  00000000  00000000  000001 01
        00000000  00000000  00000000  000001=1


位操作与 java中的位操作是一样。


五. 运算符的优先级


image.png


谢谢!!!

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
关系型数据库 MySQL Java
MYSQL运算符和分页
MYSQL运算符和分页
63 0
|
8月前
|
关系型数据库 MySQL Java
【MySQL进阶之路 | 基础篇】[MySQL]运算符
【MySQL进阶之路 | 基础篇】[MySQL]运算符
|
SQL 关系型数据库 MySQL
MySql where 查询条件与运算符
MySql where 查询条件与运算符
110 0
|
8月前
|
SQL 关系型数据库 MySQL
mysql基本查询、运算符、排序和分页
mysql基本查询、运算符、排序和分页
|
8月前
|
SQL 安全 关系型数据库
MySQL技能完整学习列表3、SQL语言基础——3、SQL运算符和函数
MySQL技能完整学习列表3、SQL语言基础——3、SQL运算符和函数
76 0
|
8月前
|
关系型数据库 MySQL 数据库
【MySQL进阶之路丨第十七篇(完结)】一文带你精通MySQL运算符
【MySQL进阶之路丨第十七篇(完结)】一文带你精通MySQL运算符
103 0
|
8月前
|
存储 关系型数据库 MySQL
MySQL基础篇(运算符、排序分页、多表查询、函数)-3
MySQL基础篇(运算符、排序分页、多表查询、函数)
105 0
|
8月前
|
SQL 关系型数据库 MySQL
MySQL基础篇(运算符、排序分页、多表查询、函数)-2
MySQL基础篇(运算符、排序分页、多表查询、函数)
97 0
|
8月前
|
SQL 关系型数据库 MySQL
MySQL基础篇(运算符、排序分页、多表查询、函数)-1
MySQL基础篇(运算符、排序分页、多表查询、函数)
98 0
|
8月前
|
SQL 关系型数据库 MySQL
MySQL数据类型、运算符以及数据库范式
MySQL数据类型、运算符以及数据库范式
83 0
MySQL数据类型、运算符以及数据库范式

推荐镜像

更多