oracle syntax to mysql syntax

Convert commonly used Oracle syntax to MySQL syntax

1. Oracle的连接符“||”在MySQL中使用“CONCAT”函数,例如:

Oracle:SELECT first_name || ' ' || last_name FROM employees;
MySQL:SELECT CONCAT(first_name, ' ', last_name) FROM employees;

2. Oracle的日期函数“SYSDATE”在MySQL中使用“NOW”函数,例如:

Oracle:SELECT SYSDATE FROM dual;
MySQL:SELECT NOW();

3. Oracle的“NVL”函数在MySQL中使用“IFNULL”函数,例如:

Oracle:SELECT NVL(salary, 0) FROM employees;
MySQL:SELECT IFNULL(salary, 0) FROM employees;

4. Oracle的“DECODE”函数在MySQL中使用“CASE”语句,例如:

Oracle:SELECT DECODE(job_id, 'IT_PROG', 'IT', 'SA_MAN', 'Sales') FROM employees;
MySQL:SELECT CASE job_id WHEN 'IT_PROG' THEN 'IT' WHEN 'SA_MAN' THEN 'Sales' END FROM employees;

5. Oracle的“ROWNUM”关键字在MySQL中使用“LIMIT”关键字,例如:

Oracle:SELECT * FROM employees WHERE ROWNUM <= 10;
MySQL:SELECT * FROM employees LIMIT 10;

6. Oracle的“TRUNC”函数在MySQL中使用“DATE_FORMAT”函数,例如:

Oracle:SELECT TRUNC(hire_date, 'MM') FROM employees;
MySQL:SELECT DATE_FORMAT(hire_date, '%Y-%m-01') FROM employees;

7. Oracle的“TO_CHAR”函数在MySQL中使用“DATE_FORMAT”函数,例如:

Oracle:SELECT TO_CHAR(hire_date, 'YYYY-MM-DD') FROM employees;
MySQL:SELECT DATE_FORMAT(hire_date, '%Y-%m-%d') FROM employees;

8. Oracle的“SUBSTR”函数在MySQL中使用“SUBSTRING”函数,例如:

Oracle:SELECT SUBSTR(first_name, 1, 3) FROM employees;
MySQL:SELECT SUBSTRING(first_name, 1, 3) FROM employees;

9. Oracle的“INSTR”函数在MySQL中使用“LOCATE”函数,例如:

Oracle:SELECT INSTR(first_name, 'a') FROM employees;
MySQL:SELECT LOCATE('a', first_name) FROM employees;

10. Oracle的“LENGTH”函数在MySQL中使用“CHAR_LENGTH”函数,例如:

Oracle:SELECT LENGTH(first_name) FROM employees;
MySQL:SELECT CHAR_LENGTH(first_name) FROM employees;

11. Oracle的“ROUND”函数在MySQL中使用“ROUND”函数,例如:

Oracle:SELECT ROUND(salary, 2) FROM employees;
MySQL:SELECT ROUND(salary, 2) FROM employees;

12. Oracle的“CEIL”函数在MySQL中使用“CEILING”函数,例如:

Oracle:SELECT CEIL(salary) FROM employees;
MySQL:SELECT CEILING(salary) FROM employees;

13. Oracle的“FLOOR”函数在MySQL中使用“FLOOR”函数,例如:

Oracle:SELECT FLOOR(salary) FROM employees;
MySQL:SELECT FLOOR(salary) FROM employees;

14. Oracle的“MONTHS_BETWEEN”函数在MySQL中使用“PERIOD_DIFF”函数,例如:

Oracle:SELECT MONTHS_BETWEEN(hire_date, SYSDATE) FROM employees;
MySQL:SELECT PERIOD_DIFF(DATE_FORMAT(SYSDATE(), '%Y%m'), DATE_FORMAT(hire_date, '%Y%m')) FROM employees;

15. Oracle的“ADD_MONTHS”函数在MySQL中使用“DATE_ADD”函数,例如:

Oracle:SELECT ADD_MONTHS(hire_date, 3) FROM employees;
MySQL:SELECT DATE_ADD(hire_date, INTERVAL 3 MONTH) FROM employees;

16. Oracle的“LAST_DAY”函数在MySQL中使用“LAST_DAY”函数,例如:

Oracle:SELECT LAST_DAY(hire_date) FROM employees;
MySQL:SELECT LAST_DAY(hire_date) FROM employees;

17. Oracle的“EXTRACT”函数在MySQL中使用“DATE_FORMAT”函数,例如:

Oracle:SELECT EXTRACT(YEAR FROM hire_date) FROM employees;
MySQL:SELECT DATE_FORMAT(hire_date, '%Y') FROM employees;

18. Oracle的“TO_DATE”函数在MySQL中使用“STR_TO_DATE”函数,例如:

Oracle:SELECT TO_DATE('2022-01-01', 'YYYY-MM-DD') FROM dual;
MySQL:SELECT STR_TO_DATE('2022-01-01', '%Y-%m-%d');

19. Oracle的“TO_NUMBER”函数在MySQL中使用“CAST”函数,例如:

Oracle:SELECT TO_NUMBER('123') FROM dual;
MySQL:SELECT CAST('123' AS UNSIGNED);

20. Oracle的“TO_CHAR”函数在MySQL中使用“DATE_FORMAT”函数,例如:

Oracle:SELECT TO_CHAR(hire_date, 'YYYY-MM-DD') FROM employees;
MySQL:SELECT DATE_FORMAT(hire_date, '%Y-%m-%d') FROM employees;

21. Oracle的“GREATEST”函数在MySQL中使用“GREATEST”函数,例如:

Oracle:SELECT GREATEST(1, 2, 3) FROM dual;
MySQL:SELECT GREATEST(1, 2, 3);

