自学书籍.MySQL必知必会 - 使用数据处理函数

文本处理类函数:

mysql> SELECT UPPER('Hej');
        -> 'HEJ'

说明:转换为大写

mysql> SELECT LEFT('foobarbar', 5);
        -> 'fooba'

说明:从左取字串

mysql> SELECT LENGTH('text');
        -> 4

说明:返回串的长度

mysql> SELECT LOCATE('bar', 'foobarbar');
        -> 4
mysql> SELECT LOCATE('xbar', 'foobar');
        -> 0
mysql> SELECT LOCATE('bar', 'foobarbar', 5);
        -> 7

说明:查找字串位置

mysql> SELECT LOWER('QUADRATICALLY');
        -> 'quadratically'

说明:转换串为小写

mysql> SELECT LTRIM('  barbar');
        -> 'barbar'

说明:清除串左边空白

mysql> SELECT RTRIM('barbar   ');
        -> 'barbar'

说明:清除串右边空白

mysql> SELECT TRIM('  bar   ');
        -> 'bar'
mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
        -> 'barxxx'
mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
        -> 'bar'
mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
        -> 'barx'

说明:清除两边指定字符

mysql> SELECT RIGHT('foobarbar', 4);
        -> 'rbar'

说明:从右取字串

1.SOUNDEX将任何文本串转换为描述其语音表示的字母数字模式的算法,能对串进行发音匹配

mysql> SELECT SOUNDEX('LILIE');
        -> 'L000'
mysql> SELECT SOUNDEX('LILEE');
        -> 'L000'

说明:对串进行发音匹配

mysql> SELECT SUBSTRING('Quadratically',5);
        -> 'ratically'
mysql> SELECT SUBSTRING('foobarbar' FROM 4);
        -> 'barbar'
mysql> SELECT SUBSTRING('Quadratically',5,6);
        -> 'ratica'
mysql> SELECT SUBSTRING('Sakila', -3);
        -> 'ila'
mysql> SELECT SUBSTRING('Sakila', -5, 3);
        -> 'aki'
mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2);
        -> 'ki'

说明:返回串的子串

  

算术操作类函数:

mysql> SELECT ABS(2);
        -> 2
mysql> SELECT ABS(-32);
        -> 32

说明:返回一个数的绝对值

mysql> SELECT COS(PI());
        -> -1

说明:返回一个角度的余弦

mysql> SELECT EXP(2);
        -> 7.3890560989307
mysql> SELECT EXP(-2);
        -> 0.13533528323661
mysql> SELECT EXP(0);
        -> 1

说明:返回一个数的指数值

mysql> SELECT MOD(234, 10);
        -> 4
mysql> SELECT 253 % 7;
        -> 1
mysql> SELECT MOD(29,9);
        -> 2
mysql> SELECT 29 MOD 9;
        -> 2

说明:返回除操作数的余数

mysql> SELECT PI();
        -> 3.141593
mysql> SELECT PI()+0.000000000000000000;
        -> 3.141592653589793116

说明:返回圆周率

mysql> SELECT RAND();
        -> 0.35877890638893

说明:返回一个0~1之间的随机数

mysql> SELECT SIN(PI());
        -> 1.2246063538224e-16
mysql> SELECT ROUND(SIN(PI()));
        -> 0

说明:返回一个角度的正弦

mysql> SELECT SQRT(4);
        -> 2
mysql> SELECT SQRT(20);
        -> 4.4721359549996
mysql> SELECT SQRT(-16);
        -> NULL

说明:返回一个数的平方根

mysql> SELECT TAN(PI());
        -> -1.2246063538224e-16
mysql> SELECT TAN(PI()+1);
        -> 1.5574077246549

说明:返回一个角度的正切


日期时间类函数:

mysql> SELECT ADDDATE('2008-01-02', 31);
        -> '2008-02-02'

说明:增加一个日期(天,周等)

mysql> SELECT ADDTIME('2007-12-31 23:59:59.999999', '1 1:1:1.000002');
        -> '2008-01-02 01:01:01.000001'
mysql> SELECT ADDTIME('01:00:00.999999', '02:00:00.999998');
        -> '03:00:01.999997'

说明:增加一个时间(时,分等)

mysql> SELECT CURDATE();
        -> '2008-06-13'
