sql去空格函数_重拾MySQL之创建计算字段和函数

一、计算字段

有时候,数据库中的数据格式不一定是使用所需要的数据格式,需要对原数据进行拼接、裁剪、计算等操作,这时就要创建计算字段。

1 拼接

顾名思义,拼接就是将原属于表中两个列的字段拼成一个列,在其他的大部分DBMS中,拼接往往通过+ 或者||来实现,而在MySQL中,需要借用Concat函数来实现,如下列,将原顾客名称、顾客国家拼成一个列:

d38d554655afdc86a09c9ab3678dff7e.png

2.命名

在拼接工作完成后,新得到的列实现了计算功能,但是并没有名字,我们需要利用AS 关键字为其命名:

1e3a225a21b7b81eae6b62204cdada32.png

(Rtrim()为去除右侧空格的函数,相关的还有Ltrim()去除左边空格、Trim() 去除左右两边空格)

3,执行算术计算

MySQL支持加减乘除几个基本的算数操作符(+ - * /):

7252186adbd9b9cdccf35aaa216804eb.png

二、函数

和其他的DBMS一样,SQL支持利用函数来处理数据,前面的Rtrim等就是函数,但是需要注意的是,不同DBMS之间的函数兼容性并不好,所以在使用了函数时,最好做好注释,为以后可能的DBMS 之间的移植提供方便。

大多数SQL 支持以下几种类型 的函数:

(1) 处理文本串的文本函数(如大小写,删除或者填充值等等)

(2)用在数值数据上进行算术操作的数值函数

(3)用于处理日期和时间并从这些值中提取特定成分的日期和时间函数

(4)返回DBMS正使用的特殊信息(如返回用户登录信息、检查版本信息)的系统函数。

(1)文本处理函数

left()    返回串左边的字符

length()    返回串的长度

locate()    返回串的一个子串

lower()    将串转换为小写

Ltrim()    去掉串左边的空格

Right()    返回串右边的字符

Rtrim() 去掉串右边的空格

Soundex()    返回串的Soundex值

SubString()    返回字串的字符

Upper()    将串转换为大写

例子如下:

0a77a6d6fca45998c0f5d3bd71d20589.png

其中soundex函数值得解释一下,这是根据读音来进行匹配的函数,有时候知道数据的大致读音但并不精确知道数据,就可以利用这个函数匹配数据库中读音类似或者相同的数据,如数据为Y.Lee,但利用读音相近的Y.lie也可以匹配:

06a76e92cd8bde70365ec22c88e05387.png

(2)日期和时间函数

在SQL 中,日和时间函数使用特殊的数据类型和格式储存,日期和时间函数就是用来读取、统计和处理这些值。

AddDate()    增加一个日期

AddTime()    增加一个时间

CurDate()    返回当前日期

CurTime()    返回当前时间

Date()    返回日期时间的日期部分

DateDiff()    计算两个日期之差

Date_Add()    日期运算函数

Date_Format()    返回一个格式化的日期或者时间串

Day()   返回一个日期的天数部分

Day0fweek()     返回一个日期对应的星期几

Hour()    返回一个时间的小时部分

Minute()    返回一个时间的分钟部分

Month()    返回一个日期的月份部分

Now() 返回当前时间和日期

Second()    返回一个时间的秒数部分

Time()    返回一个日期时间对应的时间部分

Year()    返回一个日期的年数部分

在SQL中不管是更新还是插入新的时间数据时,都需要使用固定的日期格式:yyyy-mm-dd,使用两位数的年份SQL 也可以识别,但可能会造成不必要的误解,这也是编码的一个好习惯。

但在进行日期数据匹配时,我们并不能保证数据库中 的数据格式是yyyy-mm-dd还是yyyy-mm-dd hh-mm-ss,如果是后者,再使用select进行搜索,where date=‘2005-09-01’这样的条件行就永远不会返回数据,因此,在匹配之前,最好使用date()函数将时间数据格式固定为日期格式,就算之后时间数据格式有没有变化,代码都不用修改。

例:返回2005年9月份的订单行

有两种方法:

93e09e89bbea903e211fb2e27e3ac628.png

(3)数值处理函数

数值处理函数是DBMS中一致性最高的函数类型

Abs()    返回绝对值

Cos()    返回余弦值

Exp()    返回一个数的指数值

Mod()    返回除操作的余数

Pi()    返回圆周率

Rand()    返回一个随机数

Sin()    返回正弦值

Sqrt()    返回平方根

Tan()    返回正切值

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值