22. Oracle的“LEAST”函数在MySQL中使用“LEAST”函数,例如:

Oracle:SELECT LEAST(1, 2, 3) FROM dual;
MySQL:SELECT LEAST(1, 2, 3);

23. Oracle的“INITCAP”函数在MySQL中使用“CONCAT”和“UPPER”函数,例如:

Oracle:SELECT INITCAP('hello world') FROM dual;
MySQL:SELECT CONCAT(UPPER(SUBSTRING('hello world', 1, 1)), LOWER(SUBSTRING('hello world', 2))) FROM dual;

24. Oracle的“TRANSLATE”函数在MySQL中使用“REPLACE”函数,例如:

Oracle:SELECT TRANSLATE('hello', 'el', '12') FROM dual;
MySQL:SELECT REPLACE(REPLACE('hello', 'e', '1'), 'l', '2') FROM dual;

25. Oracle的“REGEXP_LIKE”函数在MySQL中使用“REGEXP”关键字,例如:

Oracle:SELECT REGEXP_LIKE('hello', '^[a-z]+$') FROM dual;
MySQL:SELECT 'hello' REGEXP '^[a-z]+$';

26. Oracle的“REGEXP_REPLACE”函数在MySQL中使用“REGEXP_REPLACE”函数,例如:

Oracle:SELECT REGEXP_REPLACE('hello world', 'o', '0') FROM dual;
MySQL:SELECT REGEXP_REPLACE('hello world', 'o', '0');

27. Oracle的“REGEXP_INSTR”函数在MySQL中使用“INSTR”函数和“REGEXP”关键字,例如:

Oracle:SELECT REGEXP_INSTR('hello world', 'o') FROM dual;
MySQL:SELECT INSTR('hello world', 'o') FROM dual WHERE 'hello world' REGEXP 'o';

28. Oracle的“REGEXP_SUBSTR”函数在MySQL中使用“SUBSTRING_INDEX”函数和“REGEXP”关键字,例如:

Oracle:SELECT REGEXP_SUBSTR('hello world', 'o') FROM dual;
MySQL:SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('hello world', 'o', 2), 'o', -1) FROM dual WHERE 'hello world' REGEXP 'o';

29. Oracle的“CONNECT BY”语句在MySQL中使用“WITH RECURSIVE”语句,例如:

Oracle:SELECT * FROM employees CONNECT BY PRIOR employee_id = manager_id;
MySQL:WITH RECURSIVE cte AS (SELECT * FROM employees WHERE employee_id = 1 UNION ALL SELECT e.* FROM employees e JOIN cte ON e.manager_id = cte.employee_id) SELECT * FROM cte;

30. Oracle的“UNION ALL”关键字在MySQL中使用“UNION ALL”关键字,例如:

Oracle:SELECT * FROM employees UNION ALL SELECT * FROM departments;
MySQL:SELECT * FROM employees UNION ALL SELECT * FROM departments;

31. Oracle的“INTERSECT”关键字在MySQL中使用“INNER JOIN”语句,例如:

Oracle:SELECT * FROM employees INTERSECT SELECT * FROM departments;
MySQL:SELECT * FROM employees INNER JOIN departments USING (department_id);

32. Oracle的“MINUS”关键字在MySQL中使用“NOT IN”语句,例如:

Oracle:SELECT * FROM employees MINUS SELECT * FROM departments;
MySQL:SELECT * FROM employees WHERE (employee_id, first_name, last_name) NOT IN (SELECT employee_id, first_name, last_name FROM departments);

33. Oracle的“PCTFREE”关键字在MySQL中没有对应的语法,可以忽略。

34. Oracle的“PCTUSED”关键字在MySQL中没有对应的语法,可以忽略。

35. Oracle的“TABLESPACE”关键字在MySQL中没有对应的语法,可以忽略。

36. Oracle的“ROWID”关键字在MySQL中没有对应的语法,可以忽略。

37. Oracle的“BETWEEN”关键字在MySQL中使用“BETWEEN”关键字,例如:

Oracle:SELECT * FROM employees WHERE salary BETWEEN 1000 AND 2000;
MySQL:SELECT * FROM employees WHERE salary BETWEEN 1000 AND 2000;

38. Oracle的“CASE”语句在MySQL中使用“CASE”语句,例如:

Oracle:SELECT CASE WHEN salary > 1000 THEN 'High' ELSE 'Low' END FROM employees;
MySQL:SELECT CASE WHEN salary > 1000 THEN 'High' ELSE 'Low' END FROM employees;

39. Oracle的“GROUP BY”语句在MySQL中使用“GROUP BY”语句,例如:

Oracle:SELECT department_id, AVG(salary) FROM employees GROUP BY department_id;
MySQL:SELECT department_id, AVG(salary) FROM employees GROUP BY department_id;

40. Oracle的“HAVING”语句在MySQL中使用“HAVING”语句,例如:

Oracle:SELECT department_id, AVG(salary) FROM employees GROUP BY department_id HAVING AVG(salary) > 1000;
MySQL:SELECT department_id, AVG(salary) FROM employees GROUP BY department_id HAVING AVG(salary) > 1000;

41. Oracle的“ORDER BY”语句在MySQL中使用“ORDER BY”语句,例如:

Oracle:SELECT * FROM employees ORDER BY salary DESC;
MySQL:SELECT * FROM employees ORDER BY salary DESC;

42. Oracle的“ASC”关键字在MySQL中使用“ASC”关键字,例如:

Oracle:SELECT * FROM employees ORDER BY salary ASC;
MySQL:SELECT * FROM employees ORDER BY salary ASC;

43. Oracle的“DESC”关键字在MySQL中使用“DESC

others

Insert image description here

Guess you like

Origin blog.csdn.net/qq_41848006/article/details/131132033