创建计算字段
1.拼接字段:将值联结到一起构成单个值,使用concat()函数
select concat(vend_name, '(', vend_country, ')')
from vendors
order by vend_name;
使用RTrim()去掉值右边所有空格,LTrim()去掉值左边所有空格,Trim()去掉左右两边空格
select concat(vend_name, '(', vend_country, ')')
from vendors
order by vend_name;
使用关键字AS可以赋予生成的计算字段一个别名
select concat(rtrim(vend_name), '(', rtrim(vend_country), ')') AS
vend_title
from vendors
order by vend_name;
新生成的列名为vend_title
2.执行算术计算
select prod_id,
quantity,
item_price,
quantity*item_price AS expanded_price
from orderitems
where order_num = 20005;
MySQL支持+,- ,*,/
使用数据处理函数
大多数SQL实现支持以下类型的函数:
1.用于处理文本串(如删除或填充值,转换值为大写或小写)的文本函数;
2.用于在数值数据上进行算术操作(如返回绝对值,进行代数运算)的数值函数;
3.用于处理日期和时间值并从这些值中提取特定成分(例如,返回两个日期之差,检查日期有效性等)的日期和时间函数;
4.返回DBMS正使用的特殊信息(如返回用户登录信息,检查版本细节)的系统函数。
1.文本处理函数
Upper()函数将文本转化为大写
select vend_name,upper(vend_name) AS vend_namea_upcase
from vendors
order by vend_name;
常用的文本处理函数:
Left()返回串左边的字符
Right()返回串右边的字符
Length()返回串的长度
Locate()找出串的一个子串
Lower()将串转化为小写
Upper()将串转化为大写
LTrim()去掉串左边的空格
RTrim()去掉串右边的空格
SubStrin()返回子串的字符
Soundex()返回串的SOUNDEX值
Soundex是一个将任何文本串转换为其语言表示的字母数字模式的算法
select cust_name,cust_contact
from customers
where soundex(cust_contact) = soundex('Y Lie');
可搜索出cust_contact为'Y Lee'
2.日期和时间处理函数
order_data的数据类型为datatime,这种类型存储日期及时间值
select cust_id,order_num
from orders
where date(order_date) = '2005-09-01';
Data()仅提取日期部分,Time()仅提取时间部分
select cust_id,order_num
from orders
where year(order_date) = 2005 AND month(order_data) = 9;
搜索2005年9月的所有行
3.数值处理函数