๋ฐ์ดํฐ๋ฒ ์ด์ค/ ํ ์ด๋ธ ๊ด๋ จ ํค์๋
์๋ฏธ | ์ฟผ๋ฆฌ |
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง๋ค๊ธฐ | CREATE DATABASE [๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ]; |
๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐํํ๊ธฐ | SHOW DATABASES; |
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ ์ ์ธํ๊ธฐ | USE [๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ]; |
ํ ์ด๋ธ ์์ฑํ๊ธฐ | CREATE TABLE [ํ
์ด๋ธ ์ด๋ฆ] ( [์ปฌ๋ผ ์ด๋ฆ] [๋ฐ์ดํฐ ํ์ ], [์ปฌ๋ผ ์ด๋ฆ] [๋ฐ์ดํฐ ํ์ ], ... ); |
ํ ์ด๋ธ ์ด๋ฆ ๋ณ๊ฒฝํ๊ธฐ | ALTER TABLE [ํ
์ด๋ธ ์ด๋ฆ] RENAME [์๋ก์ด ํ ์ด๋ธ ์ด๋ฆ] |
์๋ก์ด ์ปฌ๋ผ ์ถ๊ฐํ๊ธฐ | ALTER TABLE [ํ
์ด๋ธ ์ด๋ฆ] ADD COLUMN [์ปฌ๋ผ ์ด๋ฆ] [๋ฐ์ดํฐ ํ์ ]; |
๊ธฐ์กด ์ปฌ๋ผ ํ์ ๋ณ๊ฒฝํ๊ธฐ | ALTER TABLE [ํ
์ด๋ธ ์ด๋ฆ] MODIFY COLUMN [์ปฌ๋ผ ์ด๋ฆ] [์๋ก์ด ๋ฐ์ดํฐ ํ์ ]; |
๊ธฐ์กด ์ปฌ๋ผ ์ด๋ฆ๊ณผ ํ์ ๋ณ๊ฒฝํ๊ธฐ | ALTER TABLE [ํ
์ด๋ธ ์ด๋ฆ] CHANGE COLUMN [์ปฌ๋ผ ์ด๋ฆ] [์๋ก์ด ์ปฌ๋ผ ์ด๋ฆ] [์๋ก์ด ๋ฐ์ดํฐ ํ์ ]; |
์ปฌ๋ผ ์ง์ฐ๊ธฐ | ALTER TABLE [ํ ์ด๋ธ ์ด๋ฆ] DROP COLUMN [์ปฌ๋ผ ์ด๋ฆ]; |
ํ ์ด๋ธ ๊ฐ๋ง ์ง์ฐ๊ธฐ | TRUNCATE TABLE [ํ ์ด๋ธ ์ด๋ฆ]; |
๋ฐ์ดํฐ ์ฌ๋ฌ ๊ฐ ์ฝ์ ํ๊ธฐ | INSERT INTO [ํ
์ด๋ธ ์ด๋ฆ] ( [์ปฌ๋ผ1 ์ด๋ฆ], [์ปฌ๋ผ2 ์ด๋ฆ], [์ปฌ๋ผ3 ์ด๋ฆ]) VALUES ([์ปฌ๋ผ1 ๊ฐ], [์ปฌ๋ผ2 ๊ฐ] [์ปฌ๋ผ3 ๊ฐ]), ([์ปฌ๋ผ1 ๊ฐ], [์ปฌ๋ผ2 ๊ฐ] [์ปฌ๋ผ3 ๊ฐ]), ([์ปฌ๋ผ1 ๊ฐ], [์ปฌ๋ผ2 ๊ฐ] [์ปฌ๋ผ3 ๊ฐ]); |
๋ฐ์ดํฐ ์ญ์ ํ๊ธฐ | DELETE FROM [ํ ์ด๋ธ ์ด๋ฆ] WHERE ์กฐ๊ฑด์; |
๋ฐ์ดํฐ ์์ ํ๊ธฐ | UPDATE [ํ ์ด๋ธ ์ด๋ฆ] SET [์ปฌ๋ผ ์ด๋ฆ] = [์ ๊ฐ] WHERE ์กฐ๊ฑด์; |
๋ฐ์ดํฐ ํ์
๋ฐ์ดํฐํ | ํํ | ๋ฐ์ดํธ ์ | ํํ ๋ฒ์ |
์ ์ํ(์ซ์ํ) | TINYINT | 1 | -128~ 127 |
์ ์ํ(์ซ์ํ) | SMALLINT | 2 | -32,768~ 32,767 |
์ ์ํ(์ซ์ํ) | MEDIUMINT | 3 | ์ฝ -838๋ง~ 838๋ง |
์ ์ํ(์ซ์ํ) | INT | 4 | ์ฝ -21์ต~ 21์ต |
์ ์ํ(์ซ์ํ) | BIGINT | 8 | ์ฝ -900๊ฒฝ~ 900๊ฒฝ |
์ค์ํ(์ซ์ํ) | FLOAT | 4 | ์์์ ์๋ 7์๋ฆฌ๊น์ง |
์ค์ํ(์ซ์ํ) | DOUBLE | 8 | ์์์ ์๋ 15์๋ฆฌ๊น์ง |
๋ฌธ์ํ | CHAR(n) | ์ต๋ 255 | n์ 1๋ถํฐ 255๊น์ง ์ง์ |
๋ฌธ์ํ | VARCHAR(n) | ์ต๋ 65,535 | n์ 1๋ถํฐ 65,535๊น์ง ์ง์ |
๋ฌธ์ํ | TINYTEXT | 255 ๊ณ ์ | 255 ๋ฐ์ดํธ ๋ฌธ์์ด๊น์ง |
๋ฌธ์ํ | TEXT | 65,535 ๊ณ ์ | 65,535 ๋ฐ์ดํธ ๋ฌธ์์ด๊น์ง |
๋ฌธ์ํ | MEDIUMTEXT | ์ฝ 1,600๋ง | ์ฝ 1,600๋ง ๋ฐ์ดํธ ๋ฌธ์์ด๊น์ง |
๋ฌธ์ํ | LONGTEXT | ์ฝ 42์ต | ์ฝ 42์ต ๋ฐ์ดํธ ๋ฌธ์์ด๊น์ง |
๋ ์งํ | DATE | 3 | 0000-00-00~ 9999-12-31 |
๋ ์งํ | DATETIME | 3 | 0000-00-00 00:00:00~ 9999-12-31 23:59:59 |
๋ ์งํ | TIME | 4 | -838:59:59~ 838:59:59 |
๋ ์งํ | YEAR | 1 | 1901~2155 |
๋ฐ์ดํฐ๋ฒ ์ด์ค/ ํ ์ด๋ธ/ ์ปฌ๋ผ ์ด๋ฆ ์ ํ๊ธฐ ๊ท์น
1) ๋ฌธ์, ์ซ์, _ ๋ฅผ ์ฌ์ฉํ๋ค.
2) ์ด๋ฆ์ ์ฐ์ด๋ ๋ฌธ์๋ ์ฃผ๋ก ์๋ฌธ ์๋ฌธ์๋ฅผ ์ด๋ค. ํ๊ธ๋ ๊ฐ๋ฅํ์ง๋ง ์ธ์ฝ๋ฉ ์ด์ ๋ฐ์ํ ์ ์์.
๋ณดํต ํค์๋๋ ํจ์๋ช
์ ๋๋ฌธ์, ์ฌ์ฉ์๊ฐ ์ ์ํ ์ด๋ฆ์๋ ์๋ฌธ์ ์ฌ์ฉ.
3) ์ด๋ฏธ ํค์๋, ํจ์๋ช
๋ฑ ๋ฌธ๋ฒ์ ์ผ๋ก ์ฌ์ฉ๋๊ณ ์๋ "์์ฝ์ด"๋ ์ด๋ฆ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
4) ๋จ์ด์ ๋จ์ด ์ฌ์ด์๋ ๋น์นธ ๋์ _๋ฅผ ์ฌ์ฉํ๋ค.
5) ๋ฌธ์๋ก ์์ํด์ผ ํ๋ค. ์ซ์, _ ๋ถ๊ฐ.
6) ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฆ์ ์ค๋ณต๋ ์ ์๋ค. ํ
์ด๋ธ ์ด๋ฆ ์ญ์ ํ๋์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์์ ์ค๋ณต๋
์ ์์ผ๋ฉฐ ์ปฌ๋ผ ์ด๋ฆ์ ํ๋์ ํ
์ด๋ธ ๋ด์์ ์ค๋ณต๋ ์ ์๋ค.
์ฃผ์ ์ฟผ๋ฆฌ ํค์๋
ํค์๋ | ์๋ฏธ | ๋ฌธ๋ฒ | ์์ฑ ์์ | ์คํ ์์ |
SELECT | ๊ฐ์ ธ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๋ ํค์๋ | SELECT [์ปฌ๋ผ ์ด๋ฆ] | 1 | 5 |
FROM | ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ํ ์ด๋ธ์ ์ง์ ํ๋ ํค์๋ | FROM [ํ ์ด๋ธ ์ด๋ฆ] | 2 | 1 |
WHERE | ๊ฐ์ ธ์ฌ ๋ฐ์ดํฐ์ ์กฐ๊ฑด์ ์ง์ ํด์ฃผ๋ ํค์๋ | WHERE ์กฐ๊ฑด์ | 3 | 2 |
GROUP BY | ์ปฌ๋ผ์์ ๋์ผํ ๊ฐ์ ๊ฐ์ง๋ ๋ก์ฐ๋ฅผ ๊ทธ๋ฃนํํ๋ ํค์๋๋ก ์์
์ ํผ๋ฒ๊ณผ ์ ์ฌ GROUP BY๊ฐ ์ฐ์ธ ์ฟผ๋ฆฌ์ SELECT ์ ์๋ GROUP BY ๋์ ์ปฌ๋ผ๊ณผ ๊ทธ๋ฃน ํจ์๋ง ์ฌ์ฉ ๊ฐ๋ฅ ์ฌ๋ฌ ์ปฌ๋ผ ๋์์ผ๋ก๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค |
GROUP BY [์ปฌ๋ผ ์ด๋ฆ] | 4 | 3 |
HAVING | ๊ฐ์ ธ์ฌ ๋ฐ์ดํฐ ๊ทธ๋ฃน์ ์กฐ๊ฑด์ ์ง์ ํด์ฃผ๋ ํค์๋ ๊ทธ๋ฃน ํจ์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ GROU BY์ WHERE ์ ๋ก ๋ถ๋ฆผ |
HAVING ์กฐ๊ฑด์ | 5 | 4 |
ORDER BY | ๊ฐ์ ธ์จ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํด์ฃผ๋ ํค์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ASC(์ค๋ฆ์ฐจ์)๋ก ์ค์ ๋์ด ์๊ณ DESC(๋ด๋ฆผ์ฐจ์)์ผ๋ก ๋ณ๋ ์ค์ ๊ฐ๋ฅ ์ปฌ๋ผ ์ด๋ฆ ๋ค์ ๊ธฐ์ ํ๋ฉด ๋จ |
ORDER BY [์ปฌ๋ผ ์ด๋ฆ] | 6 | 6 |
AS | ๊ฐ์ ธ์จ ๋ฐ์ดํฐ์ ๋ณ๋ช ์ ์ง์ ํ๋ ํค์๋ | AS [์ปฌ๋ผ ๋ณ๋ช ] | - | - |
LIMIT | ๊ฐ์ ธ์ฌ ๋ฐ์ดํฐ์ ๋ก์ฐ ๊ฐ์๋ฅผ ์ง์ ํ๋ ํค์๋ | LIMIT [๋ก์ฐ ์] | - | - |
DISTINCT | ์ค๋ณต๋ ๋ฐ์ดํฐ๋ ์ ์ธํ๊ณ ๊ฐ์ ๊ฐ์ ํ ๋ฒ๋ง ๊ฐ์ ธ์ค๋ ํค์๋ | DISTINCT [์ปฌ๋ผ ์ด๋ฆ] | - | - |
์์ผ๋์นด๋
% / 0๊ฐ ์ด์์ ๋ฌธ์
_ / 1๊ฐ์ ๋ฌธ์
'%e' / e๋ก ๋๋๋ ๋ฌธ์์ด
e, ee, eevee, apple, pineapple
'e%' / e๋ก ์์ํ๋ ๋ฌธ์์ด
e, ee, eevee, eric
'%e%' / e๊ฐ ํฌํจ๋ ๋ฌธ์์ด
e, ee, eevee, apple, pineapple, aespa
'_e' / e๋ก ๋๋๊ณ e ์์ 1๊ฐ์ ๋ฌธ์๊ฐ ์๋ ๋ฌธ์์ด
ae, ee, ce
'%_e' / e๋ก ๋๋๊ณ e ์์ 1๊ฐ ์ด์์ ๋ฌธ์๊ฐ ์๋ ๋ฌธ์์ด
ee, eevee, apple, pineapple
'%_e_%' / e๋ฅผ ํฌํจํ๊ณ e ์๋ค๋ก ๊ฐ๊ฐ 1๊ฐ ์ด์์ ๋ฌธ์๊ฐ ์๋ ๋ฌธ์์ด
eevee, aespa
์์ ํจ์
[ํจ์ ์ด๋ฆ] () OVER (ORDER BY [์ปฌ๋ผ ์ด๋ฆ])
ํจ์ | ์ฐจ์ด์ |
RANK | ๊ณต๋ ์์๊ฐ ์์ผ๋ฉด ๋ค์ ์์๋ก ๊ฑด๋ ๋ |
DENSE_RANK | ๊ณต๋ ์์๊ฐ ์์ด๋ ๋ค์ ์์๋ฅผ ๋ฐ์ด ๋์ง ์์ |
ROW_NUMBER | ๊ณต๋ ์์๋ฅผ ๋ฌด์ํจ |
๊ทธ๋ฃน ํจ์
GROUP BY๊ฐ ์๋ ์ฟผ๋ฆฌ์์ ์ฌ์ฉ ์ ์ ์ฒด ๋ก์ฐ์ ์ ์ฉ๋จ
ํจ์ | ์๋ฏธ |
COUNT | ๊ทธ๋ฃน์ ๊ฐ ์๋ฅผ ์ธ๋ ํจ์ COUNT(1)์ ํ๋์ ๊ฐ์ 1๋ก ์ธ์ด ์ฃผ๋ ํํ์ผ๋ก ์์ฃผ ์ฌ์ฉ GROUP BY๊ฐ ์๋ ์ฟผ๋ฆฌ์์ ์ฌ์ฉ ์ ์ ์ฒด ๋ก์ฐ์ ์ ์ฉ๋จ |
SUM | ๊ทธ๋ฃน์ ํฉ์ ๊ณ์ฐํ๋ ํจ์ |
AVG | ๊ทธ๋ฃน์ ํ๊ท ์ ๊ณ์ฐํ๋ ํจ์ |
MIN | ๊ทธ๋ฃน์ ์ต์๊ฐ์ ๋ฐํํ๋ ํจ์ |
MAX | ๊ทธ๋ฃน์ ์ต๋๊ฐ์ ๋ฐํํ๋ ํจ์ |
์ฃผ์ ์ฐ์ฐ์
์ฐ์ฐ์ | ์๋ฏธ | ํ์ฉ |
BETWEEN | ํน์ ๋ฒ์ ๋ด์ ๋ฐ์ดํฐ๋ฅผ ์ ํํ ๋ ์ฌ์ฉํ๋ ์ฐ์ฐ์ | BETWEEN A AND B |
IN | ๋ชฉ๋ก ๋ด ํฌํจ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ํํ ๋ ์ฌ์ฉํ๋ ์ฐ์ฐ์ | [์ปฌ๋ผ ์ด๋ฆ] IN (A, B, ..., C) |
LIKE | ํน์ ๋ฌธ์์ด์ด ํฌํจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๋ ์ฐ์ฐ์ | [์ปฌ๋ผ ์ด๋ฆ] LIKE [๊ฒ์ํ ๋ฌธ์์ด] |
IS NULL | ๋ฐ์ดํฐ๊ฐ NULL์ธ์ง ์๋์ง๋ฅผ ํ์ธํ๋ ์ฐ์ฐ์ | [์ปฌ๋ผ ์ด๋ฆ] IS NULL |
์ฃผ์ ๋ฌธ์ํ ๋ฐ์ดํฐ ํจ์
ํจ์ | ์ค๋ช | ํ์ฉ |
LOCATE | "ABC"์์ "A"๋ ๋ช ๋ฒ์งธ์ ์์นํด ์๋์ง ๊ฒ์ํด ์์น ๋ฐํ | LOCATE("A","ABC") |
SUBSTRING | "ABC"์์ 2๋ฒ์งธ ๋ฌธ์๋ถํฐ ๋ฐํ | SUBSTRING("ABC", 2) |
RIGHT | "ABC"์์ ์ค๋ฅธ์ชฝ 1๋ฒ์งธ ๋ฌธ์๊น์ง ๋ฐํ | RIGHT("ABC", 1) |
LEFT | "ABC"์์ ์ผ์ชฝ 1๋ฒ์งธ ๋ฌธ์๊น์ง ๋ฐํ | LEFT("ABC", 1) |
UPPER | "abc"๋ฅผ ๋๋ฌธ์๋ก ๋ฐ๊ฟ ๋ฐํ | UPPER("abc") |
LOWER | "ABC"๋ฅผ ์๋ฌธ์๋ก ๋ฐ๊ฟ ๋ฐํ | LOWER("ABC") |
LENGTH | "ABC"์ ๊ธ์ ์๋ฅผ ๋ฐํ | LENGTH("ABC") |
CONCAT | "ABC" ๋ฌธ์์ด๊ณผ "CDF" ๋ฌธ์์ด์ ํฉ์ณ ๋ฐํ | CONCAT("ABC", "DEF") |
REPLACE | "ABC"์ "A"๋ฅผ "Z"๋ก ๋ฐ๊ฟ ๋ฐํ | REPLACE("ABC", "A", "Z") |
์ฃผ์ ์ซ์ํ ๋ฐ์ดํฐ ํจ์
ํจ์ | ์ค๋ช | ํ์ฉ |
ABS | ์ซ์์ ์ ๋๊ฐ ๋ฐํ | ABS(์ซ์) |
CEILING | ์ซ์๋ฅผ ์ ์๋ก ์ฌ๋ฆผํด์ ๋ฐํ | CEILING(์ซ์) |
FLOOR | ์ซ์๋ฅผ ์ ์๋ก ๋ด๋ฆผํด์ ๋ฐํ | FLOOR(์ซ์) |
ROUND | ์ซ์๋ฅผ ์์์ ์๋ฆฟ์๊น์ง ๋ฐ์ฌ๋ฆผ ํด์ ๋ฐํ | ROUND(์ซ์, ์๋ฆฟ์) |
TRUNCATE | ์ซ์๋ฅผ ์์์ ์๋ฆฟ์๊น์ง ๋ฒ๋ฆผ ํด์ ๋ฐํ | TRUNCATE(์ซ์, ์๋ฆฟ์) |
POWER | ์ซ์A์ ์ซ์B ์ ๊ณฑ ๋ฐํ | POWER(์ซ์A, ์ซ์B) |
MOD | ์ซ์A๋ฅผ ์ซ์B๋ก ๋๋ ๋๋จธ์ง ๋ฐํ | MOD(์ซ์A, ์ซ์B) |
์ฃผ์ ๋ ์งํ ๋ฐ์ดํฐ ํจ์
ํจ์ | ์ค๋ช | ํ์ฉ |
NOW | ํ์ฌ ๋ ์ง์ ์๊ฐ ๋ฐํ | NOW() |
CURRENT_DATE | ํ์ฌ ๋ ์ง ๋ฐํ | CURRENT_DATE() |
CURRENT_TIME | ํ์ฌ ์๊ฐ ๋ฐํ | CURRENT_TIME |
YEAR | ๋ ์ง์ ์ฐ๋ ๋ฐํ | YEAR(๋ ์ง) |
MONTH | ๋ ์ง์ ์ ๋ฐํ | MONTH(๋ ์ง) |
MONTHNAME | ๋ ์ง์ ์์ ์์ด๋ก ๋ฐํ | MONTHNAME(๋ ์ง) |
DAYNAME | ๋ ์ง์ ์์ผ์ ์์ด๋ก ๋ฐํ | DAYNAME(๋ ์ง) |
DAYOFMONTH | ๋ ์ง์ ์ผ ๋ฐํ | DAYOFMONTH(๋ ์ง) |
DAYOFWEEK | ๋ ์ง์ ์์ผ์ ์ซ์๋ก ๋ฐํ | DAYOFWEEK(๋ ์ง) |
WEEK | ๋ ์ง๊ฐ ํด๋น ์ฐ๋์ ๋ช ๋ฒ์งธ ์ฃผ์ธ์ง ๋ฐํ | WEEK(๋ ์ง) |
HOUR | ์๊ฐ์ ์ ๋ฐํ | HOUR(์๊ฐ) |
MINUTE | ์๊ฐ์ ๋ถ ๋ฐํ | MINUTE(์๊ฐ) |
SECOND | ์๊ฐ์ ์ด ๋ฐํ | SECOND(์๊ฐ) |
DATEFORMAT | ๋ ์ง/ ์๊ฐ์ ํ์์ ํ์์ผ๋ก ๋ฐ๊ฟ ๋ฐํ | DATEFORMAT(๋ ์ง/์๊ฐ, ํ์) |
DATEDIFF | ๋ ์ง1๊ณผ ๋ ์ง2์ ์ฐจ์ด ๋ฐํ(๋ ์ง1- ๋ ์ง2) | DATEDIFF(๋ ์ง1- ๋ ์ง2) |
TIMEDIFF | ์๊ฐ1๊ณผ ์๊ฐ2์ ์ฐจ์ด ๋ฐํ(์๊ฐ1- ์๊ฐ2) | TIMEDIFF(์๊ฐ1- ์๊ฐ2) |
์กฐ๊ฑด ๋ง๋ค๊ธฐ
์กฐ๊ฑด ๋ง๋ค๊ธฐ | IF (์กฐ๊ฑด์, ์ฐธ์ผ ๋ ๊ฐ, ๊ฑฐ์ง์ผ ๋ ๊ฐ) |
์ฌ๋ฌ ์กฐ๊ฑด ํ๋ฒ์ ๋ง๋ค๊ธฐ | CASE [์ปฌ๋ผ ์ด๋ฆ] WHEN ์กฐ๊ฑด๊ฐ1 THEN ๊ฒฐ๊ณผ๊ฐ1 WHEN ์กฐ๊ฑด๊ฐ2 THEN ๊ฒฐ๊ณผ๊ฐ2 ELSE ๊ฒฐ๊ณผ๊ฐ3 END |
ํ ์ด๋ธ ํฉ์น๊ธฐ
ํํ | ์ค๋ช | ํ์ฉ |
INNER JOIN | ๋ ํ ์ด๋ธ ๋ชจ๋์ ์๋ ๊ฐ๋ง ํฉ์น๊ธฐ | SELECT [์ปฌ๋ผ ์ด๋ฆ] FROM [ํ ์ด๋ธ A ์ด๋ฆ] INNER JOIN [ํ ์ด๋ธ B ์ด๋ฆ] ON [ํ ์ด๋ธ A ์ด๋ฆ].[์ปฌ๋ผ A ์ด๋ฆ]=[ํ ์ด๋ธ B ์ด๋ฆ].[์ปฌ๋ผ B ์ด๋ฆ] |
LEFT JOIN | ์ผ์ชฝ ํ ์ด๋ธ์ ์๋ ๊ฐ๋ง ํฉ์น๊ธฐ | SELECT [์ปฌ๋ผ ์ด๋ฆ] FROM [ํ ์ด๋ธ A ์ด๋ฆ] LEFT JOIN [ํ ์ด๋ธ B ์ด๋ฆ] ON [ํ ์ด๋ธ A ์ด๋ฆ].[์ปฌ๋ผ A ์ด๋ฆ]=[ํ ์ด๋ธ B ์ด๋ฆ].[์ปฌ๋ผ B ์ด๋ฆ] |
RIGHT JOIN | ์ค๋ฅธ์ชฝ ํ ์ด๋ธ์ ์๋ ๊ฐ๋ง ํฉ์น๊ธฐ | SELECT [์ปฌ๋ผ ์ด๋ฆ] FROM [ํ ์ด๋ธ A ์ด๋ฆ] RIGHT JOIN [ํ ์ด๋ธ B ์ด๋ฆ] ON [ํ ์ด๋ธ A ์ด๋ฆ].[์ปฌ๋ผ A ์ด๋ฆ]=[ํ ์ด๋ธ B ์ด๋ฆ].[์ปฌ๋ผ B ์ด๋ฆ] |
OUTER JOIN | ๋ ํ ์ด๋ธ์ ์๋ ๋ชจ๋ ๊ฐ ํฉ์น๊ธฐ | SELECT [์ปฌ๋ผ ์ด๋ฆ] FROM [ํ ์ด๋ธ A ์ด๋ฆ] LEFT JOIN [ํ ์ด๋ธ B ์ด๋ฆ] ON [ํ ์ด๋ธ A ์ด๋ฆ].[์ปฌ๋ผ A ์ด๋ฆ]=[ํ ์ด๋ธ B ์ด๋ฆ].[์ปฌ๋ผ B ์ด๋ฆ] UNION SELECT [์ปฌ๋ผ ์ด๋ฆ] FROM [ํ ์ด๋ธ A ์ด๋ฆ] RIGHT JOIN [ํ ์ด๋ธ B ์ด๋ฆ] ON [ํ ์ด๋ธ A ์ด๋ฆ].[์ปฌ๋ผ A ์ด๋ฆ]=[ํ ์ด๋ธ B ์ด๋ฆ].[์ปฌ๋ผ B ์ด๋ฆ] |
CROSS JOIN | ๋ ํ ์ด๋ธ์ ์๋ ๋ชจ๋ ๊ฐ์ ๊ฐ๊ฐ ํฉ์น๊ธฐ | SELECT [์ปฌ๋ผ ์ด๋ฆ] FROM [ํ ์ด๋ธ A ์ด๋ฆ] CROSS JOIN [ํ ์ด๋ธ B ์ด๋ฆ]; |
SELF JOIN | ๊ฐ์ ํ ์ด๋ธ์ ์๋ ๊ฐ ํฉ์น๊ธฐ | SELECT [์ปฌ๋ผ ์ด๋ฆ] FROM [ํ ์ด๋ธ A ์ด๋ฆ] AS t1 INNER JOIN [ํ ์ด๋ธ A ์ด๋ฆ] AS t2 ON t1.[์ปฌ๋ผ A ์ด๋ฆ] = t2.[์ปฌ๋ผ A ์ด๋ฆ]; |
์ฌ๋ฌ ํ ์ด๋ธ ํ ๋ฒ์ ๋ค๋ฃจ๊ธฐ
ํํ | ํ์ฉ |
ํฉ์งํฉ | SELECT [์ปฌ๋ผ ์ด๋ฆ] FROM [ํ
์ด๋ธ A ์ด๋ฆ] UNION SELECT [์ปฌ๋ผ ์ด๋ฆ] FROM [ํ ์ด๋ธ B ์ด๋ฆ]; |
์ค๋ณต ํฌํจ ํฉ์งํฉ | SELECT [์ปฌ๋ผ ์ด๋ฆ] FROM [ํ
์ด๋ธ A ์ด๋ฆ] UNION ALL SELECT [์ปฌ๋ผ ์ด๋ฆ] FROM [ํ ์ด๋ธ B ์ด๋ฆ]; |
๊ต์งํฉ | SELECT [์ปฌ๋ผ ์ด๋ฆ] FROM [ํ ์ด๋ธ A ์ด๋ฆ] AS A INNER JOIN [ํ ์ด๋ธ B ์ด๋ฆ] AS B ON A.[์ปฌ๋ผ1 ์ด๋ฆ] = B.[์ปฌ๋ผ1 ์ด๋ฆ] AND ... AND A.[์ปฌ๋ผn ์ด๋ฆ] = B.[์ปฌ๋ผn ์ด๋ฆ]; |
์ฐจ์งํฉ | SELECT [์ปฌ๋ผ ์ด๋ฆ] FROM [ํ ์ด๋ธA ์ด๋ฆ] AS A LEFT JOIN [ํ ์ด๋ธ B] AS B ON A.[์ปฌ๋ผ1 ์ด๋ฆ] = B.[์ปฌ๋ผ1 ์ด๋ฆ] AND ... AND A.[์ปฌ๋ผn ์ด๋ฆ] = B.[์ปฌ๋ผn ์ด๋ฆ] WHERE B.[์ปฌ๋ผ ์ด๋ฆ] IS NULL; |
ํจ์ ๋ง๋ค๊ธฐ ์ฟผ๋ฆฌ
SET GLOVAL log_bin_trust_function_creators=1; #์ฌ์ฉ์ ๊ณ์ ์ function create ๊ถํ ์์ฑ
DELIMITER // # ํจ์์ ์์ ์ง์
CREATE FUNCTION [ํจ์ ์ด๋ฆ] ([์
๋ ฅ๊ฐ ์ด๋ฆ] [๋ฐ์ดํฐ ํ์
], ...)
RETURNS [๊ฒฐ๊ณผ๊ฐ ๋ฐ์ดํฐ ํ์
]
BEGIN
DECLARE [์์๊ฐ ์ด๋ฆ] [๋ฐ์ดํฐ ํ์
];
SET [์์๊ฐ ์ด๋ฆ] = [์
๋ ฅ๊ฐ ์ด๋ฆ];
์ฟผ๋ฆฌ;
RETURN ๊ฒฐ๊ณผ๊ฐ
END
//
DELIMITER; #ํจ์์ ๋ ์ง์
'TOOLS > SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
SQL ๋ฌธ์ ํ์ด: ๊ฐ๊ฒฉ๋๋ณ ๊ทธ๋ฃน ์ฝ๊ฒ ๋ง๋ค๊ธฐ, FLOOR/ TRUNCATE (0) | 2024.02.17 |
---|---|
SQL: ์ NULL์ =์ด ์๋๋ผ is๋ฅผ ์ธ๊น (1) | 2024.02.11 |
SQL: ์กฐ๊ฑด ์ ์ฉํด ์ ์๋ฏธํ ๊ธฐ์ค์ ๋ฝ๊ธฐ, CASE WHEN (2) | 2024.02.08 |
SQL: ์ค๋ณต ๊ฐ๋ง ๋ฆฌ์คํ ํ๋ ๋ฐฉ๋ฒ, HAVING COUNT() (0) | 2024.02.06 |
SQL: ์ ์ ์ด๋ ์ฐจ์ด์ ์ด๋ ๋ชจ์ ๋์ผ ๋ณด์ธ๋ค, JOIN (1) | 2024.02.03 |