MySQL高阶语句2

本文深入探讨了MySQL中的正则表达式使用,包括以特定字符开头、结尾或包含特定模式的查询。同时,介绍了各种比较、逻辑和位运算符,如BETWEEN、LIKE、NOT IN以及LOGIC XOR等。此外,还涵盖了连接查询的类型,如内连接、左连接和右连接,解析了它们的工作原理和应用场景。
摘要由CSDN通过智能技术生成

正则表达式

MySQL 的正则表达式使用 REGEXP 这个关键字来指定正则表达 式的匹配模式,REGEXP 操作符所支持的匹配模式如表所示
在这里插入图片描述

查询以…开头的信息

在这里插入图片描述

查看以 … 结尾的信息

在这里插入图片描述

查询包含…的信息

在这里插入图片描述

查询以ha开头,中间包含e,后面有三个字符的记录

在这里插入图片描述

查询包含…或。。的信息

在这里插入图片描述

查询…出现一次或多次的记录

在这里插入图片描述

查询…出现一次或零次的记录

在这里插入图片描述

查询… 出现零次或多次的记录

在这里插入图片描述

查询以【…】开头的记录

在这里插入图片描述

查看不以[…]开头的记录

在这里插入图片描述

运算符

MySQL 的运算符用于对记录中的字段值进行运算。MySQL 的运算符共有四种,分别 是:算术运算符、比较运算符、逻辑运算符和位运算符

算数运算符

在这里插入图片描述
在这里插入图片描述

比较运算符

在这里插入图片描述

  1. 如果两者都是整数,则按照整数值进行比较。
  2. 如果一个整数一个字符串,则会自动将字符串转换为数字,再进行比较。(在程序中,一般是不会吧这两者进行相比较的)
  3. 如果两者都是字符串,则按照字符串进行比较。
  4. 如果两者中至少有一个值是 NULL,则比较的结果是 NULL。
  5. 与linux返回值表达相反,linux 中运行正常返回值是0,运行异常返回值是非0

不等于(<>,!=)

不等于号有两种写法,分别为<>或者!=,

用于针对数字、字符串和表达式不相等的比较
在这里插入图片描述

BETWEEN AND

BETWEEN AND 比较运算通常用于判断一个值是否落在某两个值之间

在这里插入图片描述

least 和greates

LEAST:当有两个或者多个参数时,返回其中的最小值。如果其中一个值为 NULL,则 返回结果就为 NULL

GREATEST:当有两个或者多个参数时,返回其中的最大值。如果其中一个值为NULL, 则返回结果就为 NULL
在这里插入图片描述

IN 和 NOT IN

在这里插入图片描述

LIKE 和 NOT LIKE

LIKE:用来匹配字符串,如果匹配成功则返回1,否则返回0
LIKE支持两种通配符:‘%’用于匹配任意数目的字符(*匹配的是前面一个字符),‘_'只能匹配一个字符
NOT LIKE:跟LIKE相反,如果匹配任意数目成功则返回1,否则返回0
在这里插入图片描述

逻辑运算符

逻辑运算符又被称为布尔运算符,通常用来判断表达式的真假,如果为真返回 1,否则 返回 0,真和假也可以用 TRUE 和 FALSE 表示。MySQL 中支持使用的逻辑运算符有四种, 具体如表所示
在这里插入图片描述

逻辑非

逻辑运算符中最简单的运算符就是逻辑非,逻辑非使用 NOT 或!表示。逻辑非将跟在它后面的逻辑测试取反,把真变为假,把假变为真。如果 NOT 后面的操作数为 0 时,所得值为 1;如果操作数为非 0 时,所得值为 0;如果操作数为 NULL 时,所得值为 NULL
在这里插入图片描述

逻辑与

当所有的操作数都为非0值且不为null时,返回值为1,否则为0(null与0比较特殊)
null and 0 返回值为0
逻辑与使用 AND 或者&&表示
在这里插入图片描述

逻辑或

逻辑或通常使用 OR
逻辑或表示包含的操作数,任意一个非零值并且不是NULL值时,返回1,否则返回0
当有一个操作数为NULL时,如果另一个操作数为非0值,则返回值为1,否则为NULL
如两个操作数均为NULL,则返回值为NULL
在这里插入图片描述

逻辑异或(XOR)

两个非NULL值为操作数,如果两者都是0 或者都是非0,则返回0
如果一个为0,另一个为非0,则返回结果为1
当任意一个值为NULL时,返回值为NULL
在这里插入图片描述

位运算符

位运算符实际上是对二进制数进行计算的运算符。MySQL 内位运算会先将操作数变成二进制格式(1010 1111),然后进行位运算,最后在将计算结果
从二进制变回到十进制格式,方便用户查 看。MySQL 支持 6 种位运算符,具体如表所示
在这里插入图片描述
在这里插入图片描述
以上不管哪种运算符,在使用过程中都有优先级问题。运算符的优先级决定了不同的运 算符在计算过程中的先后顺序。级别高的运算符会先进行计算,如果运算符的级别相同, MySQL 会按照顺序从左到右依次进行计算

在这里插入图片描述

连接查询

MySQL 的连接查询,通常都是将来自两个或多个表的记录行结合起来,基于这些表之间的 共同字段,进行数据的拼接。
首先,要确定一个主表作为结果集,然后将其他表的行有选择 性的连接到选定的主表结果集上
使用较多的连接查询包括:内连接、左连接和右连接

内连接

内连查询:通过inner join的方式将两张指定的相同字段的记录行输出
在这里插入图片描述

左连接

  1. 左连接也可以被称为左外连接,在 FROM 子句中使用 LEFT JOIN 或者 LEFT OUTER JOIN 关键字来表示
  2. 左连接以左侧表为基础表,接收左表的所有行,并用这些行与右侧参 考表中的记录进行匹配,也就是说匹配左表中的所有行以及右表中符合条件的行
  3. 左连接中左表的记录将会全部表示出来,而右表只会显示符合搜索条件的记录,右表记录不足的地方均为 NULL
    在这里插入图片描述

右连接

  1. 右连接也被称为右外连接,在 FROM 子句中使用 RIGHT JOIN 或者 RIGHT OUTER JOIN 关键字来表示。
  2. 右连接跟左连接正好相反,它是以右表为基础表,用于接收右表中的所有行,并用这些记录与左表中的行进行匹配
  3. 在右连接的查询结果集中,除了符合匹配规则的行外,还包括右表中有但是左表中不匹 配的行,这些记录在左表中以 NULL 补足
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值