MySQL

MySQL์ด๋ž€?


DB์˜ ์ข…๋ฅ˜๋กœ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๊ทธ์ค‘ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” DB์€ Oracle , MySQL , MSSQL ๋“ฑ์ด ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ๋Š” MySQL์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

DB๋Š” SQL ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ๊ธฐ๋Šฅ์„ ๊ณต์œ ํ•˜๋ฉฐ ๋‹ค๋ฅธ DB ์‚ฌ์šฉ์‹œ์—๋„ ๋ณ„๋‹ค๋ฅธ ๊ณต๋ถ€์—†์ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ทธ์ค‘ MySQL์€ ์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ์˜คํ”ˆ ์†Œ์Šค์˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋‹ค.
๋‹ค์ค‘ ์Šค๋ ˆ๋“œ, ๋‹ค์ค‘ ์‚ฌ์šฉ์ž ํ˜•์‹์˜ ๊ตฌ์กฐ์งˆ์˜์–ด ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ์„œ ์˜ค๋ผํด์ด ๊ด€๋ฆฌ ๋ฐ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค.

์„ค์น˜๋ฐฉ๋ฒ•์€ ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์ฐพ์„์ˆ˜ ์žˆ๋‹ค. https://dev.mysql.com/downloads/mysql/

Oracle๊ณผ MySQL์˜ ์ฐจ์ด


Oracle๊ณผ MySQL์€ ๋‘˜๋‹ค ์˜ค๋ผํด ์‚ฌ์—์„œ ์„œ๋น„์Šค์ค‘์ด๋ฉฐ ๋ฌด๋ฃŒ๋กœ ์ด์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

Oracle์€ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์‹œ ์‚ฌ์šฉํ•˜๋ฉฐ MySQL์€ ์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค.