mysql> SELECT CURDATE() + 0;
        -> 20080613

说明:返回当前日期,字符串+0返回一个数值型

mysql> SELECT CURTIME();
        -> '23:50:26'
mysql> SELECT CURTIME() + 0;
        -> 235026.000000

说明:返回当前时间,字符串+0返回一个浮点型

mysql> SELECT DATE('2016-01-01 12:12:12');
        -> 2016-01-01

说明:返回日期时间中的日期部分

mysql> SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30');
        -> 1
mysql> SELECT DATEDIFF('2010-11-30 23:59:59','2010-12-31');
        -> -31

说明:计算两个日期之差

mysql> SELECT '2008-12-31 23:59:59' + INTERVAL 1 SECOND;
        -> '2009-01-01 00:00:00'
mysql> SELECT INTERVAL 1 DAY + '2008-12-31';
        -> '2009-01-01'
mysql> SELECT '2005-01-01' - INTERVAL 1 SECOND;
        -> '2004-12-31 23:59:59'
mysql> SELECT DATE_ADD('2000-12-31 23:59:59',
    ->                 INTERVAL 1 SECOND);
        -> '2001-01-01 00:00:00'
mysql> SELECT DATE_ADD('2010-12-31 23:59:59',
    ->                 INTERVAL 1 DAY);
        -> '2011-01-01 23:59:59'
mysql> SELECT DATE_ADD('2100-12-31 23:59:59',
    ->                 INTERVAL '1:1' MINUTE_SECOND);
        -> '2101-01-01 00:01:00'
mysql> SELECT DATE_SUB('2005-01-01 00:00:00',
    ->                 INTERVAL '1 1:1:1' DAY_SECOND);
        -> '2004-12-30 22:58:59'
mysql> SELECT DATE_ADD('1900-01-01 00:00:00',
    ->                 INTERVAL '-1 10' DAY_HOUR);
        -> '1899-12-30 14:00:00'
mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
        -> '1997-12-02'
mysql> SELECT DATE_ADD('1992-12-31 23:59:59.000002',
    ->            INTERVAL '1.999999' SECOND_MICROSECOND);
        -> '1993-01-01 00:00:01.000001'

说明:高度灵活的日期运算函数

mysql> SELECT DATE_FORMAT('2009-10-04 22:23:00', '%W %M %Y');
        -> 'Sunday October 2009'
mysql> SELECT DATE_FORMAT('2007-10-04 22:23:00', '%H:%i:%s');
        -> '22:23:00'
mysql> SELECT DATE_FORMAT('1900-10-04 22:23:00',
    ->                 '%D %y %a %d %m %b %j');
        -> '4th 00 Thu 04 10 Oct 277'
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
    ->                 '%H %k %I %r %T %S %w');
        -> '22 22 10 10:23:00 PM 22:23:00 00 6'
mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');
        -> '1998 52'
mysql> SELECT DATE_FORMAT('2006-06-00', '%d');
        -> '00'

说明:返回一个格式化的日期或时间串

mysql> SELECT DAY('2016-12-12 12:12:12')
        -> 12

说明:返回一个日期中的天数部分

mysql> SELECT DAYOFWEEK('2007-02-03');
        -> 7

说明:返回对应日期的星期几

mysql> HOUR ('2016-12-12 12:12:12')
        -> 12

说明:返回日期时间中的小时部分

mysql> SELECT MINUTE ('2016-12-12 12:12:12')
        -> 12

说明:返回日期时间中的分钟部分

mysql> SELECT MONTH ('2016-12-12 12:12:12')
        -> 12

说明:返回日期时间中的月数部分

mysql> SELECT NOW();
        -> '2007-12-15 23:50:26'
mysql> SELECT NOW() + 0;
        -> 20071215235026.000000

说明:返回当前日期和时间

mysql> SELECT SECOND ('2016-12-12 12:12:12')
        -> 12

说明:返回日期时间中的秒数部分

mysql> SELECT TIME ('2016-12-12 12:12:12')
        -> 12:12:12

说明:返回日期时间中的时间部分

mysql> SELECT YEAR ('2016-12-12 12:12:12')
        -> 2016

说明:返回一个日期时间的年份部分

你可能感兴趣的:(自学书籍.MySQL必知必会 - 使用数据处理函数)