数值型函数
abs() 求绝对值
select abs(5),abs(-2.4),abs(-24),abs(0);
/*
+--------+-----------+----------+--------+
| abs(5) | abs(-2.4) | abs(-24) | abs(0) |
+--------+-----------+----------+--------+
| 5 | 2.4 | 24 | 0 |
+--------+-----------+----------+--------+
*/
sqrt() 求二次方根
函数 SQRT(x) 返回非负数 x 的二次方根。负数没有平方根,返回结果为 NULL。
select sqrt(25),sqrt(120),sqrt(-9);
/*
+----------+--------------------+----------+
| sqrt(25) | sqrt(120) | sqrt(-9) |
+----------+--------------------+----------+
| 5 | 10.954451150103322 | NULL |
+----------+--------------------+----------+
*/
mod() 求余数
函数 MOD(x,y) 返回 x 被 y 除后的余数,MOD() 对于带有小数部分的数值也起作
用,它返回除法运算后的余数。
select mod(63,8),mod(120,10),mod(15.5,3);
/*
+-----------+-------------+-------------+
| mod(63,8) | mod(120,10) | mod(15.5,3) |
+-----------+-------------+-------------+
| 7 | 0 | 0.5 |
+-----------+-------------+-------------+
*/
ceil()和ceiling() 向上取证
select ceil(-2.5),ceiling(2.5);
/*
+------------+--------------+
| ceil(-2.5) | ceiling(2.5) |
+------------+--------------+
| -2 | 3 |
+------------+--------------+
*/
floor() 向下取整
select floor(5),floor(5.66),floor(-4),floor(-4.66);
/*
+----------+-------------+-----------+--------------+
| floor(5) | floor(5.66) | floor(-4) | floor(-4.66) |
+----------+-------------+-----------+--------------+
| 5 | 5 | -4 | -5 |
+----------+-------------+-----------+--------------+
*/
rand() 生成一个随机数
生成一个0~1之间的随机数,传入整数参数是,用来产生重复序列
select rand(), rand(), rand();
/*
+--------------------+--------------------+--------------------+
| rand() | rand() | rand() |
+--------------------+--------------------+--------------------+
| 0.46922234116981026 | 0.566406603498763| 0.4243660247180294|
+--------------------+--------------------+--------------------+
*/
select rand(1),rand(2),rand(1);
/*
+---------------------+--------------------+---------------------+
| rand(1) | rand(2) | rand(1) |
+---------------------+--------------------+---------------------+
| 0.40540353712197724 | 0.6555866465490187 | 0.40540353712197724 |
+---------------------+--------------------+---------------------+
*/
select rand(1),rand(2),rand(1);
/*
+---------------------+--------------------+---------------------+
| rand(1) | rand(2) | rand(1) |
+---------------------+--------------------+---------------------+
| 0.40540353712197724 | 0.6555866465490187 | 0.40540353712197724 |
+---------------------+--------------------+---------------------+
*/
rand() 四舍五入
ROUND(x,y) 函数对参数x进行四舍五入的操作,返回值保留小数点后面指定的y位
select round(-6.6),round(-8.44),round(3.44);
/*
+-------------+--------------+-------------+
| round(-6.6) | round(-8.44) | round(3.44) |
+-------------+--------------+-------------+
| -7 | -8 | 3 |
+-------------+--------------+-------------+
*/
select round(-6.66,1),round(3.33,3),round(88.66,-1),round(88.46,-2);
/*
+----------------+---------------+-----------------+-----------------+
| round(-6.66,1) | round(3.33,3) | round(88.66,-1) | round(88.46,-2) |
+----------------+---------------+-----------------+-----------------+
| -6.7 | 3.330 | 90 | 100 |
+----------------+---------------+-----------------+-----------------+
*/
sign() 返回参数的符号
返回参数的符号,x 的值为负、零和正时返回结果依次为 -1、0 和 1。
select sign(-6),sign(0),sign(34);
/*
+----------+---------+----------+
| sign(-6) | sign(0) | sign(34) |
+----------+---------+----------+
| -1 | 0 | 1 |
+----------+---------+----------+
*/
pow() 和 power() 次方函数
POW(x,y) 函数和 POWER(x,y) 函数用于计算 x 的 y 次方。
select pow(5,-2),pow(10,3),pow(100,0),power(4,3),power(6,-3);
/*
+-----------+-----------+------------+------------
+----------------------+
| pow(5,-2) | pow(10,3) | pow(100,0) | power(4,3) | power(6,-3)
|
+-----------+-----------+------------+------------
+----------------------+
| 0.04 | 1000 | 1 | 64 |
0.004629629629629629 |
+-----------+-----------+------------+------------
+----------------------+
*/
sin() 正弦函数
SIN(x) 返回 x 的正弦值,其中 x 为弧度值。
select sin(1),sin(0.5*pi()),pi();
/*
+--------------------+---------------+----------+
| sin(1) | sin(0.5*pi()) | pi() |
+--------------------+---------------+----------+
| 0.8414709848078965 | 1 | 3.141593 |
+--------------------+---------------+----------+
*/
字符串函数
length() 返回字符串直接长度
返回值为字符串的字节长度,使用 uft8(UNICODE 的一种变长字符编码,又称
万国码)编码字符集时,一个汉字是 3 个字节,一个数字或字母是一个字节。
select length('javacode2018'),length('路人甲Java'),length('路人');
/*
+------------------------+-------------------------+------------------
+
| length('javacode2018') | length('路⼈甲Java') | length('路⼈') |
+------------------------+-------------------------+------------------
+
| 12 | 13 | 6
|
+------------------------+-------------------------+------------------
+
*/
concat() 合并字符串
CONCAT(sl,s2,...) 函数返回结果为连接参数产生的字符串,或许有一个或多个
参数。
若有任何一个参数为 NULL,则返回值为 NULL。
若所有参数均为非二进制字符串,则结果为非二进制字符串。
若自变量中含有任一二进制字符串,则结果为一个二进制字符串。
select concat('路人甲','java'),concat('路人甲',null,'java');
/*
+----------------------------+---------------------------------+
| concat('路人甲','java') | concat('路人甲',null,'java') |
+----------------------------+---------------------------------+
| 路⼈甲java | NULL |
+----------------------------+---------------------------------+
*/
insert() 替换字符串
INSERT(s1,x,len,s2) 返回字符串 s1,子字符串起始于 x 位置,并且用 len 个
字符长的字符串代替 s2。
x的值从1开始,第一个字符的x=1,若 x 超过字符串长度,则返回值为原始字符
串。
假如 len 的长度大于其他字符串的长度,则从位置 x 开始替换。
若任何一个参数为 NULL,则返回值为 NULL。
select
-> insert('路⼈甲Java', 2, 4, '**') AS col1,
-> insert('路⼈甲Java', -1, 4,'**') AS col2,
-> insert('路⼈甲Java', 3, 20,'**') AS col3;
/*
+---------+---------------+----------+
| col1 | col2 | col3 |
+---------+---------------+----------+
| 路**va | 路⼈甲Java | 路⼈** |
+---------+---------------+----------+
*/
lower() 将字符串转成小写
LOWER(str) 可以将字符串 str 中的字母字符全部转换成小写。
select lower('路人甲JAVA');
/*
+------------------------+
| lower('路人甲JAVA') |
+------------------------+
| 路人甲java |
+------------------------+
*/
upper() 将字母转换成大写
UPPER(str) 可以将字符串 str 中的字母字符全部转换成大写。
select upper('路人甲java');
/*
+------------------------+
| upper('路人甲java') |
+------------------------+
| 路人甲JAVA |
+------------------------+
*/
left() 从左侧截取字符串
LEFT(s,n) 函数返回字符串 s 最左边的 n 个字符,s=1表示第一个字符。
select left('路人甲JAVA',2),left('路人甲JAVA',10),left('路人甲JAVA',-1);
/*
+-------------------------+--------------------------
+--------------------------+
| left('路人甲JAVA',2) | left('路人甲JAVA',10) | left('路人甲
JAVA',-1) |
+-------------------------+--------------------------
+--------------------------+
| 路人 | 路人甲JAVA | |
+-------------------------+--------------------------
+--------------------------+
*/
right() 从右侧截取字符串
RIGHT(s,n) 函数返回字符串 s 最右边的 n 个字符
select right('路人甲JAVA',1),right('路人甲JAVA',10),right('路人甲JAVA',-1);
/*
+--------------------------+---------------------------
+---------------------------+
| right('路人甲JAVA',1) | right('路人甲JAVA',10) | right('路人甲
JAVA',-1) |
+--------------------------+---------------------------
+---------------------------+
| A | 路人甲JAVA |
|
+--------------------------+---------------------------
+---------------------------+
*/
trim() 删除字符串两侧空格
TRIM(s) 删除字符串 s 两侧的空格。
select '[ 路⼈甲Java ]',concat('[',trim(' 路⼈甲Java'),']');
replace() 字符串替换
REPLACE(s,s1,s2) 使用字符串 s2 替换字符串 s 中所有的字符串 s1。
substr() 和 substring() 截取字符串
substr(str,pos)
substr(str from pos)
substr(str,pos,len)
substr(str from pos for len)
substr()是substring()的同义词。
没有len参数的形式是字符串str从位置pos开始返回一个子字符串。
带有len参数的形式是字符串str从位置pos开始返回长度为len的子字符串。
使用FROM的形式是标准的SQL语法。
也可以对pos使用负值,在这种情况下,子字符串的开头是字符串末尾的pos字
符,而不是开头。 在这个函数的任何形式中pos可以使用负值。
对于所有形式的substring(),从中提取子串的字符串中第一个字符的位置被认为
是1。
/** 第三个字符之后的子字符串:inese **/
SELECT substring('chinese', 3);
/** 倒数第三个字符之后的子字符串:ese **/
SELECT substring('chinese', -3);
/** 第三个字符之后的两个字符:in **/
SELECT substring('chinese', 3, 2);
/** 倒数第三个字符之后的两个字符:es **/
SELECT substring('chinese', -3, 2);
/** 第三个字符之后的子字符串:inese **/
SELECT substring('chinese' FROM 3);
/** 倒数第三个字符之后的子字符串:ese **/
SELECT substring('chinese' FROM -3);
/** 第三个字符之后的两个字符:in **/
SELECT substring('chinese' FROM 3 FOR 2);
/** 倒数第三个字符之后的两个字符:es **/
SELECT substring('chinese' FROM -3 FOR 2);
reverse() 反转字符串
select reverse('路人甲Java');
select reverse('路人甲Java');
/*
+--------------------------+
| reverse('路人甲Java') |
+--------------------------+
| avaJ甲人路 |
+--------------------------+
*/
日期和时间函数
curdate() 和 current_date() 两个函数作用相同,返回当前系统的日期值
CURDATE() 和 CURRENT_DATE() 函数的作用相同,将当前日期按照“YYYY-MM-DD”或“YYYYMMDD”格式的值返回,具体格式根据函数用在字符串或数字语境中而定,返回的 date 类型。
select curdate(),current_date(),current_date()+1;
/*
+------------+----------------+------------------+
| curdate() | current_date() | current_date()+1 |
+------------+----------------+------------------+
| 2019-09-17 | 2019-09-17 | 20190918 |
+------------+----------------+------------------+
*/
curtime() 和 current_time() 获取系统当前时间
CURTIME() 和 CURRENT_TIME() 函数的作用相同,将当前时间以“HH:MM:
SS”或“HHMMSS”格式返回,具体格式根据函数用在字符串或数字语境中而定,
返回 time 类型。
select curtime(),current_time(),current_time()+1;
/*
+-----------+----------------+------------------+
| curtime() | current_time() | current_time()+1 |
+-----------+----------------+------------------+
| 16:11:25 | 16:11:25 | 161126 |
+-----------+----------------+------------------+
*/
now() 和sysdate() 获取当前时间日期
NOW() 和 SYSDATE() 函数的作用相同,都是返回当前日期和时间值,格式为
“YYYY-MM-DD HH:MM:SS”或“YYYYMMDDHHMMSS”,具体格式根据函数用在
字符串或数字语境中而定,返回 datetime 类型。
select now(),sysdate();
/*
+---------------------+---------------------+
| now() | sysdate() |
+---------------------+---------------------+
| 2019-09-17 16:13:28 | 2019-09-17 16:13:28 |
+---------------------+---------------------+
*/
unix_timestamp() 获取UNIX时间戳
UNIX_TIMESTAMP(date) 若无参数调用,返回一个无符号整数类型的 UNIX 时间
戳('1970-01-01 00:00:00'GMT之后的秒数)。
select
unix_timestamp(),
unix_timestamp(now()),now(),unix_timestamp('2019-09-17 12:00:00');
/*
+------------------+-----------------------+---------------------
+---------------------------------------+
| unix_timestamp() | unix_timestamp(now()) | now() |
unix_timestamp('2019-09-17 12:00:00') |
+------------------+-----------------------+---------------------
+---------------------------------------+
| 1568710893 | 1568710893 | 2019-09-17 17:01:33 |
1568692800 |
+------------------+-----------------------+---------------------
+---------------------------------------+
*/
from_unixtime() 时间戳转日期
FROMUNIXTIME(unixtimestamp[,format]) 函数把 UNIX 时间戳转换为普通格式的
日期时间值,与 UNIX_TIMESTAMP () 函数互为反函数。
2个参数:
unix_timestamp:时间戳(秒)
format:要转化的格式 比如“”%Y-%m-%d“” 这样格式化之后的时间就是2017-11-30
具体格式参考baidu
select from_unixtime(1568710866),from_unixtime(1568710866,'%Y-%m-%d %H:%h:%s');
/*
+---------------------------
+-----------------------------------------------+
| from_unixtime(1568710866) | from_unixtime(1568710866,'%Y-%m-%d %H:
%h:%s') |
+---------------------------
+-----------------------------------------------+
| 2019-09-17 17:01:06 | 2019-09-17 17:05:06
|
+---------------------------
+-----------------------------------------------+
*/
month() 获取指定日期的月份
MONTH(date) 函数返回指定 date 对应的月份,范围为 1~12。
select month('2017-12-15'),month(now());
/*
+---------------------+--------------+
| month('2017-12-15') | month(now()) |
+---------------------+--------------+
| 12 | 9 |
+---------------------+--------------+
*/
monthname() 获取指定日期月份的英文名称
MONTHNAME(date) 函数返回日期 date 对应月份的英文全名。
select monthname('2017-12-15'),monthname(now());
/*
+-------------------------+------------------+
| monthname('2017-12-15') | monthname(now()) |
+-------------------------+------------------+
| December | September |
+-------------------------+------------------+
*/
dayname() 获取指定日期的星期名称
DAYNAME(date) 函数返回 date 对应的工作日英文名称,例如 Sunday、Monday
等。
select now(),dayname(now());
/*
+---------------------+----------------+
| now() | dayname(now()) |
+---------------------+----------------+
| 2019-09-17 17:13:08 | Tuesday |
+---------------------+----------------+
*/
dayofweek() 获取日期对应的周索引
DAYOFWEEK(d) 函数返回 d 对应的一周中的索引(位置)。1 表示周日,2 表示
周一,……,7 表示周六。这些索引值对应于ODBC标准。
select now(),dayofweek(now());
/*
+---------------------+------------------+
| now() | dayofweek(now()) |
+---------------------+------------------+
| 2019-09-17 17:14:21 | 3 |
+---------------------+------------------+
*/
week() 获取指定日期是一年中的第几周
WEEK(date[,mode]) 函数计算日期 date 是一年中的第几周。
WEEK(date,mode)函数允许指定星期是否起始于周日或周一,以及返回值的范围是否为 0~52 或 1~53。
参数
date 是要获取周数的日期。
mode 是一个可选参数,用于确定周数计算的逻辑。它允许您指定本周是从星期
一还是星期日开始,返回的周数应在 0 到 52 之间或 0 到 53 之间。
如果忽略 mode 参数,默认情况下 WEEK 函数将使用 default_week_format 系统变
量的值。(更多详细查看baidu)
要获取 default_week_format 变量的当前值,请使用 SHOW VARIABLES 语句如
下:
SHOW VARIABLES LIKE 'default_week_format';
/*
+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| default_week_format | 0 |
+---------------------+-------+
*/
dayofyear() 获取指定日期在一年中的位置
DAYOFYEAR(d) 函数返回 d 是一年中的第几天,范围为 1~366。
select now(),dayofyear(now()),dayofyear('2019-01-01');
/*
+---------------------+------------------+-------------------------+
| now() | dayofyear(now()) | dayofyear('2019-01-01') |
+---------------------+------------------+-------------------------+
| 2019-09-17 17:22:00 | 260 | 1 |
+---------------------+------------------+-------------------------+
*/
dayofmonth() 获取指定日期在一个月的位置
DAYOFMONTH(d) 函数返回 d 是一个月中的第几天,范围为 1~31。
select now(),dayofmonth(now()),dayofmonth('2019-01-01');
/*
+---------------------+-------------------+--------------------------+
| now() | dayofmonth(now()) | dayofmonth('2019-01-01') |
+---------------------+-------------------+--------------------------+
| 2019-09-17 17:23:09 | 17 | 1 |
+---------------------+-------------------+--------------------------+
*/
year() 获取年份
YEAR() 函数可以从指定日期值中来获取年份值。
select now(),year(now()),year('2019-01-02');
/*
+---------------------+-------------+--------------------+
| now() | year(now()) | year('2019-01-02') |
+---------------------+-------------+--------------------+
| 2019-09-17 17:28:10 | 2019 | 2019 |
+---------------------+-------------+--------------------+
*/
timetosec() 将时间转换为秒值
TIMETOSEC(time) 函数返回将参数 time 转换为秒数的时间值,转换公式为“小时
×3600+ 分钟 ×60+ 秒”。
select time_to_sec('15:15:15'),now(),time_to_sec(now());
/*
+-------------------------+---------------------+--------------------+
| time_to_sec('15:15:15') | now() | time_to_sec(now()) |
+-------------------------+---------------------+--------------------+
| 54915 | 2019-09-17 17:30:44 | 63044 |
+-------------------------+---------------------+--------------------+
*/
sectotime() 将秒值转换为时间格式
SECTOTIME(seconds) 函数返回将参数 seconds 转换为小时、分钟和秒数的时间
值。
select sec_to_time(100),sec_to_time(10000);
/*
+------------------+--------------------+
| sec_to_time(100) | sec_to_time(10000) |
+------------------+--------------------+
| 00:01:40 | 02:46:40 |
+------------------+--------------------+
*/
date_add() 和 adddate() 向日期添加指定时间间隔
DATE_ADD(date,INTERVAL expr type)
date:参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
type 参数值 查看baidu
select date_add('2019-01-01',INTERVAL 10day),adddate('2019-01-01 16:00:00',interval 100 SECOND);
/*
+----------------------------------------
+----------------------------------------------------+
| date_add('2019-01-01',INTERVAL 10 day) | adddate('2019-01-01
16:00:00',interval 100 SECOND) |
+----------------------------------------
+----------------------------------------------------+
| 2019-01-11 | 2019-01-01 16:01:40
|
+----------------------------------------
+----------------------------------------------------+
*/
select date_add('2019-01-01',INTERVAL -10day),adddate('2019-01-01 16:00:00',interval -100 SECOND);
/*
+-----------------------------------------
+-----------------------------------------------------+
| date_add('2019-01-01',INTERVAL -10 day) | adddate('2019-01-01
16:00:00',interval -100 SECOND) |
+-----------------------------------------
+-----------------------------------------------------+
| 2018-12-22 | 2019-01-01 15:58:20
|
+-----------------------------------------
+-----------------------------------------------------+
*/
date_sub() 和 subdate() 日期减法运算
DATE_SUB(date,INTERVAL expr type)
date:参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。
type的类型和date_add中的type一样。
select date_sub('2019-01-01',INTERVAL 10day),subdate('2019-01-01 16:00:00',interval 100 SECOND);
/*
+----------------------------------------
+----------------------------------------------------+
| date_sub('2019-01-01',INTERVAL 10 day) | subdate('2019-01-01
16:00:00',interval 100 SECOND) |
+----------------------------------------
+----------------------------------------------------+
| 2018-12-22 | 2019-01-01 15:58:20
|
+----------------------------------------
+----------------------------------------------------+
*/
select date_sub('2019-01-01',INTERVAL -10day),subdate('2019-01-01 16:00:00',interval -100 SECOND);
/*
+-----------------------------------------
+-----------------------------------------------------+
| date_sub('2019-01-01',INTERVAL -10 day) | subdate('2019-01-01
16:00:00',interval -100 SECOND) |
+-----------------------------------------
+-----------------------------------------------------+
| 2019-01-11 | 2019-01-01 16:01:40
|
+-----------------------------------------
+-----------------------------------------------------+
*/
addtime() 时间加法运算
ADDTIME(time,expr) 函数用于执行时间的加法运算。
time 是一个时间或日期时间表达式,expr 是一个时间表达式。
select addtime('2019-09-18 23:59:59','0:1:1'),addtime('10:30:59','5:10:37');
/*
+----------------------------------------
+-------------------------------+
| addtime('2019-09-18 23:59:59','0:1:1') |
addtime('10:30:59','5:10:37') |
+----------------------------------------
+-------------------------------+
| 2019-09-19 00:01:00 | 15:41:36
|
+----------------------------------------
+-------------------------------+
*/
subtime() 时间减法运算
SUBTIME(time,expr) 函数用于执行时间的减法运算。
函数返回 time。expr 表示的值和格式 time 相同。time 是一个时间或日期时间表
达式, expr 是一个时间。
select subtime('2019-09-18 23:59:59','0:1:1'),subtime('10:30:59','5:12:37');
/*
+----------------------------------------
+-------------------------------+
| subtime('2019-09-18 23:59:59','0:1:1') |
subtime('10:30:59','5:12:37') |
+----------------------------------------
+-------------------------------+
| 2019-09-18 23:58:58 | 05:18:22
|
+----------------------------------------
+-------------------------------+
*/
datediff() 获取两个日期的时间间隔
DATEDIFF(date1,date2) 返回起始时间 date1 和结束时间 date2 之间的天数。
date1 和 date2 为日期或 date-and-time 表达式。计算时只用到这些值的日期部分。
select datediff('2017-11-30','2017-11-29') as col1,datediff('2017-11-30','2017-12-15') as col2;
/*
+------+------+
| col1 | col2 |
+------+------+
| 1 | -15 |
+------+------+
*/
date_format() 格式化指定的日期
DATE_FORMAT(date,format) 函数是根据 format 指定的格式显示 date 值。
date:是要格式化的有效日期值format:是由预定义的说明符组成的格式字符串,每个说明符前面都有一个百分比字符(%)。
format:格式和上面的函数 from_unixtime 中的format一样,可以参考上面的。
select date_format('2017-11-30','%Y%m%d') as col0,now() as col1, date_format(now(),'%Y%m%d%H%i%s') as col2;
/*
+----------+---------------------+----------------+
| col0 | col1 | col2 |
+----------+---------------------+----------------+
| 20171130 | 2019-09-17 17:56:12 | 20190917175612 |
+----------+---------------------+----------------+
*/
weekday() 获取指定日期在一周内的索引位置
WEEKDAY(date) 返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。
select now(),weekday(now());
/*
+---------------------+----------------+
| now() | weekday(now()) |
+---------------------+----------------+
| 2019-09-17 18:01:34 | 1 |
+---------------------+----------------+
*/
select now(),dayofweek(now());
/*
+---------------------+------------------+
| now() | dayofweek(now()) |
+---------------------+------------------+
| 2019-09-17 18:01:34 | 3 |
+---------------------+------------------+
*/
聚合函数
max、min、count、sum、avg等
流程控制函数
if 判断
IF(expr,v1,v2)
当 expr 为真是返回 v1 的值,否则返回 v2
select if(1<2,1,0) c1,if(1>5,'√','×') c2,if(strcmp('abc','ab'),'yes','no') c3;
/*
+----+----+-----+
| c1 | c2 | c3 |
+----+----+-----+
| 1 | × | yes |
+----+----+-----+
*/
ifnull 判断是否为空
IFNULL(v1,v2):v1为空返回v2,否则返回v1。
select ifnull(null,'路人甲Java'),ifnull('非空','为空');
/*
+------------------------------+---------------------------+
| ifnull(null,'路人甲Java') | ifnull('非空','为空') |
+------------------------------+---------------------------+
| 路人甲Java | 非空 |
+------------------------------+---------------------------+
*/
case 搜索语句
2种写法
CASE
WHEN THEN
WHEN THEN
...
ELSE
END CASE;
CASE
WHEN THEN
WHEN THEN
...
ELSE commands
END CASE;
SELECT
t.name 姓名,
(
CASE t.sex
WHEN 1 THEN '男'
WHEN 2 THEN '⼥'
ELSE '未知' END
) 性别
FROM t_stu t;
/*
+-----------+--------+
| 姓名 | 性别 |
+-----------+--------+
| 张学友 | 男 |
| 刘德华 | 男 |
| 郭富城 | 男 |
| 蔡依林 | 女 |
| xxx | 未知 |
+-----------+--------+
*/
SELECT
t.name 姓名,
(
CASE
WHEN t.sex = 1 THEN '男'
WHEN t.sex = 2 THEN '⼥'
ELSE '未知' END
) 性别
FROM t_stu t;
其他函数
version() 查看mysql版本
select version();
database() 查看数据库
select database();
user() 查看用户
select user();
password() 加密函数
select password('123456');
md5() 加密
select md5('123456');