Mysql——4.通配符、计算字段、函数

目录

1. 通配符过滤

1.1 % 通配符 

1.2 _ 通配符

1.3 正则表达式匹配

2. 创建计算字段

2.1 计算字段

2.2 拼接字段

2.3 执行算数计算

3. 函数

3.1 常用文本处理函数

3.2 日期和时间处理函数

3.3 数值处理函数


1. 通配符过滤

通配符搜索只能用于文本字段(字符串),非文本数据类型字段不能使用通配符搜索。

在使用通配符过滤之前首先了解 MySQL 标准的 SQL 模式匹配 LIKE 或 NOT LIKE 操作符, 它用于在 WHERE 子句中搜索列中的指定模式或取值。

1.1 % 通配符 

% 表示任何字符出现任意次数。例如,为了找出所有产品名称以 Fish 开头的产品

SELECT prod_id, prod_name
FROM Products
WHERE prod_name LIKE 'Fish%';

1.2 _ 通配符

 通配符 _ 的用途与 % 一样也是匹配任意字符,但它只匹配单个字符,而不是多个字符

SELECT prod_id, prod_name
FROM Products
WHERE prod_name LIKE '12 inch t_dd_ bear';

1.3 正则表达式匹配

 

与 SQL 标准的模式匹配的不同:

  • 正规表达式匹配的是子串,只要目标字符串中有一部分符合模式(正则表达式),即匹配成功。 SQL 标准的模式匹配将匹配整个目标字符串,只有当目标字符串完全符合模式,才算匹配成功。
  • 当我们想要用正则表达式像 SQL 标准模式一样只匹配整个目标字符串时,就需要用到 ^ 字符来表示目标字符串的开头,$ 字符表示目标字符串的结尾。

使用正则表达式,再次查询所有产品名称以 Fish 开头的产品。
 

SELECT prod_id, prod_name
FROM Products
WHERE prod_name REGEXP '^Fish.*$';

正则表达式的使用,有不懂的可以在 这个网址 来学习,测验。

2. 创建计算字段

2.1 计算字段

存储在表中的数据都不是应用程序所需要的。我们需要直接从数据库中检索出转换、计算或格式化过的数据,而不是检索出数据,然后再在客户端应用程序中重新格式化。

2.2 拼接字段

 下面将 vend_name (供应商名), vend_country (供应商国家)两列进行合并。并通过 AS 关键字进行给新列赋予别名。

SELECT Concat(vend_name, '(', vend_country, ')') AS new_column FROM Vendors;

2.3 执行算数计算

通过 quantity (物品数量)、 item_price (物品价格)来计算 expanded_price (总价)

SELECT quantity, item_price,
quantity * item_price AS expanded_price
FROM OrderItems
WHERE order_num = 20008;

3. 函数

3.1 常用文本处理函数

函数说明
LEFT(str, length)返回指定长度的字符串的左边部分
RIGHT(str, length)返回指定长度的字符串右边部分
LTRIM(str)去掉字符串左边的空格
RTRIM(str)去掉字符串右边的空格
LOWER(str)将字符串转换为小写
UPPER(str)将字符串转换为大写
LENGTH(str)返回字符串的长度

使用 UPPER() 将文本转换为大写。

SELECT vend_name, UPPER(vend_name) AS vend_name_upcase FROM Vendors;

3.2 日期和时间处理函数

查询订单表 Orders 中所有日期为 2012 的订单号。

SELECT order_num FROM Orders WHERE YEAR(order_date)=2012;

3.3 数值处理函数

函数说明
ABS()返回一个数的绝对值
COS()返回一个角度的余弦
SIN()返回一个角度的正弦
TAN()返回一个角度的正切
PI()返回圆周率
EXP()返回一个数的指数值
SQRT()返回一个数的平方根

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值