์ค๋ฆฌ์ฝ๋ฐธ๋ฆฌ์์ ๋ ์์จ ๋ฐ์ดํฐ๋ฒ ์ด์ค - 4. SQL ๊ณ ๊ธ ๋ค๊ธฐ์ง(JOIN)
1. INSERT / UPDATE / DELET
MySQL ์ปฌ๋ผ ํ์
- Numeric Type
- INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT
- DECIMAL, NUMERIC
- FLOAT, DOUBLE, BIT
- Date and Time
- DATE, DATETIME, TIMESTAMP, TIME, YEAR
- String Type
- CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM, SET
- JSON Type : ๋ค์ํ JSON ์กฐ์ํจ์ ์ ๊ณต
- Spatial Type : ์๋ ๊ฒฝ๋ ์ค์ฌ ์์น ๊ด๋ จ ํ์
INSERT INTO _ VALUES(_)
: primary key ์ ๋ํฌ๊ฐ ์๋ฐฐ์ ์์ ์คํจ
DELETE FROM _ (WHERE _)
: ์กฐ๊ฑด ๊ธฐ๋ฐ ๋ ์ฝ๋ ์ญ์ ํน์ ๋ชจ๋ ๋ ํฌ๋ ์ญ์ . ํ ์ด๋ธ์ ์ญ์ ๋์ง์๋๋ค.
: vs TRUNCATE
- ์กฐ๊ฑด ์์ด ๋ชจ๋ ๋ ์ฝ๋ ์ญ์
- ์๋๊ฐ ๋น ๋ฅธ ๋์ ํธ๋์ญ์ ์ฌ์ฉ์ ๋กค๋ฐฑ ๋ถ๊ฐ
UPDATE _ SET _ WHERE
2. JOIN
์คํ ์คํค๋ง๋ก ๊ตฌ์ฑ๋ ํ ์ด๋ธ๋ค์ mergeํด ๋ถ์ฐ๋์ด ์๋ ์ ๋ณด๋ฅผ ํตํฉํ๋ค.
- ๊ณ ๋ ค ์ฌํญ
- ์ค๋ณต ๋ ์ฝ๋๊ฐ ์๊ณ Primary key์ ์ ๋ํฌํจ์ด ๋ณด์ฅ๋๋์ง ์ฒดํฌ
- ํ ์ด๋ธ๋ค๊ฐ์ ๊ด๊ณ๋ฅผ ๋ฉดํํ๊ฒ ์ ์ (one to one, one to many โ ์ค๋ณต ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์์)

INNER JOIN
์์ชฝ ํ ์ด๋ธ์ ๋งค์น๊ฐ ๋๋ ๋ ์ฝ๋๋ง ๋ฆฌํดํจ
์ฆ, ์์ชฝ ํ ์ด๋ธ ํ๋๊ฐ ๋ชจ๋ ์ฑ์์ง ์์ฑ๋ก ๋ฆฌํด
LEFT/RIGHT JOIN
- LEFT JOIN
์ผ์ชฝ ํ ์ด๋ธ(Base)์ ๋ ์ฝ๋๋ค์ ๋ฆฌํดํจ.
์ค๋ฅธ์ชฝ ํ ์ด๋ธ์ ํ๋๋ ์ผ์ชฝ ๋ ์ฝ๋์ ๋งค์นญ๋๋ ๊ฒฝ์ฐ๋ง ์ฑ์์ง ์ํ๋ก ๋ฆฌํด. ์ฑ์์ง์ง ์๋ ํ๋๋ null
- RIGHT JON
LEFT JOIN ๋ฐ๋
OUTER JOIN
(= FULL JOIN) MySQL์ ์ง์ํ์ง ์๋๋ค.
LEFT JOIN๊ณผ RIGHT JOIN ์ UNION ํ๋ ๊ฒ์ผ๋ก ์ด๋ฅผ ๋์ ํ๋ค.
CROSS JOIN
์ผ์ชฝ ํ ์ด๋ธ๊ณผ ์ค๋ฅธ์ชฝ ํ ์ด๋ธ์ ๋ชจ๋ ๋ ์ฝ๋๋ค์ ์กฐํฉ์ ๋ฆฌํด
SELF JOIN
๊ฐ์ ํ ์ด๋ธ์ ๋ณ๋ช ์ ๋ค๋ฅด๊ฒ ์ค์ ๋ค๋ฅธ ํ ์ด๋ธ์ธ๊ฒ ์ฒ๋ผ join ํ๋ค
์ค์ต
--left join
select * from vital v --์ผ์ชฝ ํ
์ด๋ธ
left join alert a on v.vital_id = a.vital_id;
--full join
select * from vital v
left join alert a on v.vital_id = a.vital_id
union -- ์ค๋ณต์ ์ ๊ฑฐํด์ค๋ค. vs union all
select * from vital v
right join alert a on v.vital_id = a.vital_id
--cross join
select * from vital v
left join alert a
--self join
select * from vital v1
join vital v2 on v1.vital_id = v2.vital_id
์ถ์ฒ - ํ๊ธฐ์ฉ ๊ฐ์ฌ๋ : ์ค๋ฆฌ์ฝ๋ฐธ๋ฆฌ์์ ๋ ์์จ ๋ฐ์ดํฐ ๋ฒ ์ด์ค
'Back-end ๋ฐ๋ธ์ฝ์ค > week 01 - 02 TIL (java, DB)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[TIL] 221028 - ๋ฐ์ดํฐ๋ฒ ์ด์ค MySQL ๊ณ ๊ธ๊ธฐ๋ฅ (0) | 2022.10.28 |
---|---|
[TIL] 221026 - ๋ฐ์ดํฐ๋ฒ ์ด์ค SQL : SELECT, GROUP BY (0) | 2022.10.26 |
[TIL] 221025 - MySQL ์ฌ์ฉํ๊ธฐ (0) | 2022.10.25 |
[TIL] 221024 - ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์๊ฐ (0) | 2022.10.24 |
[TIL] 221021 - Java ์ค์ต ํ๋ก์ ํธ : ์ซ์์ผ๊ตฌ ๊ฒ์ (0) | 2022.10.21 |
๋๊ธ