Goal โ
- database ์ ์ดํด
- database management system(DBMS)๊ฐ ๋ฌด์์ธ์ง ์ดํด
- SQL ๊ธฐ๋ณธ query๋ฌธ ์ฌ์ฉ
- Schema์ ์ค๊ณ ๋ฐฉ๋ฒ๊ณผ ๋์ ๋ฐฉํฅ์ฑ์ ๊ณ ์
- ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ฌ์ด์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ database์ ์ ์ฅ
๐จ SQL ์ด๋?
: Structured Query Language ๊ตฌ์กฐํ๋ Query ์ธ์ด
๋ฐ์ดํฐ๋ฒ ์ด์ค์ฉ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
๋ฐ์ดํฐ๋ฒ ์ด์ค์ query๋ฅผ ๋ณด๋ด ์ํ๋ ๋ฐ์ดํฐ๋ง์ ๋ฝ์์ฌ ์ ์๋ค.
๐จ Query๋?
: ์ง์ญ์ ํ๋ฉด ์ง์๋ฌธ ex) ๊ฒ์์ฐฝ์ ์ ๋ ๊ฒ์์ด๋ Query์ ์ผ์ข
์ ์ฅ๋์ด ์๋ ์ ๋ณด๋ฅผ ํํฐํ๊ธฐ ์ํ ์ง๋ฌธ
๐งชIn-memory์ ํ๊ณ
๋๋ฉด ๋ฐ์ดํฐ๊ฐ ์์ด์ง๋ค.(ํด๋ผ์ด์ธํธ์ ์ ์ฅ)
๐งชFile I/O
์๋ฒ์ ์ ์ฅํ ์ ์์ง๋ง, ์ํ๋ ๋ฐ์ดํฐ๋ง ๊ฐ์ ธ์ฌ ์ ์๊ณ ํญ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ ๋ค ์๋ฒ์์ ํํฐ๋ง ํ์
๐งชDatabase
ํํฐ๋ง ์ธ์๋ File I/O ๋ก ๊ตฌํ์ด ํ๋ ๊ด๋ฆฌ๋ฅผ ์ํ ์ฌ๋ฌ ๊ธฐ๋ฅ๋ค์ ๊ฐ์ง๊ณ ์๋ ๋ฐ์ดํฐ์ ํนํ๋ ์๋ฒ
๋ณดํต, DB๋ฅผ ์ฌ์ฉํ๋ฉด Oracle ๋๋ MySQL์ ๋ง์ด ์ ํ๊ฒ ๋๋ค. ๋ ๋ค ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDB)์ด๋ผ๊ณ ํ๋ค.
RDB
: ๊ด๊ณํ ๋ฐ์ดํฐ๋ชจ๋ธ์ ๊ธฐ์ด๋ฅผ ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ด๋ค. ๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ด๋? ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑํ๋๋ฐ ํ์ํ ๋ฐฉ๋ฒ ์ค ํ๋๋ก 2์ฐจ์์ ํ ์ด๋ธ ํํ๋ก ํํํด์ค๋ค. ์ด๋ ๋ฐ์ดํฐ ๊ฐ์ ์๊ด๊ด๊ณ์์ ๊ฐ์ฒด๊ฐ์ ๊ด๊ณ๋ฅผ ํํํ ๊ฒ์ด๋ผ๊ณ ๋ ํ ์ ์๋ค.
RDB๋ ๋ฐ์ดํฐ์ ๋ ๋ฆฝ์ฑ์ด ๋๊ณ , ๊ณ ์์ค์ ๋ฐ์ดํฐ ์กฐ์์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒฐํฉ, ์ ์ฝ, ํฌ์ ๋ฑ์ ๊ด๊ณ ์กฐ์์ ์ํด ํํ๋ฅ๋ ฅ์ ๋์ผ ์ ์๋ค. ๊ด๊ณ ์กฐ์์ ์ํด ์์ ๋กญ๊ฒ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค๋ ๊ฒ์ด RDB์ ํน์ง
RDBMS( Relational Database Management System )
: ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์์ฑํ๊ณ , ์์ ํ๊ณ ๊ด๋ฆฌํ ์ ์๋ ์ํํธ์จ์ด๋ผ๊ณ ์ ์ํ ์ ์๋ค.
ํน์ง >
1. ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ 2์ฐจ์ ํ ์ด๋ธ๋ก ํํ
2. ํ ์ด๋ธ์ row(ํ), column(์ด)๋ก ์ด๋ฃจ์ด์ง ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ ์ฅ ๋จ์
3. ์ํธ๊ด๋ จ์ฑ์ ๊ฐ์ง ํ ์ด๋ธ์ ์งํฉ
4. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค๊ณ๋๋ฅผ ER(Entity Relationship) ๋ชจ๋ธ
5. ER๋ชจ๋ธ์ ๋ฐ๋ผ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ง๋ค์ด์ง๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ๋ ์ด์์ ํ ์ด๋ธ๋ก ๊ตฌ์ฑDB์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ผ์ข ์ ๋ฐ์ดํฐ ์ ์ฅ์(Storage)๋ผ๊ณ ์๊ฐ.
๊ฐ ํ์ record๋ผ๊ณ ํ๊ณ , record๋ค์ ๋ช ์กฐ๊ฐ์ ์ ๋ณด๋ก ์ด๋ฃจ์ด์ง๋๋ฐ ์ด๋ ์กฐ๊ฐ์ด column ์ด ๋๋ค.
SQL Command
SELECT | UPDATE | DLELTE | INSERT INTO | CREATE DATABASE
ALTER DATABASE | CREATE TABLE | ALTER TABLE(modifies a table)
DROP TABLE(delete a table) | CREATE INDEX | DROP INDEX(deletes an index)
Different Types of SQL JOINs
// ์์์ฝ๋
mysql>select s.name, s.email from students s inner join classes_students cs on (s.id=cs.student_id) inner join classes c on (cs.class_id=c.id) where c.name="CS 101";