์ผ๋จ PostgreSQL์ ์ค์นํ๋ค๋ ๊ฐ์ ํ์ ํฌ์คํ ์ ์งํ๋ฉ๋๋ค.
ย PostgreSQL์ ์ค์นํ๋ค๋ฉด pgAdmin์ด๋ผ๋ ์ข์ ํด์ด ์๊ธฐ์ ๋ณดํต ์ด๊ฒ์ ์ฌ์ฉํ๊ฒ ๋ ๊ฒ์
๋๋ค.
ย ํ์ง๋ง cmd๋ฅผ ์ฌ์ฉํ์ฌ DB๋ฅผ ๋ค๋ฃจ์ด์ผ ํ ์ผ๋ ์ข
์ข
์๋ค๊ณ ํ๋ ์ ๋ SQL Shell (psql)
์ ์ฌ์ฉํ์ฌ DB๋ฅผ ํ๋ฒ ๋ค๋ฃจ์ด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
ย SQL Shell (psql)
์ ์คํํ ๊ฒฝ์ฐ ์๋์ ๊ฐ์ ํ๋ฉด์ด ๋์ต๋๋ค.
ย ๊ฐ ์์์ ์ ์ ํ ๊ฐ์ ์
๋ ฅํ๊ฑฐ๋ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ๋์ด ์๋ค๋ฉด ์
๋ ฅํ์ง ์๊ณ ์ํฐํค๋ก ๋์ด๊ฐ ํ PostgreSQL ์ค์น๋ ์ ํ ์ํธ๋ฅผ ์
๋ ฅํด ์ค๋๋ค.
ย ์ ๋ ๋๋ถ๋ถ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ํ๊ธฐ ๋๋ฌธ์ ์ํธ๊ฐ ๋์ฌ๋ ๊น์ง ์ํฐ๋ง ์
๋ ฅํ์์ผ๋ฉฐ, ์ํธ์นธ์์๋ง ์ํธ๋ฅผ ์
๋ ฅํด ์ฃผ์์ต๋๋ค.
์๋์ ๊ฐ์ด ๋์ค๋ฉด ์ฑ๊ณต์
๋๋ค.
์ด์ ๊ธฐ๋ณธ์ ์ธ ์ค๋น๊ฐ ๋๋ฌ์ต๋๋ค.
์ฌ๊ธฐ์ SQL์ ์ฌ์ฉํด ๋ณด๊ธฐ์ ์์ SQL์ด ๋ฌด์์ธ์ง ๊ฐ๋จํ ์ง๊ณ ๋์ด๊ฐ๋ณด๊ฒ ์ต๋๋ค.
SQL ์ ์๊ฐ
ย SQL(Structured Query Language)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ , ์์ , ์ญ์ , ๊ฒ์์ ํ๊ธฐ ์ํ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ๊ณตํ๋ ์ง์ ์ธ์ด์ ๋๋ค.
ย ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ฉ ํ๋ก๊ทธ๋จ ์ฌ์ด์ ์กด์ฌํ์ฌ ๋ฐ์ดํฐ์ ์ฌ๋ฐ๋ฅธ ์ ๋ณด ๊ตํ์ ํ๊ฒ ํด์ฃผ๋ ๊ฒ์ด DBMS์ธ๋ฐ DBMS์์์ ์ฝ์ , ์์ , ์ญ์ , ๊ฒ์ ๊ธฐ๋ฅ์ ์ค์ ๋ก ์ฒ๋ฆฌํ๋ ์ธ์ด๊ฐ ๋ฐ๋ก SQL์ ๋๋ค.
ย ์ด SQL์ ์ ํ์ฉํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ํ ์ ์์ผ๋ฉฐ, ์ฑ๋ฅ ๋ํ ์ข์์ง๊ฒ ๋๋ค๊ณ ํฉ๋๋ค.
ย SQL์ ํฌ๊ฒ DDL(Data Definition Language(๋ฐ์ดํฐ ์ ์ ์ธ์ด)), DML(Date Manipulation Language(๋ฐ์ดํฐ ์กฐ์ ์ธ์ด)), DCL(Data Control Language(๋ฐ์ดํฐ ๊ด๋ฆฌ ์ธ์ด))์ ์ธ ๊ฐ์ง๋ก ๋๋ ์ ์์ต๋๋ค. ์ ๋ ๊ธฐ๋ณธ ๋ฌธ๋ฒ์ ๋จผ์ ์์๋ณด๊ฒ ์ต๋๋ค.
ย DDL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ์์ฑํ๊ฑฐ๋ ์ฌ์ ์ ๋ฐ ์ ๊ฑฐํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๋๋ค. DDL์ ์ข ๋ฅ์๋ ๋ค์๊ณผ ๊ฐ์ ์ธ ๊ฐ์ง๊ฐ ์์ต๋๋ค.
ย SQL ๋ฌธย | ์ค๋ช |
---|---|
CREATE | ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ ํ ์ด๋ธ๊ณผ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ค. |
ALTER | ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ ํ ์ด๋ธ๊ณผ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ์์ ํ๋ค. |
DROP | ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ ํ ์ด๋ธ๊ณผ ๊ฐ์ ๊ฐ์ฒด๋ฅผ ์ ๊ฑฐํ๋ค. |
ย CREATE๋ฌธ์ ํ ์ด๋ธ์ ์์ฑํ๋ ๊ธฐ๋ฅ์ ํฉ๋๋ค. ์์ฑ ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
CREATE TABLE ์์ฑํ ํ
์ด๋ธ๋ช
(
ํ๋๋ช
1 ํ์
๋ช
,
ํ๋๋ช
2 ํ์
๋ช
,
...
PRIMARY KEY (ํ๋๋ช
)
);
ย ๋๋์ด ์์์ ์ค๋นํ SQL Shell (psql)
์ ์ฌ์ฉํ ๋๊ฐ ๋์์ต๋๋ค.
ย CREATE๋ฌธ ์์ฑ ํ์์ ๋ฐ๋ผ SQL ํ๋กฌํํธ์ธ SQL Shell (psql)
์ ๋ค์๊ณผ ๊ฐ์ด ์
๋ ฅํ๋ฉด student ํ
์ด๋ธ์ด ์์ฑ๋ฉ๋๋ค.
ย ์ด SQL๋ฌธ์ ์ค๋ช ํ๋ฉด student๋ ํ ์ด๋ธ ์ด๋ฆ์ด๋ฉฐ, num์ด๋ ์ปฌ๋ผ์ INT ํ์ ์ผ๋ก ์์ฑํ๊ณ name์ด๋ ์ปฌ๋ผ์ VARCHAR ํ์ ์ผ๋ก 10๊ธ์๊น์ง ๋ค์ด๊ฐ ์ ์๊ฒ ์์ฑํ ๊ฒ์ ๋๋ค.
ย PRIMARY KEY(num)๊ฐ ์๋ฏธํ๋ ๊ฒ์ num ์ปฌ๋ผ์ ๊ธฐ๋ณธ ํค๋ก ์ค์ ํ๊ฒ ๋ค๋ ๊ฒ์
๋๋ค. ๊ธฐ๋ณธ ํค๋ก ์ค์ ๋ ์ปฌ๋ผ์๋ NULL ๊ฐ๋ ์ ์ฅํ ์ ์๊ณ , ๋ค๋ฅธ ๋ ์ฝ๋ ๊ฐ๊ณผ ๋์ผํ ๊ฐ๋ ์ ์ฅํ ์ ์๊ฒ ๋ฉ๋๋ค.
CREATE TABLE student(
num INT,
name VARCHAR(10),
PRIMARY KEY(num)
);
ย ALTER๋ฌธ์ ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝ(์ปฌ๋ผ ์์ , ์ญ์ , ์ถ๊ฐ, ์ ์ฝ ์ถ๊ฐ ๋ฑ)ํ๋ SQL๋ฌธ์ ๋๋ค. ์์ฑ ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ALTER TABLE ํ
์ด๋ธ๋ช
์ ์ฉ์ต์
(
์ปฌ๋ผ๋ช
๋ฐ์ดํฐํ์
๋ช
);
ย SQL ํ๋กฌํํธ ์ฐฝ์์ ๋ค์๊ณผ ๊ฐ์ด ์ ๋ ฅํ๋ฉด ์์ ์์ฑํ student ํ ์ด๋ธ์ name ์ปฌ๋ผ์ ๋ฐ์ดํฐ ํ์ ์ VARCHAR(10)์์ VARCHAR(20)์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
ย ๋ณ๊ฒฝ๋ ํ ์ด๋ธ์ ํ์ธํ๋ ค๋ฉด
SELECT table_name, column_name, data_type, character_maximum_length
FROM information_schema.columns
WHERE table_name='student' ORDER BY column_name;
๋ฅผ ์ ๋ ฅํ๋ฉด ๋ฉ๋๋ค.
ALTER TABLE student ALTER COLUMN name TYPE VARCHAR(20);
ย ALTER ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐํ์ ์ ๋ฐ๊พธ๊ธฐ ์ ํ๋ก name ์ปฌ๋ผ์ ๋ฐ์ดํฐํ์ ์ด VARCHAR(10)์์ VARCHAR(20)์ผ๋ก ๋ฌ๋ผ์ง ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
ย DROP๋ฌธ์ผ๋ก๋ ํ ์ด๋ธ์ ์ญ์ ํ ์ ์์ต๋๋ค. ๊ตฌ๋ฌธ ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
DROP TABLE ํ
์ด๋ธ๋ช
;
ย DROP๋ฌธ์ผ๋ก ํ ์ด๋ธ ์ญ์ ๋ฅผ ํ๋ ๋ฐฉ๋ฒ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ์์์ ์์ฑํ๋ student ํ ์ด๋ธ์ ์ญ์ ํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ SQL๋ฌธ์ ์์ ํ๋ฉด ๋ฉ๋๋ค.
DROP TABLE student;
ย ์ด ์ฟผ๋ฆฌ๋ฅผ ์คํํ ๋ค ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ํ์ธํด๋ณด๋ฉด student ๊ฐ์ฒด๊ฐ ์กด์ฌํ์ง ์๋๋ค๊ณ ํ์๋ฉ๋๋ค.
ย DML์ ๋ฐ์ดํฐ์ ๊ฒ์ ๋ฐ ์ฝ์ , ์์ , ์ญ์ ํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๋๋ค. DML ๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ SQL๋ฌธ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
ย SQL ๋ฌธย | ์ค๋ช |
---|---|
INSERT | ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋ค. |
UPDATE | ํ ์ด๋ธ์ ์ฝ์ ๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๋ค. |
DELETE | ํ ์ด๋ธ์ ์ฝ์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค. |
SELECT | ํ ์ด๋ธ์ ์กด์ฌํ๋ ๋ฐ์ดํฐ๋ฅผ ํน์ ์กฐ๊ฑด์ผ๋ก ๊ฒ์ํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค. |
ย INSERT๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ๋ ์ฌ์ฉํ๋ฉฐ ํ ์ด๋ธ์ ์กด์ฌํ๋ ์ปฌ๋ผ ๊ฐ์๋งํผ ํ๋๋ช ๊ณผ ํ๋ ๊ฐ์ ์ ๋ ฅํ ์ ์์ต๋๋ค.
์์ฑ ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์์ student ํ ์ด๋ธ์ ์ญ์ ํ๊ธฐ ๋๋ฌธ์ CREATE๋ฌธ์ ๋ค์ ์คํํ ํ INSERT๋ฌธ์ ์คํํด ์ฃผ๋๋ก ํฉ์๋ค.
INSERT INTO ํ
์ด๋ธ๋ช
(์ปฌ๋ผ๋ช
1, ์ปฌ๋ผ๋ช
2 ...) VALUES (๋ฐ์ดํฐ๊ฐ1, ๋ฐ์ดํฐ๊ฐ2 ...)
CREATE TABLE student(
num INT,
name VARCHAR(10),
PRIMARY KEY(num)
);
INSERT INTO student (num, name) VALUES(1, 'ํ์ด์ปค');
ย INSERT๋ฌธ์ ์คํํ์์ ๋ ํน๋ณํ ์ค๋ฅ๊ฐ ๋์ง ์์์ผ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ ์ ํ๊ฒ ์ฝ์ ๋ ๊ฒ์ ๋๋ค. SELECT๋ฌธ์ ์ด์ฉํ์ฌ student ํ ์ด๋ธ์ ๋ด์ฉ์ ํ์ธํ๋ฉด ์ ๋ ฅํ ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
ย INSERT๋ฌธ์ ์คํผํ ๋ ํ ์ด๋ธ๋ช ๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ์ปฌ๋ผ๋ช ์ ์ง์ ํ์ง ์์ ์๋ ์์ต๋๋ค. ๋์ ์ปฌ๋ผ๋ช ์ ์ง์ ํ์ง ์์ผ๋ฉด ํ ์ด๋ธ์ ์กด์ฌํ๋ ์ ์ฒด ์ปฌ๋ผ์ ์ฝ์ ํ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ๋์ดํด์ผ ํฉ๋๋ค.
ย ์ฆ VALUES ํค์๋์ ๋์ดํ๋ ๋ฐ์ดํฐ์ ๊ฐ์๊ฐ ํ ์ด๋ธ์ ์กด์ฌํ๋ ์ปฌ๋ผ์ ๊ฐ์์ ๋์ผํด์ผ ํฉ๋๋ค.
INSERT INTO ํ
์ด๋ธ๋ช
VALUES (๋ฐ์ดํฐ๊ฐ1, ๋ฐ์ดํฐ๊ฐ2 ...)
ย ์์ DDL ๋ฌธ์ ์ฌ์ฉํด ๋ณด์๋ ๊ฒ์ฒ๋ผ SQL ํ๋กฌํํธ์ ๋ค์ SQL๋ฌธ์ ์์ฑํด๋ณด๊ฒ ์ต๋๋ค.
INSERT INTO student VALUES(2, '์ผ๋ฆฌ์');
ย UPDATE๋ฌธ์ ํ ์ด๋ธ์ ์ ์ฅ๋์ด ์๋ ๋ ์ฝ๋์ ๊ฐ์ ์์ ํ๋ ๋ฌธ์ฅ์ ๋๋ค. AND๋ OR ๋ฑ์ ์ด์ฉํด์ ์ฌ๋ฌ ์กฐ๊ฑด์ ์ ์ฉํ ์ ์์ผ๋ฉฐ, ์์ฑ ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
UPDATE ํ
์ด๋ธ๋ช
SET ์ปฌ๋ผ๋ช
1='์์ ๊ฐ1', ์ปฌ๋ผ๋ช
2='๋ณ๊ฒฝ๊ฐ2'...
WHERE ์ปฌ๋ผ๋ช
3='์กฐ๊ฑด๊ฐ1' AND ์ปฌ๋ผ๋ช
4='์กฐ๊ฑด๊ฐ2';
ย ๋ค์์ UPDATE๋ฌธ์ ์ฌ์ฉ์์ ์
๋๋ค. ์ด SQL๋ฌธ์ num์ปฌ๋ผ์ ๊ฐ์ด 1์ธ ๋ ์ฝ๋๊ฐ์ ์ฐพ์์ name ํ๋ ๊ฐ์ '์ด์ํ'
์ผ๋ก ๋ณ๊ฒฝํฉ๋๋ค.
ย SQL๋ฌธ ๋ด์ ์๋ WHERE์ ์ด ์กฐ๊ฑด์ ์ค์ ํ๋ ๋ถ๋ถ์ด ๋ฉ๋๋ค. SET ๋ค์ ๋ถ๋ถ์ ๋ณ๊ฒฝํ ์ปฌ๋ผ์ ๊ฐ์ ์ค์ ํฉ๋๋ค.
UPDATE student SET name='์ด์ํ' WHERE num=1;
ย SQL๋ฌธ์ ์คํํด๋ณด๋ฉด ์์ ํ๋ฉด์ฒ๋ผ NAME ์ปฌ๋ผ์ ๊ฐ์ด '์ด์ํ'
์ผ๋ก ์์ ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
ย DELETE ๋ฌธ์ INSERT๋ฌธ์ผ๋ก ์ฝ์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๋ฌธ์ฅ์ ๋๋ค. UPDATE๋ฌธ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก WHERE์ ๋ก ์กฐ๊ฑด์ ์ฃผ์ด ์กฐ๊ฑด์ ํด๋นํ๋ ๋ ์ฝ๋๋ง ์ญ์ ํ ์ ์์ผ๋ฉฐ,ย ์์ฑ ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
DELETE FROM ํ
์ด๋ธ๋ช
WHERE ์ปฌ๋ผ๋ช
1='์กฐ๊ฑด๊ฐ1' AND ์ปฌ๋ผ๋ช
2='์กฐ๊ฑด๊ฐ2';
ย ๋ค์์ DELETE๋ฌธ์ ์ฌ์ฉํ ์์ ๋ก ์ด ์์ ๋ name ์ปฌ๋ผ์ ๊ฐ์ด '์ด์ํ'์ธ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํฉ๋๋ค. SELECT๋ฌธ์ ์คํํ๋ฉด ๋ฐ์ดํฐ๊ฐ ์ ๊ฑฐ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
DELETE FROM student WHERE name='์ด์ํ';
ย INSERT, UPDATE, DELETE๋ฌธ์ ์์ ๋ฅผ ๋ณด๋ฉฐ ํญ์ SELECT๋ฌธ์ ์คํํ ๊ฒ์ ๋ณผ ์ ์์์ต๋๋ค.
ย ํ ๋ง๋๋ก SELECT๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ์ฌ ์ถ๋ ฅํ ๋ ์ฌ์ฉํฉ๋๋ค. ์์ฑ ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
SELECT ์ปฌ๋ผ๋ช
1, ์ปฌ๋ผ๋ช
2 ... FROM ํ
์ด๋ธ๋ช
1, ํ
์ด๋ธ๋ช
2 ...
WHERE ์ปฌ๋ผ๋ช
3='์กฐ๊ฑด๊ฐ1' AND ์ปฌ๋ผ๋ช
4='์กฐ๊ฑด๊ฐ2'
ORDER BY ์ปฌ๋ผ๋ช
5 [ASC | DESC];
SELECT
๋ค์ ์ค๋ ์ปฌ๋ผ๋ช
์ ์ถ๋ ฅํ ์ปฌ๋ผ๋ช
์ ์๋ฏธํฉ๋๋ค.
FROM
๋ค์ ํ
์ด๋ธ๋ช
์ ๋ณดํต 1๊ฐ๋ฅผ ์
๋ ฅํ์ง๋ง ์ฌ๋ฌ ํ
์ด๋ธ๊ณผ ์ฐ๋ํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ ๋๋ ์ฌ๋ฌ ๊ฐ๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
WHERE
์ ์ ์์์ UPDATE๋ฌธ์ด๋ DELETE๋ฌธ์์ ์ฌ์ฉํ WHERE์ ๊ณผ ๊ฐ์ด ์กฐ๊ฑด์ ์ญํ ์ ํฉ๋๋ค.
ย SELECT๋ฌธ์ด ๊ฒ์ํ๋ ๊ธฐ๋ฅ์ ํ๋ SQL๋ฌธ์ด๊ธฐ ๋๋ฌธ์ ์กฐ๊ฑด์ ์ค์ ํ๋ WHERE์ ์ด ๊ฐ์ฅ ์ค์ํ๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค.
ORDER BY
๋ ๋ค์ ์ ์๋๋ ์ปฌ๋ผ๋ช
์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ์ ํ๋ฉฐ ์ปฌ๋ผ๋ช
๋ค์๋ ์ ๋ ฌ ๋ฐฉ์์ ์ ํ๋ ASC(์ค๋ฆ์ฐจ์), DESC(๋ด๋ฆผ์ฐจ์) ๊ฐ ๋ถ์ต๋๋ค(์๋ตํ ๊ฒฝ์ฐ์๋ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ฉ๋๋ค).
ย SELECT์ ์ ์ข
๋ฅ์๋ ์ด ์ธ์๋ ๊ธฐ๋ฅ์ด ๋ง์ต๋๋ค. ํ์ง๋ง ์ฌ๊ธฐ์์๋ ์ค์ํ๊ณ ๋ง์ด ์ฐ๋๊ฒ ์์ฃผ๋ก ์ ๋ฆฌ๋ฅผ ํด ๋ณด์์ต๋๋ค.
๋ค์์ SELECT ๋ฌธ์ฅ์ ์ฌ์ฉํ ์์ ์
๋๋ค. SELECT ๋ฌธ์ฅ ์์ ๋ฅผ ์ค์ตํ๊ธฐ ์ ์ INSERT๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ ์ฝ๋๋ฅผ ๋ฏธ๋ฆฌ ์ฝ์
ํ๊ฒ ์ต๋๋ค.
INSERT INTO student (num, name) VALUES (1, 'ํ์ด์ปค');
INSERT INTO student (num, name) VALUES (3, '์ค๋');
INSERT INTO student (num, name) VALUES (4, '์ ์ฐ์ค');
INSERT INTO student (num, name) VALUES (5, '์ ์ฐ์ค');
INSERT INTO student (num, name) VALUES (6, '๊ตฌ๋ง์ ์');
ย ์์ ํ๋ฉด์ ๋ณด๋ฉด INSERT๋ฌธ์ผ๋ก ์
๋ ฅํ ๊ฐ๋ค์ด ๋ชจ๋ ์ถ๋ ฅ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. SELECT๋ฌธ ๋ค์ *
๋ผ๋ ๋ฌธ์๊ฐ ์
๋ ฅ๋์๋๋ฐ, ์ด๊ฒ์ ๋ชจ๋ ์ปฌ๋ผ์ ์๋ฏธํฉ๋๋ค.
ย student ํ
์ด๋ธ์๋ num, name ์ปฌ๋ผ์ด ์กด์ฌํ๋๋ฐ SELECT * FROM student;
๋ฅผ ์
๋ ฅํ ๊ฒ์ SELECT num, name FROM student;
๋ฅผ ์
๋ ฅํ ๊ฒ๊ณผ ๊ฐ์ ์๋ฏธ์
๋๋ค.
ย ๋ชจ๋ ์ปฌ๋ผ์ ๊ฐ์ ์กฐํํ ๋๋ ๋ชจ๋ ์ปฌ๋ผ๋ช
์ ์
๋ ฅํ์ง ์์๋ *
๋ฌธ์ ํ๋๋ก ๋ชจ๋ ์ปฌ๋ผ๋ช
์ ํํํ ์ ์์ต๋๋ค.
ย ๋ค์ SELECT๋ฌธ ์์ ๋ฅผ ์คํํด๋ณด๊ฒ ์ต๋๋ค.
SELECT * FROM student WHERE name='์ ์ฐ์ค';
ย ์ด ์ฟผ๋ฆฌ๋ฌธ์ WHERE์ ์ name ์ปฌ๋ผ์ ๊ฐ์ด '์ ์ฐ์ค'
์ธ ๊ฐ๋ง ๊ฒ์ํ๋ฏ๋ก ๋ ๊ฐ์ ๋ ์ฝ๋๋ง์ด ์ถ๋ ฅ๋์์ต๋๋ค.
ย SELECT๋ฌธ์ ์ฌ์ฉํ ๋ WHERE์ ์ ์ ์ ํ ์ฌ์ฉํ๋๊ฒ์ด ์ ๋ง ์ค์ํ๋ค๊ณ ํ ์ ์๊ฒ ์ต๋๋ค.
ย ๋ค์ SELECT๋ฌธ ์์ ๋ฅผ ์คํํด๋ณด๊ฒ ์ต๋๋ค.
SELECT * FROM student ORDER BY num DESC;
ย ์์ ๊ฐ์ด SELECT ๋ฌธ์ฅ ์คํ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ฉด num ํ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ๋์ด์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
ย ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ์ด ๋๋ ๊ฒ์ ORDER BY
๋ค์ ์ ๋ ฌ ์ต์
์ DESC๋ก ์ฃผ์๊ธฐ ๋๋ฌธ์
๋๋ค. ๋ง์ฝ ์ด๊ฒ์ ์๋ตํ ๊ฒฝ์ฐ ์๋์ผ๋ก ASC๊ฐ ์ ์ฉ๋์ด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ฉ๋๋ค.
ย SELECT ๋ฌธ์ฅ๊น์ง DML์ ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ๋ค์ ๋ค๋ฃจ์ด ๋ณด์์ต๋๋ค. DML์ ์ค์ ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ์
, ์์ , ์ญ์ ๋ฐ ๊ฒ์ํ๋ ์ญํ ์ ํ๊ธฐ ๋๋ฌธ์ SQL๋ฌธ ์ค ์ฌ์ฉ ๋น๋๊ฐ ๋์ ํธ์ ์ํฉ๋๋ค.
ย ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ํ๋ก๊ทธ๋๋ฐ์ ํ๋ ค๋ฉด ์์ ๋ด์ฉ๋ค์ ์ถ๋ถํ ์์งํ๋๊ฒ์ด ์ข์ผ๋ฉฐ, ์์ผ๋ก ์งํํ ํฌ์คํ ์์ ์ด๋ฌํ SQL๋ฌธ๋ค์ ์ฌ์ฉํ ๊ฒ์ด๊ธฐ์ ์ด๋ ๊ฒ ๋ฏธ๋ฆฌ ์ ๋ฆฌ๋ฅผ ํด ๋์์ต๋๋ค.
ย ๋ง์ง๋ง์ผ๋ก DCL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์์ ๊ถํ์ ์์ฑ, ์ ๊ฑฐํ๋ ๋ฑ ์ ์ดํ ์ ์๋ ๊ธฐ๋ฅ์ ๊ฐ์ง๋๋ค.
ย ํ์ง๋ง ์ด๋ฐ DCL ๋ฌธ์ฅ๋ค์ ์ฌ๊ธฐ์๋ ๋ค๋ฃจ์ง ์์ ์์ ์ด๊ธฐ ๋๋ฌธ์ SQL์ ๋ฌธ ์์ ์ด๋ ๊ตฌ๊ธ๋ง์ ํตํด ์ฐพ์๋ด ์ฃผ์๋ฉด ๊ฐ์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.
ย ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด์ฉํ์ฌ ํ๋ก๊ทธ๋๋ฐ์ ํ ๋ DCL์ ๊ฑฐ์ ํ์๊ฐ ์์ผ๋ฉฐ, ์ ๊ฐ ์งํํ ํฌ์คํ
์์ ๋ํ ๊ฑฐ์ DDL์ด๋ DML ๋ง์ ๋ค๋ฃฐ ์์ ์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
ย ์ฌ๊ธฐ๊น์ง SQL ํ๋กฌํํธ๋ฅผ ํ์ฉํ์ฌ ์ฌ๋ฌ๊ฐ์ง ์ฟผ๋ฆฌ๋ฌธ๋ค์ ๋ค๋ค๋ณด์์ต๋๋ค.
ย ๋ค์์๋ JDBC Driver ๋ก PostgreSQL๊ณผ Eclipse๋ฅผ ์ฐ๊ฒฐํ ํ Eclipse๋ด์์ ์์ ์ฟผ๋ฆฌ๋ฌธ๋ค์ ์ฌ์ฉํ์ฌ PostgreSQL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํธ๋ค๋ง ํ๋ ํฌ์คํ ์ ํด๋ณด๊ฒ ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค.