MySQL检索数据(过滤+通配符+正则表达式)

【0】README
0.1)本文部分文字描述转自“MySQL 必知必会”,旨在review “MySQL的基础知识”;

【1】检索数据
1)检索单个列:select a_name from table_name;
2)检索多个列:select a_name,b_name from table_name;
3)检索所有列:select * from table_name;
attention)一般不推荐使用 select *,除非你确实需要表中的每个列,因为检索不需要的列通常会降低检索和应用程序的性能;
4)检索不同行: select distince column_name from table_name;

Attention)distinct 应用于所有列而不仅仅是前置列;
5)限制结果
5.1)select * from product limit 5: limit 5 指示 mysql 返回不多于5行;

5.2)select * from product limit 5, 5: 从行5开始的连续5行数据;


Attention)
A1)行0:检索出来的第一行是行0而不是行1,所以 limit 1,1 将检索出第二行而不是第一行;
A2)MySQL5的limit语法:limit 3,4 表示 从行3开始的4行;
A3)上面的limit 3,4 容易吧人搞糊涂,一种替代语法:limit 4 offset 3;从行3开始取4行;

【2】排序检索数据
1)order by 子句:

2)按照多个列进行排序

3)指定排序方向(默认是升序排序,为了进行降序排序,指定desc关键字(descend,下降))
Attention)
A1)与desc相反的关键字时 asc(ascend,升高);
A2)关键字 desc 只应用到其前面的列名;

4)order by 子句的位置:其 在 from 子句之后,在limit 子句之前;

【3】过滤数据
1)使用where子句:where的位置 在order by 之前;
2)where子句的操作符


3)范围检查:between的测试用例

Attention)不推荐在client端进行过滤,因为如果在客户机上进行过滤数据,服务器不得不通过网络发送多余的数据,这将导致网络带宽的浪费;
4)空值检查:is null 子句

【4】过滤数据补充
1)组合where子句
1.1)and 操作符:

1.2)or 操作符:

1.3)计算次序: 请注意 and 和 or 操作符的优先级,and的优先级高于or,必要时使用括号;
2)in 操作符:in 操作符用来指定条件范围,范围中的每个条件都可以进行匹配;其功能和or 操作符相同;

3)not 操作符

【5】用通配符进行过滤
0)intro to 通配符
0.1)通配符:用来匹配值的一部分的特殊字符;
0.2)搜索模式:由字面值,通配符或两者组合构成的搜索条件;
0.3)必须使用like操作符:为在搜索子句中使用通配符,必须使用like 操作符。like指示MySQL,后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较;
1)通配符介绍
1.1)百分号(%)通配符:%表示任何字符出现任意次数;


2)下划线通配符:下划线只匹配单个字符而不是多个字符;

3)使用通配符的技巧(skill)
s1)不要过度使用通配符;
s2)在确实需要使用通配符时,除非绝对有必要,否则不要把它们用在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起来是最慢的 ;

【6】用正则表达式进行搜索
1)intro to 正则表达式:正则表达式的作用是匹配文本,将一个模式(正则表达式)与一个文本串进行比较;
2)基本字符匹配:

3)点(.)匹配任意一个字符

4)进行or 匹配

5)匹配几个字符之一

Attention)
A1)正则表达式[12]000 是 [1|2]000的缩写;
A2)字符集合也可以被否定:即,他们将匹配除指定字符外的任何东西。为否定一个字符集,在集合的开始处放置一个 ‘^’即可。

6)匹配范围
6.1)匹配数字0到9:[0-9];
6.2)匹配字母a到z:[a-z];

7)返回特殊字符
problem)如果我们要匹配点(.)这个字符,应该怎么写正则表达式呢?
solution)通过写 '\\.' 进行匹配;(这是所谓的转义字符)

8)匹配字符类

9)匹配多个实例(匹配多次出现的模式)


10)定位符
10.1)为匹配特定位置的文本,需要定位符,如下所示:

10.2)匹配以数字或点(.)为开头的行



Attention)
A1)‘^’ 字符的双重作用:在集合中(用[]定义 ),用它来否定该集合;否则(在[]前面),用来指定串的开始处;
A2)regexp 和 like 的区别: like 匹配整个串而 regexp 匹配子串;
A3)利用定位符,通过^ 开始每个表达式,$ 结束每个表达式;




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值