MySQL语法入门(一)

基本运算符使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
SELECT 1 + 2;-- 3
SELECT 1 / 0;-- null
SELECT 1 + NULL;-- null
SELECT '2' * '4';-- 8
SELECT '2f' + 3;-- 5
SELECT 2.2 + 2;-- 4.2

SELECT 1 = 2;-- 0
SELECT 1 = 1;-- 1
SELECT 1 = NULL;-- null
SELECT 1 <=> NULL;-- 0

SELECT 'hello' = 'HELLO';-- 1
SELECT 'hello' = ' HELLO ';-- 0

SELECT BINARY 'hello' = 'HELLO';-- 0

SELECT 'a' > 'b';-- 0
SELECT 'b' > 'a';-- 1

SELECT 'b' BETWEEN 'a' AND 'c';-- 1

SELECT 'a' BETWEEN 'a' AND 'c';-- 1

SELECT 'c' BETWEEN 'a' AND 'c';-- 1 >= <=

SELECT NOT 'b' BETWEEN 'a' AND 'c';-- 0

SELECT NOT 'a' BETWEEN 'a' AND 'c';-- 0

SELECT NOT 'c' BETWEEN 'a' AND 'c';-- 0 >= <=

SELECT 3 IN (3 , 4, 5);-- 1
SELECT 1 IN (3 , 4, 5);-- 0

SELECT NULL IN (3 , 4, 5);-- null

SELECT NULL IN (3 , 4, 5, NULL);-- null

SELECT 'hello' LIKE 'he%';-- 1
SELECT 'hel%' LIKE 'hello';-- 0

SELECT 1 BETWEEN 1 AND 2;

SELECT NOT 1;-- 0
SELECT ! 1;-- 0
SELECT (1 > 2) AND (19 > 10);-- 0
SELECT (11 > 2) && (19 > 10);-- 1
SELECT (1 > 2) OR (19 > 10);-- 1
SELECT (21 > 2) || (19 > 10);-- 1
SELECT (1 > 2) XOR (19 > 10);-- 1
SELECT (21 > 2) XOR (19 > 10);-- 0

SELECT 1 | 2;-- 3;001 | 010 -> 011

SELECT 3 >> 1;-- 1; 11 >> 1 -> 1

SELECT 3 << 1;-- 6; 11 << 1 -> 110

SELECT 3 ^ 2;-- 1; 11 ^ 10 -> 01

基本数学函数使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
SELECT ABS(- 5);-- 5
SELECT ABS(- 5.8);-- 5.8

SELECT CEIL(1.2);-- 2
SELECT CEILING(1.2);-- 2
SELECT CEIL(1.6);-- 2
SELECT CEILING(1.6);-- 2

SELECT CEIL(- 1.2);-- -1
SELECT CEILING(- 1.2);-- -1
SELECT CEIL(- 1.6);-- -1
SELECT CEILING(- 1.6);-- -1

SELECT FLOOR(1.2);-- 1
SELECT FLOOR(- 1.2);-- -2

SELECT GREATEST(1, 4, 6);-- 6
SELECT LEAST(1, 3, 2);-- 1

SELECT MOD(10, 6);-- 4

SELECT PI();-- 3.141593

SELECT RAND();-- 0.9857855839522421

SELECT ROUND(22.3563, 2);-- 22.36

SELECT TRUNCATE(12.4562, 2);-- 12.45

SELECT SIGN(1);-- 1 正数
SELECT SIGN(0);-- 0 0
SELECT SIGN(- 1.3);-- -1 负数

SELECT POWER(2, 4);-- 16
SELECT POW(2, 4);-- 16
SELECT EXP(1);-- 2.718281828459045
SELECT EXP(2);-- '7.38905609893065'
SELECT SQRT(4);-- 2
SELECT SQRT(5);-- 2.23606797749979
SELECT BIN(10);-- 1010
SELECT OCT(10);-- 12
SELECT HEX(10);-- A
SELECT OCT(10);-- 12
SELECT OCT(10);-- 12

基本字符串函数使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
SELECT LENGTH('hello');-- 5
SELECT LCASE('helLO');-- hello
SELECT LOWER('helLO');-- hello
SELECT UCASE('hello');-- HELLO
SELECT UPPER('hello');-- HELLO

SELECT STRCMP('hello', 'yes');-- -1
SELECT STRCMP('zworld', 'yes');-- 1

SELECT POSITION('yes' IN 'yesman');-- 1

SELECT REPLACE('hello', 'l', 'a');-- heaao

SELECT INSERT('hello world', 2, 3, 'bb');-- hbbo world
SELECT INSERT('hello world', 2, 1, 'bb');-- hbbllo world

SELECT CONCAT('hello', 'world');-- helloworld
SELECT CONCAT_WS('@', 'hello', 'world');-- hello@world

SELECT LEFT('hello', 2);-- he
SELECT RIGHT('hello', 2);-- lo

SELECT LPAD('hello', 7, 'a');-- aahello 左边填充指定字符 长度 7 需大于原字符串长度
SELECT RPAD('hello', 7, 'b');-- hellobb 右边填充指定字符 长度 7 需大于原字符串长度

SELECT LTRIM(' hello');-- hello
SELECT RTRIM('hello ');-- hello
SELECT TRIM(' hello ');-- hello

SELECT SUBSTRING('hello', 2, 3);-- ell

SELECT ASCII('0');-- 48
SELECT ASCII('A');-- 65
SELECT ASCII('a');-- 97

基本日期时间函数使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT NOW();-- 2022-01-06 22:31:15
SELECT CURTIME();-- 25:31:49
SELECT CURDATE();-- 2022-01-06
SELECT YEAR(20220106);-- 2022
SELECT YEAR('20220106');-- 2022
SELECT YEAR('2022-01-06');-- 2022
SELECT YEAR('2022/01/06');-- 2022
SELECT MONTH('2022/01/06');-- 1
SELECT MONTHNAME('2022/01/06');-- January
SELECT DAYOFYEAR('2022/01/06');-- 6
SELECT DAYOFWEEK('2022/01/06');-- 5
SELECT DAYNAME('2022/01/06');-- Thursday
SELECT WEEK('2022/01/06');-- 1
SELECT HOUR('25:31:49');-- 25
SELECT MINUTE('25:31:49');-- 31
SELECT SECOND('25:31:49');-- 49
SELECT DATE_ADD(NOW(), INTERVAL 2 MONTH);-- 2022-03-06 22:40:55
SELECT DATE_ADD(NOW(), INTERVAL 3 DAY);-- 2022-01-09 22:41:30
SELECT DATE_SUB(NOW(), INTERVAL 3 YEAR);-- 2019-01-06 22:42:11