TIL/DB

    SQL JOIN ์™€ ์„œ๋ธŒ์ฟผ๋ฆฌ

    SQL JOIN ์™€ ์„œ๋ธŒ์ฟผ๋ฆฌ

    SELECT ์ปฌ๋Ÿผ๋ช… FROM ํ…Œ์ด๋ธ”์ด๋ฆ„ ๋ณ„์นญ[INNER] JOIN ํ…Œ์ด๋ธ” ์ด๋ฆ„ ๋ณ„์นญ ON ๋ณ„์นญ.์ปฌ๋Ÿผ๋ช… = ๋ณ„์นญ.์ปฌ๋Ÿผ๋ช…; -- on ์ด where์ ˆ ์—ญํ• ์„ ์ˆ˜ํ–‰ SELECT ์ปฌ๋Ÿผ๋ช… FROM ํ…Œ์ด๋ธ”๋ช…1 ๋ณ„์นญ1 [INNER] JOIN ํ…Œ์ด๋ธ”2 ๋ณ„์นญ2 ON ๋ณ„์นญ1.์ปฌ๋Ÿผ๋ช… = ๋ณ„์นญ2.์ปฌ๋Ÿผ๋ช…[INNER] JOIN ํ…Œ์ด๋ธ”3.๋ณ„์นญ3 ON ๋ณ„์นญ2.์ปฌ๋Ÿผ๋ช… = ๋ณ„์นญ3.์ปฌ๋Ÿผ๋ช… left join ๋˜๋Š” left outer join SELECT p.NAME, POSITION, p.deptno, p.profno, s.name, studno, grade, s.deptno1 FROM professor p LEFT OUTER join student s ON p.deptno = s.deptno1; right join ๋˜๋Š” right out..

    SQL ์—ฐ์Šต๋ฌธ์ œ1

    -- dept, emp, salgrade table -- 1. ์‚ฌ์› ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ๋ฅผ ์กฐํšŒํ•˜์‹œ์˜ค. SELECT * FROM emp; -- ํ–‰์„ ๋ถ™์—ฌ์„œ ์ถœ๋ ฅํ•˜๊ธฐ -- row_number() over(์ •๋ ฌ๊ธฐ์ค€) => row_number() over(order by id desc) SELECT ROW_NUMBER() OVER(ORDER BY empno DESC) AS NO, e.* FROM emp e; -- 2. ์‚ฌ์›๋ช…๊ณผ ์ž…์‚ฌ์ผ์„ ์กฐํšŒํ•˜์‹œ์˜ค. SELECT ename,hiredate FROM emp; -- 3. ์‚ฌ์›๋ฒˆํ˜ธ์™€ ์ด๋ฆ„์„ ์กฐํšŒํ•˜์‹œ์˜ค. SELECT empno, ename FROM emp; -- 4. ์‚ฌ์›ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ์ง์ฑ…์˜ ๋ชฉ๋ก์„ ์กฐํšŒํ•˜์‹œ์˜ค.(์ค‘๋ณต์ œ๊ฑฐํ•˜๊ณ  ๋ณด๊ธฐ) SELECT DISTINCT job F..

    sql group by , having

    sql group by , having

    group by SELECT grade, SUM(height), AVG(height), MAX(height), MIN(height) FROM student GROUP BY grade; ์ง‘๊ณ„ ํ•จ์ˆ˜๋Š” ์ฃผ๋กœ group by ์ ˆ๊ณผ ๊ฐ™์ด ์“ฐ์ž„ having SELECT ์—ด1, ์—ด2, ์ง‘๊ณ„ํ•จ์ˆ˜(์—ด) AS ๋ณ„์นญ FROM ํ…Œ์ด๋ธ” GROUP BY ์—ด1, ์—ด2 HAVING ์กฐ๊ฑด; SELECT grade, SUM(height), AVG(height), MAX(height), MIN(height) fROM student GROUP BY grade HAVING AVG(height) > 160; ์ง‘๊ณ„ ํ•จ์ˆ˜๋Š” where์ ˆ์— ์‚ฌ์šฉ ๋ถˆ๊ฐ€ where๊ณผ ๋น„์Šทํ•œ ๊ฐœ๋…์œผ๋กœ ์กฐ๊ฑด ์ œํ•œ์„ ์ œํ•œํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ, ์ง‘๊ณ„ ํ•จ์ˆ˜์— ๋Œ€ํ•ด์„œ ์กฐ๊ฑด ์ œํ•œ havi..

    SQL ๋‚ด์žฅํ•จ์ˆ˜ ์ œ์–ดํ•จ์ˆ˜ ( if , ifnull, nullif, case when)

    if(์ˆ˜์‹, ์ฐธ, ๊ฑฐ์ง“) SELECT if( 10 > 5, 'true' , 'false'); --— true IFNULL(a,b) a = null → b a ≠ null → a SELECT IFNULL(email, 'No email') AS result FROM employees; ์ด๋ฉ”์ผ ์ฃผ์†Œ๊ฐ€ NULL์ด ์•„๋‹ˆ๋ฉด ํ•ด๋‹น ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , NULL์ด๋ฉด "No email"์„ ๋ฐ˜ํ™˜ NULLIF(a,b) a = b → null a ≠ b → a SELECT NULLIF(email, 'noemail@example.com') AS result FROM employees; ์ด๋ฉ”์ผ ์ฃผ์†Œ๊ฐ€ "noemail@example.com"์ผ ๊ฒฝ์šฐ NULL์„ ๋ฐ˜ํ™˜ ๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ์—๋Š” ์ด๋ฉ”์ผ ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ NULLIF ํ•จ์ˆ˜๋Š” ํŠน์ • ..

    SQL ๋ฐ์ดํ„ฐ ํ˜•๋ณ€ํ™˜ ํ•จ์ˆ˜

    ํ˜•๋ณ€ํ™˜ ๋ช…์‹œ์  ํ˜•๋ณ€ํ™˜ ์•”์‹œ์  ํ˜•๋ณ€ํ™˜ cast() / convert() CAST( ์นผ๋Ÿผ๋ช… AS ๋ณ€ํ™˜ํ•˜๊ณ ์ž ํ•˜๋Š” ํƒ€์ž…) CONVERT(๋ฐ์ดํ„ฐ ํƒ€์ž…, ์นผ๋Ÿผ๋ช…) SELECT CAST('1' AS UNSIGNED INTEGER); -- 1 SELECT CAST(123 AS char CHARACTER SET UTF8); -- 123 ์ˆซ์ž & ๋ฌธ์ž ๊ฒฐํ•ฉ(์•”์‹œ์  ํ˜•๋ณ€ํ™˜) SELECT 100 + 200; SELECT '100' + '200'; -- ๋ฌธ์ž + ๋ฌธ์ž = ์ •์ˆ˜ ๋ณ€ํ™˜๋˜์–ด ์—ฐ์‚ฐ๋จ //300 SELECT CONCAT('100','200'); //100200 SELECT CONCAT(100,'200'); -- ์ •์ˆ˜์™€ ๋ฌธ์ž ์—ฐ๊ฒฐ(์ •์ˆ˜๊ฐ€ ๋ฌธ์ž๋กœ ๋ณ€ํš๋˜์–ด ์ฒ˜๋ฆฌ๋จ)//100200 SELECT 1 > '2mega'; -- s..

    SQL DELETE, DROP, TRUNCATE ์ฐจ์ด

    SQL DELETE, DROP, TRUNCATE ์ฐจ์ด

    DROP TRUNCATE DELETE ์ข…๋ฅ˜ DDL DDL(์ผ๋ถ€ DML ์„ฑ๊ฒฉ) DML commit autocommit autocommit ์‚ฌ์šฉ์žcommit ROLLBACK ๋ถˆ๊ฐ€๋Šฅ ๋ถˆ๊ฐ€๋Šฅ commit ์ด์ „์— ๊ฐ€๋Šฅ STORAGE storage ์‚ญ์ œ(ํ…Œ์ด๋ธ” ์Šคํ‚ค๋งˆ ์‚ญ์ œ) ์ตœ์ดˆ ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์‹œ ํ• ๋‹น๋œ storage ๋งŒ ๋‚จ๊ธฐ๊ณ  ์‚ญ์ œ(ํ…Œ์ด๋ธ” ์Šคํ‚ค๋งˆ ์œ ์ง€) ๋ฐ์ดํ„ฐ ๋ชจ๋‘ delete ํ•ด๋„ storage ์‚ญ์ œx ์ง„ํ–‰ ํ…Œ์ด๋ธ” ์ •์˜ ์ž์ฒด ์‚ญ์ œ ํ…Œ์ด๋ธ”์„ ์ตœ์†Œ ์ƒ์„ฑ๋œ ์ดˆ๊ธฐ ์ƒํƒœ๋กœ ๋งŒ๋“ฌ ๋ฐ์ดํ„ฐ๋งŒ ์‚ญ์ œ ๋กœ๊ทธ ์•ˆ๋‚จ๊น€ ์•ˆ๋‚จ๊น€ ๋‚จ๊น€ ์†๋„ ๋น ๋ฆ„ ๋น ๋ฆ„ ๋Š๋ฆผ ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ์™€ sqld ์ž๊ฒฉ์ฆ ๊ณต๋ถ€๋ฅผ ํ–ˆ๋˜ ๋‚ด์šฉ์ด ์ด๋ ‡๊ฒŒ ๋„์›€์ด ๋œ๋‹ค. ๋น„๋ก ์ž๊ฒฉ์ฆ์€ ๋–จ์–ด์กŒ์ง€๋งŒ ์ง€์‹์€ ๋‚จ๋Š”๋‹ค..

    MariaDB ์„ค์น˜ ๋ฐ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋“ฑ๋กํ•˜๊ธฐ

    MariaDB ์„ค์น˜ ๋ฐ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋“ฑ๋กํ•˜๊ธฐ

    โœ”๏ธ ๋‹ค์šด๋กœ๋“œ https://mariadb.org/ MariaDB Foundation - MariaDB.org … Continue reading "MariaDB Foundation" mariadb.org ํ•™์Šต์šฉ์œผ๋กœ ๊ณต๋ถ€ํ•˜๊ธฐ ์œ„ํ•ด ์ตœ์‹ ๋ฒ„์ „ ๋ณด๋‹ค ๋‚ฎ์ถฐใ…“ MariaDB 10.11.5 ๋ฒ„์ „ ์„ค์น˜ ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ํ™”๋ฉด ๋„์šฐ๊ธฐ ์„ฑ๊ณต! โœ”๏ธ ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ๋“ฑ๋กํ•˜๊ธฐ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋ฉด, ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜ ๊ฒฝ๋กœ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ํ™˜๊ฒฝ๋ณ€์ˆ˜์— ์ €์žฅ๋œ ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