\\\\\\ \\\\f \\\\n \\\\r \\\\t \\\\v
\\ 换页 换行 回车 制表 纵向制表
匹配字符串类
自己经常使用的数字、所有字母或所有数字字母字符等的匹配。为了方便工作,可以使用预定义的字符集,称为字符集:
类 说明
[:alnum:] 任意字母和数字,同[0-9a-zA-Z] [:alpha:] 任意字符,同[a-zA-Z] [:blank:] 空格和制表,同\\\\t
[:cntrl:] ASCII控制字符,ASCII0到31和127 [:digit:] 任意数字 同[0-9]
[:graph:] 与[:print:]相同,但不包括空格 [:lower:] 任意小写字母,同[:a-z:]
[:print:] 任意可打印字符
[:punct:] 既不在[:alnum:]有不在[:cntrl:] 的字符
[:space:] 包括空格在内的任意空白字符,同[\\\\f\\\\n\\\\r\\\\t\\\\v] [:upper:] 任意大写字母[A-Z]
[:xdigit:] 任意十六进制数字,同[a-fA-F0-9]
匹配多个实例
以前的匹配都是单次匹配。如果存在一个匹配,改行就检索出来,如果不存在,检索不出任何行。但有时需要对匹配的数目进行更强的控制。
重复元字符 元字符 说 明 * + ? {n} {n,}
0个或多个匹配 1个或多个匹配 0个或1个匹配 指定数目匹配 不少于n个匹配
{n,m} 匹配数目的范围 m不超过255
列:SELECT columnOne FROM table WHERE columnOne REGEXP '\\\\([0-9] sticks?)\\\\'; Sticks?匹配的是 stick 或sticks(?号决定前面的s出现一次或0次)
列:SELECT columnOne FROM table WHERE columnOne REGEXP '[[:digit:]]' ORDER BY columnOne;
[:digit:]匹配任意的数字,{4}要求前面匹配的数字出现4次 定位符
前面的所有例子都是匹配一个串中的任意位置的文本。为了匹配特定位置的文本 元字符 ^
说 明
文本的开始 文本的结束 词的开始 词的结束
$ [[:<:]] [[:>:]]
例如:你要找一个数(包括以小数点开始的数)开始的所有产品,怎么办,前面都是在行内任意位置匹配。所以不行
SELECT columnOne FROM table WHERE columnOne REGEXP '^[0-9\\\\ . ]';
简单的正则测试,可以不在数据库操作的情况下练习 SELECT 'hello' REGEXP '[0-9]';
MySQL必知必会笔记(三)SELECT语句 计算字段 数据处理函数 汇总函数 分组数据 子查询
第十章 创建计算字段
计算字段
存储在表中的数据一般不是应用程序所需要的格式。我们需要直接从数据库中检索出转换、计算或格式化的数据。而不只是检索出数据,然后再到应用程序或报告程序中区格式化。
这就发挥了计算字段的作用了。与前面的字段不同,计算字段并不实际存在于数据库中。计算字段是运行时在SELECT 语句中创建的。
需要注意的是,只有SELECT语句知道那些列是实际列,哪些列不是,客户机的角度来看,计算字段和其他字段是一样的。
拼接字段
拼接:将值联结到一起构成单个值。
生成供应商 columnOne(columnTwo) 的格式
SELECT Concat(columnOne, '(' , columnTwo, ')') FROM table ORDER BY columnOne; 使用别名
别名使用AS关键字赋予 执行算术运算
另一常见的用途就是对检索出来的数据进行算术运算。
例如:检索出column_id 为2005的columnOne乘以columnTwo的值
SELECT column_id, columnOne, columnTwo, columnOne*columnTwo AS column_price FROM table WHERE column_id = 2005
操作符 + - * /
SELECT 3*2;将返回6
SELECT Now(); 返回当前的日期和时间
第十一章 使用数据处理函数
SQL实现了一下类型的函数
1 用于处理文本串,如删除、填充、装换大小写
2 用于数据上进行的算术操作,如返回绝对值,进行代数运算
3用于处理日期和时间值并从这些值中提取特定的成分,如返回两个日期差,检查日期有效性
4 返回DBMS正使用的特殊信息 ,如用户登录信息,检查版本细节信息 文本处理函数
Upper() 将文本转换为大写
SELECT vend_name, Upper(vend_name) AS vend_name_upcase FROM vendors ORDER BY vend_name; 常用的文本处理函数 Left() Length() Locate()
返回串左边的字符 返回串的长度 找出串的一个子串