数学
求2,-3.3和-33的绝对值:
SELECT ABS(2), ABS(-3.3), ABS(-33);
SELECT MOD(31,8),MOD(234, 10),MOD(45.5,6);
7 4 3.5
SELECT CEIL(-3.35),CEILING(3.35);
-3 4
SELECT FLOOR(-3.35), FLOOR(3.35);
-4 3
SELECT
round( RAND( ) * 10 ),
round( RAND( ) * 100 ),
RAND( );
10 98 0.030897653690443984
SELECT ROUND(-1.14),ROUND(-1.67), ROUND(1.14),ROUND(1.66);
四舍五入-两位小数:
SELECT ROUND(1.3864, 2), ROUND(1.38, 0), ROUND(232.38, -1);
1.39 1 230
ELECT TRUNCATE(1.31,1), TRUNCATE(1.99,1), TRUNCATE(1.99,0), TRUNCATE(19.99,-1);
1.3 1.9 1 10
SELECT SIGN(-21),SIGN(0), SIGN(21);
-1 0 1
SELECT LENGTH('date'), LENGTH('egg');
4 3
SELECT CONCAT('My SQL', '5.6'),CONCAT('My',NULL, 'SQL');
My SQL5.6 null
SELECT CONCAT_WS('-', '1st','2nd', '3rd'), CONCAT_WS('*', '1st', NULL, '3rd');
1st-2nd-3rd 1st*3rd
SELECT ucase('BEAUTIful'), lcase('Well');
BEAUTIFUL well
```sql
SELECT LEFT('football', 5),RIGHT('football', 4);
footb ball
SELECT LPAD('hello',4,'??'), LPAD('hello',10,'??');
hell ?????hello
SELECT RPAD('hello',4,'?'), RPAD('hello',10,'?');
hell hello?????
SELECT '( book )',LTRIM(' book ');
SELECT TRIM('xy' FROM 'xyxboxyokxxyxy') ;
xboxyokx
SELECT REPEAT('MySQL', 3);
MySQLMySQLMySQL
SELECT
STRCMP( 'txt', 'txt2' ),
STRCMP( 'txt2', 'txt' ),
STRCMP( 'txt', 'txt' ); -1 1 0
SELECT REPLACE('xxx.mysql.com', 'x', 'w');
SELECT SUBSTRING('breakfast',5) AS col1,
SUBSTRING('breakfast',5,3) AS col2,
SUBSTRING('lunch', -3) AS col3,
SUBSTRING('lunch', -5, 3) AS col4;
SELECT
LOCATE( 'ball', 'football' ),
POSITION( 'ball' IN 'football' ),
INSTR ( 'football', 'ball' );
5 5 5
SELECT REVERSE('abc');
cba
SELECT
ELT( 3, '1st', '2nd', '3rd' ),
ELT( 3, 'net', 'os' );
3rd null
SELECT
FIELD( 'Hi', 'hihi', 'Hey', 'Hi', 'bas' ) AS col1,
FIELD( 'Hi', 'Hey', 'Lo', 'Hilo', 'foo' ) AS col2;
3 0
SELECT
FIND_IN_SET( 'Hi', 'hihi,Hey,Hi,bas' );
3
SELECT INET_ATON('209.207.224.40');
3520061480
SELECT INET_NTOA(3520061480);
209.207.224.40
SELECT CAST(100 AS CHAR(2)), CONVERT('2010-10-01 12:12:12',TIME);
10 12:12:12
日期&时间
SELECT
CURDATE( ),
CURRENT_DATE ( ),
CURDATE( ) + 0;
2020-01-22 2020-01-22 20200122
SELECT
CURTIME( ),
CURRENT_TIME ( ),
CURTIME( ) + 0;
23:08:34 23:08:34 230834
SELECT CURRENT_TIMESTAMP(),
LOCALTIME ( ),
NOW( ),
SYSDATE( );
2020-01-22 23:09:23
2020-01-22 23:09:23
2020-01-22 23:09:23
2020-01-22 23:09:23
SELECT
UNIX_TIMESTAMP( ),
UNIX_TIMESTAMP( NOW( ) ),
NOW( );
1579705939 1579705939 2020-01-22 23:12:19
SELECT FROM_UNIXTIME('1364098609');
2013-03-24 12:16:49.000000
SELECT UTC_DATE(), UTC_DATE() + 0;
SELECT UTC_TIME(), UTC_TIME() + 0;
SELECT MONTH('2013-02-13');
SELECT MONTHNAME('2013-02-13');
SELECT DAYNAME('2013-02-13');
SELECT DAYOFWEEK('2011-02-13');
SELECT WEEKDAY('2011-02-13 22:23:00'), WEEKDAY('2011-07-01');
SELECT WEEK('2011-02-20'),WEEK('2011-02-20',0), WEEK('2011-02-20',1);
SELECT WEEK('2011-02-20',3), WEEKOFYEAR('2011-02-20');
SELECT DAYOFYEAR('2011-02-20');
SELECT DAYOFMONTH('2011-02-20');
SELECT YEAR('11-02-03'),YEAR('96-02-03');
SELECT QUARTER('11-04-01');
SELECT MINUTE('11-02-03 10:10:03');
SELECT SECOND('10:05:03');
SELECT EXTRACT(YEAR FROM '2011-07-02') AS col1,
EXTRACT(YEAR_MONTH FROM '2011-07-12 01:02:03') AS col2,
EXTRACT(DAY_MINUTE FROM '2011-07-12 01:02:03') AS col3;
SELECT TIME_TO_SEC('23:23:00');
SELECT SEC_TO_TIME(2345),SEC_TO_TIME(2345)+0,
TIME_TO_SEC('23:23:00'), SEC_TO_TIME(84180);
SELECT
DATE_ADD( '2010-12-31 23:59:59', INTERVAL 1 SECOND ) AS col1,
ADDDATE( '2010-12-31 23:59:59', INTERVAL 1 SECOND ) AS col2,
DATE_ADD( '2010-12-31 23:59:59', INTERVAL '1:1' MINUTE_SECOND ) AS col3;
2011-01-01 00:00:00 2011-01-01 00:00:00 2011-01-01 00:01:00
SELECT DATE_SUB('2011-01-02', INTERVAL 31 DAY) AS col1,
SUBDATE('2011-01-02', INTERVAL 31 DAY) AS col2,
DATE_SUB('2011-01-01 00:01:00',INTERVAL '0 0:1:1' DAY_SECOND) AS col3;
SELECT
ADDTIME( '2000-12-31 23:59:59', '1:1:1' ),
ADDTIME( '02:02:02', '02:00:00' );
2001-01-01 01:01:00 04:02:02
SELECT
SUBTIME( '2000-12-31 23:59:59', '1:1:1' ),
SUBTIME( '02:02:02', '02:00:00' );
2000-12-31 22:58:58 00:02:02
SELECT
DATEDIFF( '2010-12-31 23:59:59', '2010-12-30' ) AS col1,
DATEDIFF( '2010-11-30 23:59:59', '2010-12-31' ) AS col2;
1 -31
SELECT YEAR
( CURRENT_DATE ( ) ) - YEAR ( '2010-12-30' );
10
SELECT date( CURRENT_DATE ( ) ) - date((FROM_UNIXTIME(1579696487)));
SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y') AS col1,
DATE_FORMAT('1997-10-04 22:23:00','%D %y %a %d %m %b %j') AS col2;
SELECT TIME_FORMAT('16:00:00', '%H %k %h %I %l');
16 16 04 04 4
SELECT
GET_FORMAT( DATE, 'EUR' ),
GET_FORMAT( DATE, 'USA' );
%d.%m.%Y %m.%d.%Y
SELECT
DATE_FORMAT( '2000-10-05 22:23:00', GET_FORMAT( DATE, 'USA' ) );
10.05.2000
条件判断
SELECT
IF ( 12, 2, 3 ),
IF ( 1 < 2, 'yes ', 'no' ),
IF ( STRCMP( 'test', 'test1' ), 'no', 'yes' );
2 yes no
SELECT
IFNULL( 1, 2 ),
IFNULL( NULL, 10 ),
IFNULL( 1 / 0, 'wrong' );
1 10 wrong
SELECT
CASE 2
WHEN 1 THEN 'one'
WHEN 2 THEN 'two'
ELSE 'more'
END;
two
系统
SELECT VERSION();
8.0.11
5.5.62
SELECT CONNECTION_ID();
9
SHOW PROCESSLIST;
4 event_scheduler localhost Daemon 815 Waiting on empty queue
9 root localhost:49330 yikao Query 0 starting SHOW PROCESSLIST
10 root localhost:49331 yikao Sleep 14
11 root localhost:49528 Sleep 14
SELECT DATABASE(),SCHEMA();
SELECT USER(), CURRENT_USER(), SYSTEM_USER();
root@localhost root@localhost root@localhost
SELECT
CHARSET( 'abc' ),
CHARSET( CONVERT ( 'abc' USING latin1 ) ),
CHARSET( VERSION( ) );
utf8mb4 latin1 utf8
SELECT COLLATION('abc'),COLLATION(CONVERT('abc' USING utf8));
utf8mb4_0900_ai_ci utf8_general_ci
加密函数
SELECT PASSWORD('newpwd');
SELECT MD5 ('mypwd');
SELECT ENCODE('secret','cry'), LENGTH(ENCODE('secret','cry'));
SELECT DECODE(ENCODE('secret','cry'),'cry');