Mysql - 使用入门 (5)

在mysql需要使用 '\\' 为前导的匹配方式,如匹配 '.' 则表达式为 '\\.'

元字符 说明
\\f   换页  
\\n   换行  
\\r   回车  
\\t   制表  
\\v   纵向制表  
-- 匹配 vend_name 列中含有小数点记录 select vend_name from vendors where vend_name regexp '\\.'; 6.5 匹配字符类

字符类

类 说明
[:alnum:]   匹配字符和数字(同 [a-zA-Z0-9])  
[:alpha:]   任意字符(同[a-zA-Z])  
[:blank:]   空格和制表(同[\\t])  
[:cntrl:]   ASCII控制字符(ASCII 0到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])  
6.5 匹配多个示例 元字符 说明
*   0个或多个匹配  
+   1个或多个匹配(等于 {1,})  
?   0个或1个匹配(等于 {0,1})  
{n}   n 是一个非负整数。匹配确定的 n 次  
{n,m}   最少匹配 n 次且最多匹配 m 次 (m<=255)  
select prod_name from products where prod_name regexp '\\([0-9] sticks?\\)'; select prod_name from products where prod_name regexp '[[:digit:]]{4}'; 6.6 定位符

定位元字符

元字符 说明
^   文本的开始( ^在[]内表示非 例如 [^a-z] 即非 a-z )  
$   文本的结尾  
[[:<:]]   词的开始  
[[:>:]]   词的结尾  
select prod_name from products where prod_name regexp '^[0-9\\.]'; 7.0 创建计算字段 7.1 concat() 拼接字段

使用 concat() 函数用于把多个列拼接起来

select concat(列1, 列2, ..., 列n) from 表名; select concat(vend_name, '(', vend_country, ')') from vendors; 7.2 as 使用别名

上面输出的表抬头是不是感觉好丑,那么就可以使用 as

select concat(列1, 列2, ..., 列n) as 别名 from 表名; select concat(vend_name, '(', vend_country, ')') as vend_tittle from vendors; 7.2.1 trim() 删除左右两边的空格 rtrim(),ltrim() select concat(trim(vend_name), '(', trim(vend_country), ')') as vend_tittle from vendors; 7.3 算式计算 SELECT prod_id, quantity, item_price, quantity * item_price AS expanded_price FROM orderitems WHERE order_num = 20005; 操作符 说明
+    
-    
*    
/    

函数的测试

mysql> select now(); +---------------------+ | now() | +---------------------+ | 2021-03-23 18:15:02 | +---------------------+ 1 row in set (0.00 sec) mysql> select trim(' aaa'); +---------------+ | trim(' aaa') | +---------------+ | aaa | +---------------+ 1 row in set (0.00 sec) mysql> select 'hello' regexp '[a-z]'; +------------------------+ | 'hello' regexp '[a-z]' | +------------------------+ | 1 | +------------------------+ 1 row in set (0.00 sec) mysql> select 'hello' regexp '[0-9]'; +------------------------+ | 'hello' regexp '[0-9]' | +------------------------+ | 0 | +------------------------+ 1 row in set (0.00 sec) 8.0 函数 8.1 常见文理处理函数 函数 说明
length(s)   返回串s的长度  
trim(s)   去掉字符串 s 开始和结尾处的空格  
upper(s)   将字符串转换为大写  
left(s,n)   返回字符串 s 的前 n 个字符  
lower(s)   将字符串 s 的所有字母变成小写字母  
locate(s1,s)   从字符串 s 中获取 s1 的开始位置  
right(s,n)   返回字符串 s 的后 n 个字符  
ltrim(s)   去掉字符串 s 开始处的空格  
rtrim(s)   去掉字符串 s 结尾处的空格  
substring(s, start, length)   从字符串 s 的 start 位置截取长度为 length 的子字符串  
8.1 常见日期和时间处理函数 函数名 描述
addDate(d,n)   计算起始日期 d 加上 n 天的日期  
addTime(t,n)   n 是一个时间表达式,时间 t 加上时间表达式 n  
curDate()   返回当前日期  
curTime()   返回当前时间  
date()   从日期或日期时间表达式中提取日期值  
CURRENT_TIME   返回当前时间  
CURRENT_DATE()   返回当前日期  
CURRENT_TIMESTAMP()   返回当前日期和时间  
dateDiff(d1,d2)   计算日期 d1->d2 之间相隔的天数  
date_add(d,INTERVAL expr type)   计算起始日期 d 加上一个时间段后的日期  
date_format(d,f)   按表达式 f的要求显示日期 d  
day(d)   返回日期值 d 的日期部分  
dayOfMonth(d)   计算日期 d 是本月的第几天  
dayOfWeek(d)   日期 d 今天是星期几,1 星期日,2 星期一,以此类推  
dayOfYear(d)   计算日期 d 是本年的第几天  
hour(t)   返回 t 中的小时值  
minute(t)   返回 t 中的分钟值  
month(d)   返回日期d中的月份值,1 到 12  
now()   返回当前日期和时间  
time(expression)   提取传入表达式的时间部分  
year(d)   返回年份  
select cust_id, order_num from orders where order_date = '2005-09-01'; select cust_id, order_num from orders where date(order_date) = '2005-09-01'; select cust_id, order_num from orders where year(order_date) = 2005 and month(order_date)=9; SELECT cust_id, order_num FROM orders WHERE date( order_date ) BETWEEN '2005-09-01' AND '2005-09-30'; 8.2 常见数值处理函数 函数名 描述
ABS(x)   返回 x 的绝对值  
COS(x)   求余弦值(参数是弧度)  
EXP(x)   返回 e 的 x 次方  
MOD(x,y)   返回 x 除以 y 以后的余数  
PI()   返回圆周率(3.141593)  
ROUND(x)   返回离 x 最近的整数  
SIN(x)   求正弦值(参数是弧度)  
SQRT(x)   返回x的平方根  
TAN(x)   求正切值(参数是弧度)  
9.0 聚合or集合函数

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzyzd.html