์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- ํผ์๊ณต๋ถํ๋SQL
- ์ ์ฃผ๋์ฌํ
- ์ ์ฃผ๋
- PRML
- R
- SQL
- ์คํ ์ด๋ ํ๋ก์์
- ์คํ๋ผ์ธ
- PRIMARY KEY
- ๋ ํ๊ฐ
- ์ ์ฃผ2์ฃผ์ด์ด
- RStudio
- ์ค๋ธ์
- Github
- ๋ฐ๋
- ๊นํธ์ฐ์๊ฐ
- ์ ๋ฝ์ฌํ
- ๋ณด์กฐ์ธ๋ฑ์ค
- ์์ด๋ฐ์ฐํธ
- ๋์งํธ๋ง์ผํ
- digital marketing
- ํผ๊ณตS
- Jupyter notebook
- Linux
- GenAI
- ์ฑ ๋ฆฌ๋ทฐ
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ๋ง์ง
- ์๊ตญ์ฌํ
- ํด๋ฌ์คํฐํ์ธ๋ฑ์ค
- Today
- Total
๋ชฉ๋กSQL (15)
Soy Library
์คํ ์ด๋ ํจ์๋ ์คํ ์ด๋ ํ๋ก์์ ์ ๋น์ทํ๋ฐ, ์ฌ์ฉ๋ฐฉ๋ฒ๊ณผ ์ฉ๋๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋ณ๋๋ก ์์๋ ํ์๊ฐ ์๋ค. ์คํ ์ด๋ ํจ์ ์คํ ์ด๋ ํจ์์ ๊ฐ๋ ๊ณผ ํ์ MySQL์์ ์ ๊ณตํ๋ ํจ์๊ฐ ์๋ ๋ค๋ฅธ ํจ์๋ฅผ ์ง์ ๋ง๋ค์ด ์ธ ์ ์๋ ๊ฒ์ด ์คํ ์ด๋ ํจ์์ด๋ค. ํ์์ ์๋์ ๊ฐ๋ค. -- ์คํ ์ด๋ ํจ์ ๋ง๋ค๊ธฐ DELIMITER $$ CREATE FUNCTION ์คํ ์ด๋_ํจ์์ด๋ฆ(๋งค๊ฐ๋ณ์) RETURNS ๋ฐํํ์ BEGIN ํ๋ก๊ทธ๋๋ฐ๋ฌธ RETURN ๋ฐํ๊ฐ ; END $$ DELIMITER ; -- ์คํ ์ด๋ ํจ์ ๊ฒฐ๊ณผ ์ถ๋ ฅํ๊ธฐ SELECT ์คํ ์ด๋_ํจ์์ด๋ฆ() ; ์คํ ์ด๋ ํจ์์ ํ๋ก์์ ๋ ๋น์ทํด๋ณด์ด์ง๋ง ์์ธํ ๋ณด๋ฉด ์ฐจ์ด์ ์ ์ ์ ์๋ค. ์ซ์ ๋ ๊ฐ๋ฅผ ํฉ์ฐํ๋ ๊ฐ๋จํ ์คํ ์ด๋ ํจ์๋ฅผ ๋ง๋ค์ด๋ณด์. -- ์คํ ์ด๋ ํจ์ ๋ง๋ค..
์คํ ์ด๋ ํ๋ก์์ (Stored procedure)๋ฅผ ์ฌ์ฉํ๋ฉด MySQL ์์์๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ฒ๋ผ ํ๋ก๊ทธ๋จ ๋ก์ง์ ์ฝ๋ฉ์ด ๊ฐ๋ฅํ๋ค. ์คํ ์ด๋ ํ๋ก์์ ๊ธฐ๋ณธ ์คํ ์ด๋ ํ๋ก์์ ์ ๊ฐ๋ ๊ณผ ํ์ ์คํ ์ด๋ ํ๋ก์์ ๋ MySQL์์ ์ ๊ณตํ๋ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฅ์ด๋ค. ์ด๋ ์ฟผ๋ฆฌ ๋ฌธ์ ์งํฉ์ผ๋ก๋ ๋ณผ ์ ์์ผ๋ฉฐ, ์ด๋ ํ ๋์์ ์ผ๊ด ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ฉ๋๋ก ์ฌ์ฉํ๋ค. ์คํ ์ด๋ ํ๋ก์์ ์ ์ผ๋ฐ์ ์ธ ํ์์ ์๋์ ๊ฐ๋ค. -- ์คํ ์ด๋ ํ๋ก์์ ๋ง๋ค๊ธฐ DELIMITER $$ CREATE PROCEDURE ์คํ ์ด๋_ํ๋ก์์ _์ด๋ฆ(IN ๋๋ OUT ๋งค๊ฐ๋ณ์) BEGIN SQL ๋ฌธ END $$ DELIMITER ; -- ์คํ ์ด๋ ํ๋ก์์ ํธ์ถํ๊ธฐ CALL ์คํ ์ด๋_ํ๋ก์์ _์ด๋ฆ() ; ์ฌ๊ธฐ์ DELIMITER ๋ผ๋ ๊ฒ์ '๊ตฌ๋ถ์'..
์ง๊ธ๊น์ง๋ ์ธ๋ฑ์ค์ ๊ฐ๋ ์ ํ์ ํ๋ค๋ฉด, ์ค์ ๋ก ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ SQL์ ์ตํ๋๋ก ํ์. ์ธ๋ฑ์ค์ ์์ฑ๊ณผ ์ ๊ฑฐ ๋ฌธ๋ฒ ์ธ๋ฑ์ค ์์ฑ ๋ฌธ๋ฒ ์์์ PRIMARY KEY๋ฅผ ์ง์ ํ๋ฉด ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค๊ฐ, UNIQUE๋ฅผ ์ง์ ํ๋ฉด ๋ณด์กฐ ์ธ๋ฑ์ค๊ฐ ์์ฑ๋๋ ๊ฒ์ ํ์ธํ์๋ค. ์ด์ธ์ ์ง์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ ค๋ฉด CREATE INDEX ๋ฌธ์ ์ฌ์ฉํด์ผ ํ๋ค. -- ์ธ๋ฑ์ค ์์ฑ CREATE [UNIQUE] INDEX ์ธ๋ฑ์ค_์ด๋ฆ ON ํ ์ด๋ธ_์ด๋ฆ (์ด_์ด๋ฆ) [ASC | DESC] ; UNIQUE๋ฅผ ์ฐ๋ฉด ์ค๋ณต์ด ์ ๋๋ ๊ณ ์ ์ธ๋ฑ์ค๋ฅผ ๋ง๋๋ ๊ฒ์ด๊ณ , ์ด๋ฅผ ์๋ตํ๋ฉด ์ค๋ณต์ด ํ์ฉ๋๋ค. ASC/DESC๋ ์ค๋ฆ์ฐจ์, ๋ด๋ฆผ์ฐจ์์ ์๋ฏธํ๋ค. ์ธ๋ฑ์ค ์ ๊ฑฐ ๋ฌธ๋ฒ -- ์ธ๋ฑ์ค ์ ๊ฑฐ DROP INDEX ์ธ๋ฑ์ค_์ด๋ฆ ON ํ ์ด๋ธ_์ด๋ฆ ; ์ฌ๊ธฐ์ ๊ธฐ๋ณธ..
์ธ๋ฑ์ค๋ SELECT๋ฅผ ์ฌ์ฉํด์ ํ ์ด๋ธ์ ์กฐํํ ๋ ๊ฒฐ๊ณผ๋ฅผ ๋น ๋ฅด๊ฒ ์ถ์ถํ๋๋ก ๋์์ฃผ๋ ๊ฒ์ผ๋ก, ์ค๋ฌด์์๋ ํ์ค์ ์ผ๋ก ์ธ๋ฑ์ค ์์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด์์ด ๋ถ๊ฐ๋ฅํ๋ค. ํด๋ฌ์คํฐํ ์ธ๋ฑ์ค(cluetered index)์ ๋ณด์กฐ ์ธ๋ฑ์ค(secondary index)๊ฐ ์๋ค. ์ธ๋ฑ์ค์ ๊ฐ๋ ์ธ๋ฑ์ค๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๋๋ก ํด์ฃผ๋ ๋๊ตฌ์ด๋ค. ์ธ๋ฑ์ค์ ๋ฌธ์ ์ ํ์ ์๋ ์ธ๋ฑ์ค๋ฅผ ๋ง๋ ๊ฒ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ฐจ์งํ๋ ๊ณต๊ฐ๋ง ๋์ด๋๊ณ , ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๋ ๊ฒ์ด ์ ์ฒด ํ ์ด๋ธ์ ์ฐพ์๋ณด๋ ๊ฒ๋ณด๋ค ๋๋ ค์ง ์๋ ์๋ค. ์ธ๋ฑ์ค์ ์ฅ์ ๊ณผ ๋จ์ ์ฅ์ ) ์ ์ ํ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๊ณ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ๋ฌธ์ ๋ง๋ค๋ฉด ๊ธฐ์กด๋ณด๋ค ์์ฃผ ๋น ๋ฅธ ์๋ต ์๋๋ฅผ ์ป์ ์ ์๋ค. ๊ทธ ๊ฒฐ๊ณผ ์ปดํจํฐ์ ๋ถ๋ด์ด ์ค์ด์ ์ ์ฒด ์์คํ ์ ์ฑ๋ฅ์ด ํฅ์๋๋ค. ..
๋ทฐ(view)๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์์๊ฒ ํ์ํ ์ ๋ณด๋ง์ ๋ณด์ฌ์ค ์ ์๋ค. ๋ทฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด ์ค ํ๋๋ก, ์ค์ ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ง๋ ์๋ค. ๋ทฐ๋ ๋จ์ ๋ทฐ์ ๋ณตํฉ ๋ทฐ๋ก ๋๋๋๋ฐ, ๋จ์ ๋ทฐ๋ ํ๋์ ํ ์ด๋ธ๊ณผ ์ฐ๊ด๋ ๋ทฐ๋ฅผ ์๋ฏธํ๊ณ ๋ณตํฉ ๋ทฐ๋ 2๊ฐ ์ด์์ ํ ์ด๋ธ๊ณผ ์ฐ๊ด๋ ๋ทฐ๋ฅผ ์๋ฏธํ๋ค. ๋ทฐ์ ๊ฐ๋ ๋ทฐ์ ๊ธฐ๋ณธ ์์ฑ ๋จผ์ market_db ์ ์๋ member ํ ์ด๋ธ์์ mem_id, mem_name, addr์ ์ด๋ง์ ์ถ๋ ฅํด๋ณด์. USE market_db ; SELECT * FROM member ; SELECT mem_id, mem_name, addr FROM member ; ์์์ ๋ณด์ด๋ ๊ฒ์ฒ๋ผ, ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ ์ธ ๊ฐ์ ์ด์ ๊ฐ๊ณ ์๋ 'ํ ์ด๋ธ'๋ก ๋ณผ ์๋ ์๋ค. ์ฆ, ๋ทฐ์ ์ค์ฒด๋ SELECT ๋ฌธ์ด ๋๋ ๊ฒ์ด..
ํ ์ด๋ธ์ ๋ง๋ค ๋์๋ PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, DEFAULT ๋ฑ๊ณผ ๊ฐ์ ์ ์ฝ์กฐ๊ฑด์ ์ค์ ํด์ค์ผ ํ๋ค. ์ด๋ฅผ ์ ์ดํดํ๊ณ ํ์ฉํ๋ฉด ๋ฐ์ดํฐ์ ์ค๋ฅ๋ฅผ ์ค์ฌ ์์ ๋ฌด๊ฒฐํ ์ฝ๋๋ฅผ ๋ง๋ค ์ ์๋ค. ์ ์ฝ์กฐ๊ฑด์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ์ข ๋ฅ ์ ์ฝ์กฐ๊ฑด์ด๋ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ์งํค๊ธฐ ์ํด ์ ํํ๋ ์กฐ๊ฑด์ด๋ค. โป ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ: ๋ฐ์ดํฐ์ ๊ฒฐํจ์ด ์์. ๊ธฐ๋ณธ ํค(PRIMARY KEY) ์ ์ฝ์กฐ๊ฑด ๋ฐ์ดํฐ๋ฅผ ๊ตฌ๋ถํ ์ ์๋ ์๋ณ์๋ฅผ PRIMARY KEY, ๊ธฐ๋ณธ ํค๋ผ๊ณ ๋ถ๋ฅธ๋ค. ํ์ ํ ์ด๋ธ์ ์์ด๋, ํ์ ํ ์ด๋ธ์ ํ๋ฒ ๋ฑ์ ์๋ก ๋ค ์ ์๋ค. NULL๊ฐ ์ ๋ ฅ ๋ถ๊ฐ ์ค๋ณต๊ฐ ์ ๋ ฅ ๋ถ๊ฐ ํ ์ด๋ธ์์ ๊ธฐ๋ณธ ํค๋ 1๊ฐ๋ง ๊ฐ์ง ์ ์์. CREATE TABLE์์ ์ค์ ํ๋ ๊ธฐ๋ณธ ํค ์ ์ฝ์กฐ๊ฑด CREATE TABL..
ํ ์ด๋ธ(table)์ ํ ํํ๋ก ๊ตฌ์ฑ๋ 2์ฐจ์ ๊ตฌ์กฐ๋ก, ํ๊ณผ ์ด๋ก ๊ตฌ์ฑ๋์ด ์๋ค. ์ฌ๊ธฐ์ ํ(row)์ ๋ ์ฝ๋(record)๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ ์ด(column)์ ํ๋(field)๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ ์ด๋ธ ์ค๊ณํ๊ธฐ ํ ์ด๋ธ์ ๋ง๋ค๊ธฐ ์ ์๋ ์ค๊ณ๋ฅผ ๋จผ์ ํด์ผํ๋ค. ํ ์ด๋ธ ์ค๊ณ๋ ํ ์ด๋ธ ์ด๋ฆ, ์ด ์ด๋ฆ, ๋ฐ์ดํฐ ํ์, ๊ธฐ๋ณธ ํค ๋ฑ์ ์ค์ ํ๋ ๊ฒ์ด๋ค. GUI ํ๊ฒฝ์์ ํ ์ด๋ธ ๋ง๋ค๊ธฐ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์์ฑํ๊ธฐ ๊ฐ๋จํ ์ฟผ๋ฆฌ๋ฌธ์ ํตํด naver_db๋ผ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ค์ด๋ณด๊ธฐ๋ก ํ์. # ๊ฐ๋จํ SQL ๋ฌธ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง๋ค๊ธฐ CREATE DATABASE naver_db ; SQL๋ก ๋ง๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ๋ฉด์ ๋ฐ๋ก ์ ์ฉ๋์ง ์๊ธฐ ๋๋ฌธ์ SCHEMAS ํจ๋์ ๋ณด์ด์ง ์๋๋ค. ๊ทธ๋๋ SCHEMAS ํจ๋์ ๋น ๊ณณ์์ ..
์คํ ์ด๋ ํ๋ก์์ ธ(stored procedure)๋ MySQL์์ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฅ์ด ํ์ํ ๋ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด์ด๋ค. ์คํ ์ด๋ ํ๋ก์์ ธ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๋ ์๋์ ๊ฐ๋ค. DELIMITER $$ CREATE PROCEDURE BEGIN -- SQL ํ๋ก๊ทธ๋๋ฐ ์ฝ๋ฉ END $$ DELIMITER ; CALL ํ๋ก์์ ธ ์ด๋ฆ ; ์ฆ, DELIMITER $$ ~ END $$ ์์ ์์ฑํ๊ณ CALL๋ก ํธ์ถํ๋ ๊ฒ์ด๋ค. IF ๋ฌธ IF๋ฌธ์ ์กฐ๊ฑด๋ฌธ์ผ๋ก ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ํ๋ก๊ทธ๋๋ฐ ๋ฌธ๋ฒ ์ค ํ๋์ด๋ค. IF ๋ฌธ์ ๊ธฐ๋ณธ ํ์ IF THEN SQL ๋ฌธ์ฅ๋ค END IF ; 'SQL ๋ฌธ์ฅ๋ค'์ด ํ ๋ฌธ์ฅ์ด๋ฉด ๊ทธ ๋ฌธ์ฅ๋ง ์ฐ๋ฉด ๋์ง๋ง, ๋ ๋ฌธ์ฅ ์ด์์ด๋ฉด BEGIN~END๋ก ๋ฌถ์ด์ค์ผ ํ๋ค. -- produdure๋ฅผ ๋ง๋ค๊ธฐ ์ ์ ๋ง์ฝ..