MySQL笔记8--有关查询(9简略)

1、模式匹配

1、我们在查询数据时,查询条件不确定,要使用到的就是模式匹配
MySQL提供标准的SQL模式匹配(like),以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的格式(regexp)
注:LIKE匹配可以使用特殊符号“”和“%”进行模糊查询,其中“”代表任意一个字符,“%”代表0个或者多个字符

eg(查询所有准考证号以0开头,以6结尾的考生准考证号和姓名):

select zkzh,name from student
where zkzh like “0%6”;

查询电话以“_”开头的考生姓名、电话

select name,phone from student
where phone like’KaTeX parse error: Expected group after '_' at position 1: _̲%' escape '’;

当要匹配的内容包含特殊字符时,可以使用escape定义转义字符。如本例,escape定义了“ ” 为 转 义 字 符 , 那 么 l i k e 语 句 里 “ ”为转义字符,那么like语句里“ like”后面的“_”将作为普通下划线使用。因为没有电话包含符号,所以查询结果为空

select name,phone from student where phone like ‘KaTeX parse error: Expected group after '_' at position 1: _̲%' escape '’ or phone like ‘ %%' escape ' ’;

(上面的,正确)

select name,phone from student where phone like ‘KaTeX parse error: Expected group after '_' at position 1: _̲%' or'%%’ escape ‘$’;

(上面的,错误)

2、REGEXP匹配

正则表达式定义了一个字符串的规则,是定义复杂查询的一个强有力的工具。MySQL采用Henry Spencer的正则表达式实施,其目标是符合POSIX 1003.2。MySQL中使用REGEXP操作符来进行正则表达式匹配。REGEXP操作符不是SQL标准,但是具有强大的功能
在这里插入图片描述
eg(查询名字为两个字的学生姓名、性别,四个自己):

select name,sex from student
where name regexp ‘^.{4}$’;

范围比较主要使用BETWEEN和IN关键字。其中IN关键字还可以在子查询中使用

3、子查询

当一个查询是另一个查询的条件时,称之为子查询。子查询可以使用几个简单命令构造功能强大的复合命令。一个子查询会返回一个标量(单一值)、一个行、一个列或一个表(一行或多行及一列或多列)。子查询最常用于SELECT-SQL命令的WHERE子句中,是一个SELECT语句,它嵌套在一个 SELECT、SELECT…INTO 语句、INSERT…INTO 语句、DELETE 语句、或 UPDATE 语句或嵌套在另一子查询中。本节主要讲解子查询在WHERE子句中的用法

>any 大于最小

>all 大于最大

<any 小于最大

<all 小于最小

=any 等于in

=all 错误

补充:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值