由于公司业务原因,接触到的数据也比较多,最常用的就是Mysql和Oracle
SQL语法大同小异,最主要是经常使用的函数有些差异
1. GROUP_CONCAT函数
MySQL中GROUP_CONCAT函数用于将分组后的数据连接在一起,常用于将同一个分组下的多条记录按照指定顺序连接成一个字符串。
MySQL示例:
SELECT group_concat(name) FROM students GROUP BY gender;
Oracle替代写法:
SELECT listagg(name, ',') WITHIN GROUP (ORDER BY name) FROM students GROUP BY gender;
2. IFNULL函数
MySQL中IFNULL函数用于判断表达式是否为NULL,如果为NULL,则返回第二个参数,否则返回原表达式的值。
MySQL示例:
SELECT IFNULL(name,'无名氏') FROM students;
Oracle替代写法:
SELECT NVL(name, '无名氏') FROM students;
3. DATE_FORMAT函数
MySQL中DATE_FORMAT函数用于将日期格式化为指定的格式。
MySQL示例:
SELECT DATE_FORMAT(birthdate,'%Y-%m-%d') FROM students;
Oracle替代写法:
SELECT TO_CHAR(birthdate,'YYYY-MM-DD') FROM students;
4. LIMIT子句
MySQL中LIMIT子句用于限制查询结果返回的行数。
MySQL示例:
SELECT * FROM students LIMIT 10;
Oracle替代写法:
SELECT * FROM (SELECT rownum rn, t.* FROM students t) WHERE rn <= 10;
5. CONV函数
MySQL中CONV函数用于将一个数字从一种进制转换为另一种进制。
MySQL示例:
SELECT CONV(10,10,2);
Oracle替代写法:
SELECT to_char(to_number('10', 'XXXXXXXX'), 'XXXXXXXXXXXXXXXX') FROM dual;
6. IF函数
MySQL中IF函数用于根据条件返回不同的值。
MySQL示例:
SELECT IF(score >= 60, '及格', '不及格') FROM students;
Oracle替代写法:
SELECT CASE WHEN score >= 60 THEN '及格' ELSE '不及格' END FROM students;
7. CURDATE函数
MySQL中CURDATE函数用于返回当前日期。
MySQL示例:
SELECT CURDATE();
Oracle替代写法:
SELECT SYSDATE FROM dual;
8. STR_TO_DATE函数
MySQL中STR_TO_DATE函数用于将字符串转换为日期。
MySQL示例:
SELECT STR_TO_DATE('2020-01-01','%Y-%m-%d');
Oracle替代写法:
SELECT TO_DATE('2020-01-01', 'YYYY-MM-DD') FROM dual;
9. RAND函数
MySQL中RAND函数用于生成随机数。
MySQL示例:
SELECT RAND();
Oracle替代写法:
SELECT DBMS_RANDOM.VALUE FROM dual;
10. EXP函数
MySQL中EXP函数用于计算指数函数。
MySQL示例:
SELECT EXP(2);
Oracle替代写法:
SELECT POWER(e, 2) FROM dual;
11. CONCAT_WS函数
MySQL中CONCAT_WS函数用于将多个字符串连接在一起,并指定连接符。
MySQL示例:
SELECT CONCAT_WS('-','2020','01','01');
Oracle替代写法:
SELECT '2020-' || '01-' || '01' FROM dual;
12. DATE_ADD函数
MySQL中DATE_ADD函数用于对日期进行加减操作。
MySQL示例:
SELECT DATE_ADD(birthdate, INTERVAL 1 DAY) FROM students;
Oracle替代写法:
SELECT birthdate + 1 FROM students;
13. LAST_INSERT_ID函数
MySQL中LAST_INSERT_ID函数用于返回最后一次插入操作生成的自增长ID。
MySQL示例:
INSERT INTO students(name) VALUES('张三');
SELECT LAST_INSERT_ID();
Oracle替代写法:
在Oracle中可以使用Sequence实现自增长ID的功能。
14. REPLACE函数
MySQL中REPLACE函数用于将字符串中的指定字符替换为另一个字符。
MySQL示例:
SELECT REPLACE('2020-01-01','-','/');
Oracle替代写法:
SELECT REPLACE('2020-01-01', '-', '/') FROM dual;
15. INTERVAL关键字
MySQL中INTERVAL关键字用于对日期进行加减操作。
MySQL示例:
SELECT DATE_ADD(birthdate, INTERVAL 1 DAY) FROM students;
Oracle替代写法:
SELECT birthdate + 1 FROM students;
基本是一些业务常用的函数,使用的时候还是得多多注意