mysql day2: 通配符、正则表达式、计算字段与数据处理函数

  使用LIKE+通配符对部分未知值进行过滤。

子句示例:WHERE (列名) LIKE '含通配符字符串';

通配符包括:

  • %任意字符出现任意次数(可以为空),代表长度,内容均未知。注意:like搜索是可以区分大小写的。jet%将不匹配JETPACK。
  • _任意字符出现一次,代表内容未知。
  • 其他待补充

不要过度使用,不要放在开头,会极大程度的影响性能。

%————————————————————————————————————————————%

使用正则表达式进行搜索

子句示例:WHERE (列名) REGEXP '正则表达式';REGEXP匹配是不区分大小写的。若要区分,在REGEXP后加BINARY关键字

正则表达式之前有学过,有时间的话专门写一篇文章来写,此处就省略了。

%————————————————————————————————————————————%

创建计算字段

输出拼接字段:SELECT Concat(Name,'(',Continent,')') FROM Country;SELECT后的内容为实际的输出内容,理解成用这个函数(Concat)的返回值代替了原本的列内容。

但是这样的输出只是一个值,无法被客户机进一步引用。若要解决这一问题,需要引入AS关键字赋予别名:SELECT Concat(Name,'(',Continent,')') AS 别名 FROM Country;

(但是我现在还是没有成功用as引用过啥,好像只是显示的时候可以改掉列名)

也可以利用计算字段进行算术计算。

Trim()可以用于删除多余的空格,还有RTrim和LTrim的用法。

%————————————————————————————————————————————%

数据处理函数

  1. 文本处理函数:例如Trim()、Upper()、Right(列名,从右数起截取的长度)、Locate(sub,str)返回是否找到子串等,注意SOUNDEX函数。
  2. 日期和时间处理函数:数据格式为yyyy-mm-dd,关键在于合理截取时间数据中的部分来限定时间范围。
  3. 数值处理函数:Abs()、Cos()、Sqrt()等。

%————————————————————————————————————————————%

汇总数据:需要汇总而非实际检索出每一个的细节,运行在行组上,只需计算和返回单个值。

例如:AVG()均值函数,COUNT()计数函数,SUM()求和函数等。

  • AVG忽略NULL
  • COUNT(*)不忽略NULL,但COUNT(列名)忽略之。
  • MAX,MIN,SUM显然均忽略NULL。

传参时限定了这些函数的使用范围,还可以在参数前添加限定关键字(ALL/DISTINCT)对目标范围进行进一步限定:全部值/仅不同值。

posted @ 2021-08-30 21:43  Phile-matology  阅读(79)  评论(0)    收藏  举报