您的位置:首页 > 数据库 > MySQL

Mysql之各种各样的函数啦

2016-04-21 15:51 537 查看
各种各样的函数(一些自带的便利工具)

分类:算术,字符串,日期,转换,聚合。

1.ABS绝对值

ABS(数值) :select m,ABS(m) as abs_col from samplemath;

2.求余MOD

MOD(被除数,除数) :select n,p,MOD(n,p) as mod_col from samplemath;

3.round函数

ROUND函数(对象数值,保留小数的位数)

-----对m列的数值进行n列位数的四舍五入处理

Select m,n,ROUND(m,n) as round_col FROM Samplamath;

4.|| 拼接

Select str1,str2,str1||str2 as str_concat from samplestr;

5.拼接三个字符串(str1+str2+str3)

Select str1,str2,str3,str1||str2||str3 as str_concat from samplestr where str1 = ‘lala’;

//mysql select str1,str2,str3,concat(str1,str2,str3) as str_concat from samplestr;

6.计算字符串长度LENGTH(字串)

Select str1,length(str1) as len_str from samplestr;//注意length函数不能再sql server中用

7.lower---小写转换

Lower(字符串) select str1 lower(str1) as low_str

From samplestr where str in(‘ABC’,’aBC’,’abc’,’三本’);

8.replace--字符串替换

Replace(字符串对象,替换前字符串对象,替换后字符串对象);

Select str1,str2,str3,replace(str1,str2,str3) as rep_str from samplestr;

9.SUBSTRING(object_str from 截取位置 FOR 截取的字符数)

---截取出字符串中第三和第四位的字符

Select str1 substring(str1 from 3 for 2) as sub_str

From samplestr;

10. Upper--大写转换

Select str1 upper(str1) as up_str from samplestr where str in (‘abc’,’aBc’,’ABC’,’三本’);

----将小写换成大写

11.CURRENT_DATE---日期函数

Select CURRENT_DATE;

----截取当前日期

CURRENT_TIME---获取当前时间

Select CURRENT_TIME;

CURRENT_TIMESTAMP ---当前日期和时间

Select CURRENT_TIMESTAMP;

---截取日期元素EXTRACT(日期元素 FROM 日期);

Select CURRENT_TIMESTAMP,EXTRACT(YEAR FROM CURRENT_TIMESTAMP) AS year,

EXTRACT(MONTH FROM CURRENT_TIMESTAMP) AS month,

EXTRACT(DAY FROM CURRENT_TIMESTAMP) AS day,

EXTRACT(HOUR FROM CURRENT_TIMESTAMP) AS hour,

EXTRACT(MINUTE FROM CURRENT_TIMESTAMP) AS minute,

EXTRACT(SECOND FROM CURRENT_TIMESTAMP) AS second;

12.类型转换---CAST

Select CAST(‘0001’ AS INTEGER) AS int_col;

---将字符串型转换为数值型

Select CAST(‘2009-12-14’ AS DATE) AS date_col;

---将字符串类型转换为日期类型

COALESCE---将NULL转换为其他值

COALESCE(数据1,数据2,。。。,);

Select COALESCE(NULL,1) AS col_1,COALESCE(NULL,’test’,NULL) AS col_2,

Coalesce(NULL,NULL,’2009-11-01’);

6-2谓词(predicate)

LIKE ,BETWEEN,IS NULL、IS NOT NULL IN EXISTS

---前方一致查询

Select * from samplelike

Where strcol LIKE ‘ddd%’;

---中间一致查询

Select * from samplelike where strcol LIKE ‘%ddd%’;

---后方一致查询

Select *form samplelike where strcol LIKE ‘%ddd’;

------使用LIKE和_(下划线)进行后方查询一致

Select *

From sample

Where strcol LIKE ‘abc__’;

BETWEEN范围查询

Select shohin_mei,hanbai_tanka

From shohin

Where hanbai_tanka BETWEEN 100 AND 1000;特点在于结果中会包含100和1000这两个值

Select shohin_mei,hanbai_tanka

From shohin

Where hanbai_tanka >= 100 AND hanbai_tanka <= 1000;

----上下两个是等效的

IS NULL 和IS NOT NULL---判断是否为NULL

Select shohin_mei,shiire_tanka

From shohin

Where shiire_tanka IS NULL;

Select shohin_mei,shiire_tanka From shohin

Where shiire_tanka IS NOT NULL;

IN谓词--OR的简便用法

Select shohin_mei,shiire_tanka

From shohin

Where shiire_tanka = 320 OR

Shiire_tanka = 500 OR

Shiire_tanka = 5000;

Select shohin_mei,shiire_tanka

From shohin

Where shiire_tanka IN (320,500,5000);

EXIST谓词

作用:“判断是否存在满足某条件的记录”;

Select shohin_mei,hanbai_tanka

From shohin AS S

Where EXISTS(select * from TenpoShohin AS TS

Where TS.tenpo_id = ‘00C’ AND TS,shohin_id = S.shohin_id);

6-3CAST表达式

CAST WHEN <判断式子> THEN <表达式>

.

.

.

WHEN <判断式子> THEN<表达式>

ELSE <表达式>

END

---通过CASE表达式将A-C的字符串加入到商品分类当中去

Select shohin_mei,

CASE WHEN shohin_bunrui = ‘衣服’

THEN ‘A:’ ||shohin_bunrui

WHEN shohin_bunrui = ‘办公用品’

THEN ‘B:’ || shohin_bunrui

WHEN shohin_bunrui = ‘厨房用具’

ELSE NULL

END NULL

END AS abc_shohin_bunrui

FROM shohin;

Select shohin_bunrui,SUM(hanbai_tanka) AS sum_tanak

From shohin group by shohin_bunrui;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: