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的用法。
%————————————————————————————————————————————%
数据处理函数
- 文本处理函数:例如Trim()、Upper()、Right(列名,从右数起截取的长度)、Locate(sub,str)返回是否找到子串等,注意SOUNDEX函数。
- 日期和时间处理函数:数据格式为yyyy-mm-dd,关键在于合理截取时间数据中的部分来限定时间范围。
- 数值处理函数:Abs()、Cos()、Sqrt()等。
%————————————————————————————————————————————%
汇总数据:需要汇总而非实际检索出每一个的细节,运行在行组上,只需计算和返回单个值。
例如:AVG()均值函数,COUNT()计数函数,SUM()求和函数等。
- AVG忽略NULL
- COUNT(*)不忽略NULL,但COUNT(列名)忽略之。
- MAX,MIN,SUM显然均忽略NULL。
传参时限定了这些函数的使用范围,还可以在参数前添加限定关键字(ALL/DISTINCT)对目标范围进行进一步限定:全部值/仅不同值。

浙公网安备 33010602011771号