๋‘ DB์˜ ์ฐจ์ด์ ์€ ๋ฌธ๋ฒ•์ด ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅด๋‹ค๋Š” ์ ์ธ๋ฐ ์ž˜ ์ •๋ฆฌ๋œ ๊ธ€์ด ์žˆ์–ด ์ฐธ์กฐํ•ด๋ณด์•˜๋‹ค.

  1. ๊ณต๋ฐฑ์น˜ํ™˜ ํ•จ์ˆ˜ ( NVL -> IFNULL )
    Oracle : SELECT NVL(โ€˜์ปฌ๋Ÿผ๋ช…โ€™, โ€˜โ€™) FROM DUAL;
    MySql : SELECT IFNULL(โ€˜์ปฌ๋Ÿผ๋ช…โ€™, โ€˜โ€™) FROM DUAL;

  2. ํ˜„์žฌ ๋‚ ์งœ์‹œ๊ฐ„
    Oracle : SYSDATE
    Mysql : NOW()

  3. ๋‚ ์งœํฌ๋ฉง
    Oracle : TO_CHAR(sysdate,โ€™MMDDYYYYHH24MISSโ€™)
    Mysql : DATE_FORMAT(now(),โ€™%Y%m%d%H%i%sโ€™)
    -> ์—ฌ๊ธฐ์„œ ๋Œ€๋ฌธ์žY๋Š” 4์ž๋ฆฌ ๋…„๋„, ์†Œ๋ฌธ์ž y๋Š” 2์ž๋ฆฌ ๋…„๋„

  4. ๋‚ ์งœ ํฌ๋ฉง : ์š”์ผ
    Oracle : ์š”์ผ์ด 1~7๋กœ ์ธ์‹ํ•จ -> TO_CHAR(SYSDATE - 1, โ€˜Dโ€™)
    Mysql : ์š”์ผ์ด 0~6์œผ๋กœ ์ธ์‹ -> DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY), โ€˜%wโ€™)

  5. Like์ ˆ โ€˜%โ€™ ์‚ฌ์šฉ๋ฒ•
    Oracle : Like โ€˜%โ€™||โ€™๋ฌธ์žโ€™||โ€™%โ€™ ์ด๋Ÿฐ์‹์œผ๋กœ ์ปฌ๋Ÿผ๋ช… ์•ž๋’ค๋กœ โ€˜%โ€™๋ฅผ ๋ถ™์—ฌ์ฃผ๋ฉด ๋œ๋‹ค
    Mysql : LIKE CONCAT(โ€˜๋ฌธ์žโ€™,โ€™%โ€™) ์ด๋Ÿฐ์‹์œผ๋กœ CONCAT ํ•จ์ˆ˜ ์‚ฌ์šฉ

  6. ํ˜•๋ณ€ํ™˜
    Oracle : To_char, To_number ๋“ฑ
    Mysql : CAST
    (SELECT TO_CHAR(1234) FROM DUAL -> SELECT CAST(1234 AS CHAR) FROM DUAL)

  7. ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ํ•จ
    Oracle : ๊ตฌ๋ถ„์—†์Œ
    Mysql : ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๋‚˜, ์„ค์ •์œผ๋กœ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•จ

  8. ROWNUM
    Oracle : where ์ ˆ์— rownum > 5 and rownum =< 10
    Mysql : where์ ˆ ์—†์ด limit 5,10

  9. Sequence(์‹œํ€€์Šค)๋Š” ๋‘˜ ๋‹ค ์‚ฌ์šฉ์žํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉ
    Oracle : ์‹œํ€€์Šค๋ช….nextval
    Mysql : ์‹œํ€€์Šค๋ช….currval

  10. ๋ฌธ์ž์—ด ์ž๋ฅด๊ธฐ
    Oracle: SUBSTR(๋ฌธ์ž์—ด, 1, 10)
    Mysql: SUBSTRING(๋ฌธ์ž์—ด, 1,10), LEFT(๋ฌธ์ž์—ด, 3), RIGHT(๋ฌธ์ž์—ด, 3)

  11. ๋ฌธ์ž์—ด ํ•ฉ์น˜๊ธฐ ( - ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•œ๋‹ค๊ณ  ๊ฐ€์ •)
    Oracle: ๋ฌธ์ž์—ด(๋˜๋Š” ์ปฌ๋Ÿผ) ||โ€™ - โ€˜
    Mysql: CONCAT(๋ฌธ์ž์—ด(๋˜๋Š” ์ปฌ๋Ÿผ), โ€˜ - โ€˜)

  12. ์˜ˆ์•ฝ์–ด๊ฐ€ ์ปฌ๋Ÿผ๋ช…์ผ ๋•Œ
    Oracle: ์ปฌ๋Ÿผ๋ช…์„ ๋”ฐ์˜ดํ‘œ(โ€œ)๋กœ ๊ฐ์‹ธ๊ธฐ (์˜ˆ: select โ€œcolumnโ€ from tab)
    Mysql: ์ปฌ๋Ÿผ๋ช…์„ TAB ํ‚ค ์œ„์— ์žˆ๋Š” ` ํ‚ค ( Single quotation )๋กœ ๊ฐ์‹ธ๊ธฐ

  13. ์ €์žฅํ”„๋กœ์‹œ์ € ์žˆ๋Š”์ง€ ์—ฌ๋ถ€ ํŒŒ์•…ํ•ด์„œ Create ํ•˜๊ธฐ
    Oracle: CREATE OR REPLACE PROCEDURE ํ”„๋กœ์‹œ์ €๋ช…
    Mysql: DROP PROCEDURE IF EXISTS ํ”„๋กœ์‹œ์ €๋ช…; ์„ ํ•œ ๋’ค์— CREATE PROCEDURE ํ”„๋กœ์‹œ์ €๋ช…

์ฐธ๊ณ  : https://m.blog.naver.com/cacung82/220219070134

์ถ”๊ฐ€์ ์œผ๋กœ ๊ธฐ๋ณธ์ ์œผ๋กœ Oracle์€ ์†์‰ฝ๊ฒŒ ROWNUM๊ณผ Sequence๋ฅผ ์ง€์›ํ•˜๋ฉฐ ์‰ฝ๊ฒŒ ์ƒ์„ฑ๊ฐ€๋Šฅํ•˜์ง€๋งŒ
MySQL์€ ๋‘๊ฐ€์ง€์˜ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š์•„ ๋”ฐ๋กœ ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ตฌํ˜„ํ•ด์•ผํ•˜๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

ROWNUM

SELECT @ROWNUM:=@ROWNUM+1, A.*
FROM ํ…Œ์ด๋ธ”๋ช… A, (SELECT @ROWNUM:=0) R ;

SQL์€ ๊ธฐ๋ณธ์ ์ธ CRUD๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์› ์ง€๋งŒ ๊ธฐ๋Šฅ๋“ค์ด ๋งŽ์•„ ๋” ํฐ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋” ๊ณต๋ถ€ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

Categories:

Updated:

Leave a comment