2023. 8. 4. 02:26ใ4. SQL
- SQL์ด๋?
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์์ ์๋ฃ๋ฅผ ์ฒ๋ฆฌํ๋ ์ฉ๋๋ก ์ฌ์ฉ๋๋ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ ์ง์ ์ธ์ด.(๋๋ฌด์ํค)
SQL - ๋๋ฌด์ํค
์ด ์ ์๋ฌผ์ CC BY-NC-SA 2.0 KR์ ๋ฐ๋ผ ์ด์ฉํ ์ ์์ต๋๋ค. (๋จ, ๋ผ์ด์ ์ค๊ฐ ๋ช ์๋ ์ผ๋ถ ๋ฌธ์ ๋ฐ ์ฝํ ์ ์ธ) ๊ธฐ์ฌํ์ ๋ฌธ์์ ์ ์๊ถ์ ๊ฐ ๊ธฐ์ฌ์์๊ฒ ์์ผ๋ฉฐ, ๊ฐ ๊ธฐ์ฌ์๋ ๊ธฐ์ฌํ์ ๋ถ๋ถ์ ์ ์๊ถ
namu.wiki
๋ง๋ถ์ฌ, ์์ฃผ ๋ณด๋ ์ ํ๋ฒ ๋ ธ๋ง๋์ฝ๋๊ฐ ๊ฐ๋จํ ์ค๋ช ํ ์์์ด ์ข์์ ํจ๊ป ์ฒจ๋ถํด ๋ณธ๋ค.
๋ ธ๋ง๋์ฝ๋ ์์ (URL) : https://youtu.be/z9chRlD1tec
- 1. ๋ฐ์ดํฐ๋ฒ ์ด์ค(DB)์ SQL์ด ์ ํ์ํ ๊น?
์๋ฅผ ๋ค์ด ๋ด ๊ฐ๋ฐฐ๋ฌ์์์ ์ ์ฌ์ฅ์ด๋ผ๋ฉด?
์๊ท๋ชจ๋ผ๋ฉด, ์์ ์ํธ๋ก ์ฃผ๋ฌธ๋ด์ญ์ด ์ ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
๊ทธ๋ฌ๋ ๊ท๋ชจ๊ฐ ์ปค์ง๊ฒ ๋๋ค๋ฉด? ์์ ์ํธ๊ฐ ์ ์ ๋๋ ค์ง๊ณ , ์ฌ๋ฌ ์ฌ๋์ด ์์ ํ๋ ๋ด์ฉ์ด ์ถฉ๋ํ๋ฉด์ ์ทจ์๋ ์ฃผ๋ฌธ์ ๋ฐฐ๋ฌ์ด ๋๊ฐ๋ ๋ฑ์ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด '๋ฐ์ดํฐ๋ฒ ์ด์ค'์ ์ฃผ๋ฌธ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉด
1) ํ์ํ ๋ฐ์ดํฐ๋ง ๋ถ๋ฌ์์ ์์ ํ ์ ์์ด์ ์๋๋ ๋นจ๋ผ์ง๊ณ
2) ์ถฉ๋์ด ์๊ฒผ์ ๊ฒฝ์ฐ ์๋ฌ๋ฅผ ๋์ฐ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ ์ถฉ๋๋ก ์๊ธฐ๋ ๋ฌธ์ ๋ ์ฌ๋ผ์ง๋ค.
- 2. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋?
์ฌ๋ฌ ์ฌ๋๋ค์ด ๊ฐ์ด ์ฌ์ฉํ ๋ชฉ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ํ๋์ 'ํต'์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค.
๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ CRUD์ ํด๋นํ๋ ๊ธฐ๋ฅ์ ์ง์ํ๋ค.
C (Create): ๋ฐ์ดํฐ์ ์์ฑ์ ์๋ฏธ
R (Read): ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ ๊ฒ
U (Update): ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝ!
D (Delete): ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๊ฒ์ ์๋ฏธ
- 3. SQL์ด ์ ํ์ํ ๊น?
๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ค๋ ๊ณผ์ ์ธ "R (Read)"๋ฅผ ์์ฒญ๋๊ฒ ํธํ๊ฒ ๋ง๋ค์ด์ค๋ค. ๊ทธ๋ฆฌ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์์ฝ๊ณ ๊น๋ํ๊ฒ ์ ๋ฆฌ/๋ถ์ํ๋ ๊ธฐ๋ฅ๋ ์ง์ํ๋ค.
( * SQL์ Structured Query Language์ ์ฝ์๋ก, ๊ฒฐ๊ตญ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ฒญ (Query)์ ๋ ๋ ค์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋์์ฃผ๋ ์ธ์ด๋ผ๋ ์๋ฏธ
-> ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๋ช ๋ น์ด๋ฅผ ์์ฑํ๋ ๊ฒ์ 'SQL ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ค'๋ผ๊ณ ํจ. )
DBeaver : SQL์ ๋ณด๋ค ์์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๋์์ฃผ๋ ๋๊ตฌ
ํํ์ด์ง ๋ค์ด๋ก๋ URL : https://dbeaver.io/download/
Download | DBeaver Community
Download DBeaver Community 23.1.3 Released on July 24th 2023 (Milestones). It is free and open source (license). Also you can get it from the GitHub mirror. DBeaver PRO 23.1 Released on June 12th, 2023 PRO version website: dbeaver.com Trial version is avai
dbeaver.io
* Windows๋ฅผ ์ฌ์ฉ (installer), Mac์ ์ฌ์ฉ (dmg)๋ผ๊ณ ๋์ด์๋ ๋งํฌ๋ฅผ ํด๋ฆญ DBeaver๋ฅผ ๋ค์ด๋ก๋ํ ํ ์ค์น๊น์ง ๋ง๋ฌด๋ฆฌ.
- Select ์ฟผ๋ฆฌ๋ฌธ์ด๋?
1) Select ์ฟผ๋ฆฌ๋ฌธ์ ๊ฐ๋
์ฟผ๋ฆฌ(Query)๋ฌธ์ด๋? ์ฟผ๋ฆฌ๋ ์ง์๋ฅผ ์๋ฏธํ๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ช ๋ น์ ๋ด๋ฆฌ๋ ๊ฒ์ ์๋ฏธ.
์ฌ๊ธฐ์ Select ์ฟผ๋ฆฌ๋ฌธ์, ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ '๋ฐ์ดํฐ๋ฅผ ์ ํํด์ ๊ฐ์ ธ์ค๊ฒ ๋ค'๋ ์๋ฏธ.
( Select ์ฟผ๋ฆฌ๋ฌธ์ 1) ์ด๋ค ํ ์ด๋ธ์์ 2) ์ด๋ค ํ๋์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ์ง ๋ก ๊ตฌ์ฑ.)

