๐ก ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (RDBMS)์์ ๋ฐ์ดํฐ๋ฅผ ์ ์, ์กฐ์, ์ ์ด ๋ฐ ์กฐํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์ธ์ด
โ SQL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํธ์์ฉํ๊ธฐ ์ํ ํ์ค ์ธ์ด๋ก, ๋ค์ํ RDBMS์์ ๋๋ฆฌ ์ฌ์ฉ๋จ
๐ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ(ํ ์ด๋ธ, ์ธ๋ฑ์ค, ๋ทฐ ๋ฑ)๋ฅผ ์ ์ํ๋ ๋ฐ ์ฌ์ฉ
โ ์ฃผ์ ๋ช ๋ น์ด
CREATE
: ์๋ก์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด(ํ
์ด๋ธ, ์ธ๋ฑ์ค, ๋ทฐ ๋ฑ)๋ฅผ ์์ฑALTER
: ๊ธฐ์กด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด๋ฅผ ๋ณ๊ฒฝDROP
: ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด๋ฅผ ์ญ์ CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
position VARCHAR(100),
salary DECIMAL(10, 2)
);
ALTER TABLE employees ADD COLUMN hire_date DATE;
DROP TABLE employees;
๐ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์(์ฝ์ , ์์ , ์ญ์ , ์กฐํ)ํ๋ ๋ฐ ์ฌ์ฉ
โ ์ฃผ์ ๋ช ๋ น์ด
SELECT
: ๋ฐ์ดํฐ๋ฅผ ์กฐํINSERT
: ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ์ฝ์
UPDATE
: ๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ์์ DELETE
: ๋ฐ์ดํฐ๋ฅผ ์ญ์ SELECT * FROM employees WHERE salary > 50000;
INSERT INTO employees (id, name, position, salary) VALUES (1, 'John Doe', 'Manager', 60000.00);
UPDATE employees SET salary = 65000 WHERE id = 1;
DELETE FROM employees WHERE id = 1;
๐ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผ ๊ถํ์ ์ ์ดํ๋ ๋ฐ ์ฌ์ฉ
โ ์ฃผ์ ๋ช ๋ น์ด
GRANT
: ์ฌ์ฉ์๊ฐ ํน์ ์์
์ ์ํํ ์ ์๋ ๊ถํ์ ๋ถ์ฌREVOKE
: ์ฌ์ฉ์์ ๊ถํ์ ์ทจ์GRANT SELECT, INSERT ON employees TO user1;
REVOKE INSERT ON employees FROM user1;
๐ก ํ ์ ์ฒด
โ ๋ฐ์ดํฐ๋ ํ ์ด๋ธ ํํ๋ก ์ ์ฅ
โ ํ(Row)๊ณผ ์ด(Column)๋ก ๊ตฌ์ฑ
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100),
position VARCHAR(100),
salary DECIMAL(10, 2)
);
๐ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ์ ์ ์ฝ์กฐ๊ฑด์ ๊ดํด ์ ๋ฐ์ ์ธ ๋ช ์ธ
โ ์คํค๋ง๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด(ํ ์ด๋ธ, ๋ทฐ, ์ธ๋ฑ์ค ๋ฑ)์ ๋ ผ๋ฆฌ์ ๊ทธ๋ฃน์ ์ ์
โ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด์์ ๊ฐ์ฒด๋ค์ ์กฐ์งํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ
โ ๊ฐ ํ์ ๋ ์ฝ๋(Record) ๋๋ ํํ(Tuple)์ด๋ผ๊ณ ํ๋ฉฐ, ๊ฐ ์ด์ ํ๋(Field) ๋๋ ์์ฑ(Attribute)์ด๋ผ๊ณ ๋ถ๋ฆ
โ ํ ์ด๋ธ์ ํน์ ์ด์ ๋ํ ๊ฒ์ ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด ์ฌ์ฉ
โ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ ์กฐํ ์๋ โ
CREATE INDEX idx_salary ON employees (salary);
โ ํ ์ด๋ธ์ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ์ฌ์ฉ
โ ์ฃผ์ ์ ์ฝ ์กฐ๊ฑด
PRIMARY KEY
: ์ ์ผํ๊ณ NULL์ด ์๋ ์๋ณ์FOREIGN KEY
: ๋ค๋ฅธ ํ
์ด๋ธ์ ๊ธฐ๋ณธ ํค์ ์ฐ๊ฒฐ๋ ์ดUNIQUE
: ์ค๋ณต๋์ง ์๋ ๊ฐ์ ๊ฐ๋ ์ดNOT NULL
: NULL ๊ฐ์ ํ์ฉํ์ง ์๋ ์ดCHECK
: ์ด์ ๊ฐ์ ํน์ ์กฐ๊ฑด์ ๋ง๋๋ก ์ ํCREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
position VARCHAR(100),
salary DECIMAL(10, 2) CHECK (salary > 0)
);