第六章 运算符和函数

概述

  1. 字符函数
  2. 数值运算符与函数
  3. 比较运算与函数
  4. 日期时间函数
  5. 信息函数
  6. 聚合函数
  7. 加密函数

一、字符函数

函数名称 描述
CONCAT() 字符连接
CONCAT_WS() 使用指定的分隔符进行字符连接
FORMAT() 数字格式化
LOWER() 转换成小写字母
UPPER() 转换成大写字母
LEFT() 获取左侧字符
RIGHT() 获取右侧字符
LENGTH() 获取字符串长度
LTRIM() 删除前导空格
RTRIM() 删除后续空格
TRIM() 删除前导和后续空格
SUBSTRING() 字符串截取
[NOT] LIKE 模式匹配
REPLACE() 字符串替换

example:

SELECT CONCAT('IMOOC', 'MYSQL');            --IMOOCMYSQL
SELECT CONCAT_WS('·', 'IMOOC', 'MYSQL');    --IMOOC·MYSQL
SELECT FORMAT(12560.7455,2);                --12,560.75
SELECT LOWER('MySql');                      --mysql
SELECT UPPER('MySql');                      --MYSQL
SELECT LEFT('MySQL', 2);                    --My
SELECT RIGHT('MySQL', 2);                   --QL
SELECT LENGTH('MySQL');                     --5
SELECT LTRIM('  MySQL   ');                 --MySQL
SELECT RTRIM('  MySQL   ');                 --   MySQL
SELECT TRIM('  MySQL   ');                  --MySQL
SELECT TRIM(LEADING '?' FROM '??MySQL???'); --MySQL???
SELECT TRIM(TRAILING '?' FROM '??MySQL???');--??MySQL
SELECT TRIM(BOTH '?' FROM '??MySQL???');    --MySQL
SELECT REPLACE('??My??SQL???','?','');      --MySQL
SELECT SUBSTRING('MySQL', 2, 2);            --yS
SELECT SUBSTRING('MySQL', 2);               --ySQL  
SELECT SUBSTRING('MySQL', -2);              --QL
SELECT SUBSTRING('MySQL', -3, 2);           --SQ
SELECT 'MySQL' LIKE 'M%';                   --1
SELECT 'My%SQL' LIKE '%1%%' ESCAPE '1';     --1
/*
%代表任意字符 _代表任意一个字符
*/

二、数值运算符与函数

名称 描述
CEIL() 进一取整
DIV 整数除法
FLOOR() 舍一取整
MOD 取余数(模)
POWER() 幂运算
ROUND 四舍五入
TRUNCATE() 数字截取

example:

SELECT CEIL(3.01);          --4
SELECT FLOOR(3.99);         --3
SELECT 3 DIV 4;             --0
SELECT 5 MOD 3;             --2
SELECT POWER(3, 3);         --27
SELECT ROUND(3.652, 2);     --3.65
SELECT TRUNCATE(125.89, 1); --125.8

三、比较运算符与函数

名称 描述
[NOT]BETWEEN...AND... [不]在范围之内
[NOT]IN() [不]在列出值范围内
IS[NOT] NULL [不]为空

example:

SELECT 15 BETWEEN 1 AND 22;      --1
SELECT 35 BETWEEN 1 AND 22;      --0
SELECT 35 NOT BETWEEN 1 AND 22;  --1
SELECT 10 IN (5, 10, 15, 20);    --1
SELECT 13 IN (5, 10, 15, 20);    --0
SELECT NULL IS NULL;             --1
SELECT '' IS NULL;               --0
SELECT 0 IS NULL;                --0

四、日期时间函数

名称 描述
NOW() 当前日期和时间
CURDATE() 当前日期
CURTIME() 当前时间
DATE_ADD() 日期变化
DATEDIFF() 日期差值
DATE_FORMAT() 日期格式化

example:

SELECT NOW();                                     --2018-04-25 17:10:12
SELECT CURDATE();                                 --2018-04-25
SELECT CURTIME();                                 --17:10:12
SELECT DATE_ADD('2014-3-12', INTERVAL 365 DAY);   --2015-03-12
SELECT DATE_ADD('2014-3-12', INTERVAL -365 DAY);  --2013-03-12
SELECT DATE_ADD('2014-3-12', INTERVAL 5 WEEK);    --2014-04-16
SELECT DATEDIFF('2013-3-12', '2014-3-12');        --365
SELECT DATE_FORMAT('2014-3-12','%m/%d/%Y');       --03/12/2014

五、信息函数

名称 描述
CONNECTION_ID() 连接ID
DATABASE() 当前数据库
LAST_INSERT_ID() 最后插入记录ID号
USER() 当前用户
VERSION() 版本信息

example:

SELECT CONNECTION_ID();   --3
SELECT DATABASE();        --imooc
SELECT LAST_INSERT_ID();  --0
SELECT USER();            --root@localhost
SELECT VERSION();         --5.7.17-log

六、MySQL聚合函数

名称 描述
AVG() 平均值
COUNT() 计数
MAX() 最大值
MIN() 最小值
SUM() 求和

example:

SELECT ROUND(AVG(goods_price), 2) AS avg_price FROM tdb_goods;
/*Result
+-----------+
| avg_price |
+-----------+
|   5654.81 |
+-----------+
*/
SELECT COUNT(goods_id) AS counts FROM tdb_goods;
/*Result
+--------+
| counts |
+--------+
|     21 |
+--------+
*/
SELECT MAX(goods_price) FROM tdb_goods;
/*Result
+------------------+
| MAX(goods_price) |
+------------------+
|        28888.000 |
+------------------+
*/
SELECT MAX(goods_price) FROM tdb_goods;
/*Result
+------------------+
| MIN(goods_price) |
+------------------+
|           99.000 |
+------------------+
*/
SELECT SUM(goods_price) FROM tdb_goods;
/*Result
+------------------+
| SUM(goods_price) |
+------------------+
|       118751.000 |
+------------------+
*/

七、加密函数

名称 描述
MD5() 信息摘要算法
PASSWORD() 密码算法

example:

SELECT MD5('admin');
/*Result
+----------------------------------+
| MD5('admin')                     |
+----------------------------------+
| 21232f297a57a5a743894a0e4a801fc3 |
+----------------------------------+
*/
SELECT PASSWORD('admin');
/*Result
+-------------------------------------------+
| PASSWORD('admin')                         |
+-------------------------------------------+
| *4ACFE3202A5FF5CF467898FC58AAB1D615029441 |
+-------------------------------------------+
*/

修改密码

SET PASSWORD = PASSWORD('root');
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,468评论 5 473
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,620评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,427评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,160评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,197评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,334评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,775评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,444评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,628评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,459评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,508评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,210评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,767评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,850评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,076评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,627评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,196评论 2 341