* ํ ์ด๋ธ: orders๋ผ๋ ์์ ์ํธ๋ช ๋ณด์ด์์ฃ ? ํ ์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ ๋ด๊ธด ์์ ์ํธ์ ๋์ผ.
* ํ๋ : order_no, created_at, course_title, user_id, payment_method, email ๊ฐ๊ฐ์ด ํ๋
( Select ์ฟผ๋ฆฌ๋ฌธ์ ํตํด orders ํ ์ด๋ธ์ created_at, course_title, payment_method, email ํ๋๋ฅผ ๊ฐ์ ธ์๋ฌ๋ผ๋ ๋ช ๋ น์ ๋ด๋ฆด ์ ์๋ค.)
2) ์ฟผ๋ฆฌ๋ฌธ ์ฐ์ต
1. SQL์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ ์ ๋ ฅ์ฐฝ์ด ์์ผ๋ฉด, ์ข์ธก ์๋จ ์ํผ์ง ๋ชจ์์ ํด๋ฆญํด์ New Script๋ฅผ ํด์ค๋ค.
2. Databases์ ํ ์ด๋ธ ๋ณด๊ธฐ
show table;

3. orders ํ ์ด๋ธ ๋ฐ์ดํฐ ๊ฐ์ ธ์๋ณด๊ธฐ
select * from orders;
4. orders ํ ์ด๋ธ์ ํน์ ํ๋๋ง ๊ฐ์ ธ์๋ณด๊ธฐ
select created_at, course_title, payment_method, email from orders;

