一、用通配符进行过滤
No.1小结:
①show 产看数据
②检索:select、distinct、Limit
③排序:order by、dec、asc
④过滤:where(包括一些字句)、and、or、not、in
A:

  1. 什么是通配符?
  2. 如何使用?
  3. 如何使用like操作符进行通配搜索对数据进行过滤?
    1、LIKE操作符
    前面已经提到过通配符“*”,从一个表中显示所有的列信息。
    前面讲的过滤where中的字句都是检查某个范围等,这些值都是已知的,那怎么搜索位置的信息呢?
    当然也是用到where作为条件进行过滤,like像什么样的东西进行过滤。
    (1)百分号通配符(%)
    'jet%'为搜索模式:表示检索任意以jet起头的词。

    ‘%anvil%’:表示任何位置出现anvil的位置。

    ‘s%e’:以s起头以e结尾的所有产品。
    (2)下划线(_)通配符
    其作用与%一样,不同之处是_匹配的是一个字符,而%可以是多个
    例子:


    上面两个图就说明了不同之处,使用%检索出.5(这是两个字符),而_只检索出1或2(这是一个字符)
    二、用正则表达式进行搜索
    也是讲的数据过滤,对比前面过滤用的匹配、比较、通配符。为解决条件苛刻,where复杂性增加,引入正则表达式。
    正则表达式(模式)作用:匹配文本

    将like变为regexp

mysql like 匹配长度设置 mysql like and_搜索


正则表达式:.000

.表示可以检索的任意一个字符,例如上面的’JetPack 1000’中,检索的.为1,在中间。

注意:正则表达式不区分大小写,需要区分在regexp后面加上BINARY

(2)进行or匹配(|)

mysql like 匹配长度设置 mysql like and_字段_02


(3)匹配几个字符之一[和]

mysql like 匹配长度设置 mysql like and_mysql like 匹配长度设置_03


[]相当于一个迭代器range,只要在里面的都可返回,相当于另一种形式的or。

mysql like 匹配长度设置 mysql like and_字段_04


但是这里得到的结果有是不一样的,因为这里是应用于整个串,而[]只搜第一个字符

只要在[]变为[123]除这些字符外的任何东西,相当于取反。

mysql like 匹配长度设置 mysql like and_搜索_05

(4)匹配范围

上面介绍了[],表示一个集合范围[0123456789],为简化变为[0-9]

mysql like 匹配长度设置 mysql like and_字段_06


(5)匹配特殊字符

前面介绍.是一种通配符,哪如果要匹配这个.呢,就相当于C++中需要找到关键字,就是用转移字符一样,这里用\表示转义。

mysql like 匹配长度设置 mysql like and_搜索_07


这里不是预期的结果,使用\呢?

mysql like 匹配长度设置 mysql like and_搜索_08


(6)匹配字符类

mysql like 匹配长度设置 mysql like and_正则表达式_09


(7)匹配多个实例

mysql like 匹配长度设置 mysql like and_mysql like 匹配长度设置_10


mysql like 匹配长度设置 mysql like and_搜索_11


这里通过\转义(),重复元字符’?'作用的前面一个字符表示是可选的。

mysql like 匹配长度设置 mysql like and_字段_12


注意正则化中的式子不能随意加空格隔开。

{4}要求前面的额字符出现4次。

相当于下面这个

mysql like 匹配长度设置 mysql like and_搜索_13


(8)定位符

mysql like 匹配长度设置 mysql like and_字段_14


mysql like 匹配长度设置 mysql like and_mysql like 匹配长度设置_15


^表示需要从字符串头开始匹配。

三、创建计算字段

Q:由于每个列的数据的数据类型是不一样的,那么如何输出不同类型的数据到应用程序中呢?

A:计算字段(field)

1、拼接(concatenate)字段

mysql like 匹配长度设置 mysql like and_mysql like 匹配长度设置_16


需要吧vend_name 和 vend_country进行拼接起来。在MySQL的select语句中,可使用Concat()函数进行拼接两个列。

mysql like 匹配长度设置 mysql like and_字段_17


这里通过括号括起来,以便于进行区分。

RTrim()函数可以用来删除右侧多余的空格。同理LTrim()用于删除左边的空格。

mysql like 匹配长度设置 mysql like and_正则表达式_18


Q:正如上面检索的内容,那么这个拼接的内容应该取个新的列名字吧,怎么取呢?

A:别名(alias),用as关键字赋予

mysql like 匹配长度设置 mysql like and_正则表达式_19


取了一个名为vend_title的别名。他与实际的表列一样。

2、执行算数计算

mysql like 匹配长度设置 mysql like and_正则表达式_20


汇总总物品的价格

mysql like 匹配长度设置 mysql like and_mysql like 匹配长度设置_21