[POSTGRESQL] ๐Ÿ˜ psql๋กœ SQL ์‚ฌ์šฉํ•ด๋ณด๊ธฐ

์ž„๋‚™ํ˜„ยท2022๋…„ 9์›” 23์ผ
0

SQL for DataBase

๋ชฉ๋ก ๋ณด๊ธฐ
3/4
post-thumbnail

์ผ๋‹จ PostgreSQL์„ ์„ค์น˜ํ–ˆ๋‹ค๋Š” ๊ฐ€์ •ํ•˜์— ํฌ์ŠคํŒ…์€ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.


0. ๐Ÿ‘” ๋ณดํ†ต์€...

ย PostgreSQL์„ ์„ค์น˜ํ–ˆ๋‹ค๋ฉด pgAdmin์ด๋ผ๋Š” ์ข‹์€ ํˆด์ด ์žˆ๊ธฐ์— ๋ณดํ†ต ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ย ํ•˜์ง€๋งŒ cmd๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ DB๋ฅผ ๋‹ค๋ฃจ์–ด์•ผ ํ•  ์ผ๋„ ์ข…์ข… ์žˆ๋‹ค๊ณ  ํ•˜๋‹ˆ ์ €๋Š” SQL Shell (psql) ์„ ์‚ฌ์šฉํ•˜์—ฌ DB๋ฅผ ํ•œ๋ฒˆ ๋‹ค๋ฃจ์–ด ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

1. ๐Ÿงฑ SQL Shell (psql) ์‹คํ–‰

ย SQL Shell (psql) ์„ ์‹คํ–‰ํ•  ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋‚˜์˜ต๋‹ˆ๋‹ค.

2. ๐Ÿ“Ÿ DBMS ๋กœ๊ทธ์ธ

ย ๊ฐ ์š”์†Œ์— ์ ์ ˆํ•œ ๊ฐ’์„ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋˜์–ด ์žˆ๋‹ค๋ฉด ์ž…๋ ฅํ•˜์ง€ ์•Š๊ณ  ์—”ํ„ฐํ‚ค๋กœ ๋„˜์–ด๊ฐ„ ํ›„ PostgreSQL ์„ค์น˜๋•Œ ์ •ํ•œ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ค๋‹ˆ๋‹ค.
ย ์ €๋Š” ๋Œ€๋ถ€๋ถ„ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์•”ํ˜ธ๊ฐ€ ๋‚˜์˜ฌ๋•Œ ๊นŒ์ง€ ์—”ํ„ฐ๋งŒ ์ž…๋ ฅํ•˜์˜€์œผ๋ฉฐ, ์•”ํ˜ธ์นธ์—์„œ๋งŒ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜์˜ค๋ฉด ์„ฑ๊ณต์ž…๋‹ˆ๋‹ค.


3. ๐ŸŽซ SQL

์ด์ œ ๊ธฐ๋ณธ์ ์ธ ์ค€๋น„๊ฐ€ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ SQL์„ ์‚ฌ์šฉํ•ด ๋ณด๊ธฐ์— ์•ž์„œ SQL์ด ๋ฌด์—‡์ธ์ง€ ๊ฐ„๋‹จํžˆ ์งš๊ณ  ๋„˜์–ด๊ฐ€๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

SQL ์˜ ์†Œ๊ฐœ


ย SQL(Structured Query Language)์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œ , ๊ฒ€์ƒ‰์„ ํ•˜๊ธฐ ์œ„ํ•œ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ์งˆ์˜ ์–ธ์–ด์ž…๋‹ˆ๋‹ค.

ย ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์ด์— ์กด์žฌํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ์˜ฌ๋ฐ”๋ฅธ ์ •๋ณด ๊ตํ™˜์„ ํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด DBMS์ธ๋ฐ DBMS์ƒ์—์„œ ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œ, ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ์‹ค์ œ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์–ธ์–ด๊ฐ€ ๋ฐ”๋กœ SQL์ž…๋‹ˆ๋‹ค.

ย ์ด SQL์„ ์ž˜ ํ™œ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์„ฑ๋Šฅ ๋˜ํ•œ ์ข‹์•„์ง€๊ฒŒ ๋œ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

ย SQL์€ ํฌ๊ฒŒ DDL(Data Definition Language(๋ฐ์ดํ„ฐ ์ •์˜ ์–ธ์–ด)), DML(Date Manipulation Language(๋ฐ์ดํ„ฐ ์กฐ์ž‘ ์–ธ์–ด)), DCL(Data Control Language(๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ์–ธ์–ด))์˜ ์„ธ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์„ ๋จผ์ € ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

1. ๐Ÿš— DDL

ย DDL์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์žฌ์ •์˜ ๋ฐ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. DDL์˜ ์ข…๋ฅ˜์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ธ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.


ย SQL ๋ฌธย ์„ค๋ช…
CREATE๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋˜๋Š” ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
ALTER๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋˜๋Š” ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค.
DROP๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋˜๋Š” ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ๊ฐ์ฒด๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.



1. ๐Ÿช„ CREATE๋ฌธ

ย 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)
);



2. ๐Ÿ“œ ALTER๋ฌธ

ย 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)์œผ๋กœ ๋‹ฌ๋ผ์ง„ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



3. ๐Ÿชฆ DROP๋ฌธ

ย DROP๋ฌธ์œผ๋กœ๋Š” ํ…Œ์ด๋ธ”์„ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ๋ฌธ ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

DROP TABLE ํ…Œ์ด๋ธ”๋ช…;

ย DROP๋ฌธ์œผ๋กœ ํ…Œ์ด๋ธ” ์‚ญ์ œ๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์•ž์—์„œ ์ƒ์„ฑํ–ˆ๋˜ student ํ…Œ์ด๋ธ”์„ ์‚ญ์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ SQL๋ฌธ์„ ์ž‘์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

DROP TABLE student;

ย ์ด ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•œ ๋’ค ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด student ๊ฐ์ฒด๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.




2. ๐Ÿš DML

ย DML์€ ๋ฐ์ดํ„ฐ์˜ ๊ฒ€์ƒ‰ ๋ฐ ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค. DML ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ SQL๋ฌธ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ย SQL ๋ฌธย ์„ค๋ช…
INSERTํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค.
UPDATEํ…Œ์ด๋ธ”์— ์‚ฝ์ž…๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•œ๋‹ค.
DELETEํ…Œ์ด๋ธ”์— ์‚ฝ์ž…๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.
SELECTํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํŠน์ • ์กฐ๊ฑด์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.



1. ๐Ÿ‘ INSERT๋ฌธ

ย INSERT๋ฌธ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ ํ…Œ์ด๋ธ”์— ์กด์žฌํ•˜๋Š” ์ปฌ๋Ÿผ ๊ฐœ์ˆ˜๋งŒํผ ํ•„๋“œ๋ช…๊ณผ ํ•„๋“œ ๊ฐ’์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž‘์„ฑ ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์•ž์„œ student ํ…Œ์ด๋ธ”์„ ์‚ญ์ œํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— CREATE๋ฌธ์„ ๋‹ค์‹œ ์‹คํ–‰ํ•œ ํ›„ INSERT๋ฌธ์„ ์‹คํ–‰ํ•ด ์ฃผ๋„๋ก ํ•ฉ์‹œ๋‹ค.

INSERT INTO ํ…Œ์ด๋ธ”๋ช… (์ปฌ๋Ÿผ๋ช…1, ์ปฌ๋Ÿผ๋ช…2 ...) VALUES (๋ฐ์ดํ„ฐ๊ฐ’1, ๋ฐ์ดํ„ฐ๊ฐ’2 ...)

ย ์•ž์„œ DDL ๋ฌธ์„ ์‚ฌ์šฉํ•ด ๋ณด์•˜๋˜ ๊ฒƒ์ฒ˜๋Ÿผ SQL ํ”„๋กฌํ”„ํŠธ์— ๋‹ค์Œ SQL๋ฌธ์„ ์ž‘์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
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, '์ผ€๋ฆฌ์•„');



2. ๐ŸŽž๏ธ UPDATE๋ฌธ

ย 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 ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด '์ด์ƒํ˜'์œผ๋กœ ์ˆ˜์ •๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.



3. โšฐ๏ธ DELETE๋ฌธ

ย DELETE ๋ฌธ์€ INSERT๋ฌธ์œผ๋กœ ์‚ฝ์ž…๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฌธ์žฅ์ž…๋‹ˆ๋‹ค. UPDATE๋ฌธ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ WHERE์ ˆ๋กœ ์กฐ๊ฑด์„ ์ฃผ์–ด ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๋งŒ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ,ย ์ž‘์„ฑ ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

DELETE FROM ํ…Œ์ด๋ธ”๋ช… WHERE ์ปฌ๋Ÿผ๋ช…1='์กฐ๊ฑด๊ฐ’1' AND ์ปฌ๋Ÿผ๋ช…2='์กฐ๊ฑด๊ฐ’2';

ย ๋‹ค์Œ์€ DELETE๋ฌธ์„ ์‚ฌ์šฉํ•œ ์˜ˆ์ œ๋กœ ์ด ์˜ˆ์ œ๋Š” name ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด '์ด์ƒํ˜'์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. SELECT๋ฌธ์„ ์‹คํ–‰ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์ œ๊ฑฐ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DELETE FROM student WHERE name='์ด์ƒํ˜';



4. ๐Ÿ—บ๏ธ SELECT๋ฌธ

ย 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๋ฌธ๋“ค์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๊ธฐ์— ์ด๋ ‡๊ฒŒ ๋ฏธ๋ฆฌ ์ •๋ฆฌ๋ฅผ ํ•ด ๋‘์—ˆ์Šต๋‹ˆ๋‹ค.




3. ๐Ÿšˆ DCL

ย ๋งˆ์ง€๋ง‰์œผ๋กœ DCL์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž์˜ ๊ถŒํ•œ์„ ์ƒ์„ฑ, ์ œ๊ฑฐํ•˜๋Š” ๋“ฑ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

ย ํ•˜์ง€๋งŒ ์ด๋Ÿฐ DCL ๋ฌธ์žฅ๋“ค์€ ์—ฌ๊ธฐ์„œ๋Š” ๋‹ค๋ฃจ์ง€ ์•Š์„ ์˜ˆ์ •์ด๊ธฐ ๋•Œ๋ฌธ์— SQL์ „๋ฌธ ์„œ์ ์ด๋‚˜ ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด ์ฐพ์•„๋ด ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

ย ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ• ๋•Œ DCL์€ ๊ฑฐ์˜ ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ, ์ œ๊ฐ€ ์ง„ํ–‰ํ•  ํฌ์ŠคํŒ…์—์„œ ๋˜ํ•œ ๊ฑฐ์˜ DDL์ด๋‚˜ DML ๋งŒ์„ ๋‹ค๋ฃฐ ์˜ˆ์ •์ด๊ธฐ ๋–„๋ฌธ์ž…๋‹ˆ๋‹ค.


ย ์—ฌ๊ธฐ๊นŒ์ง€ SQL ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ฟผ๋ฆฌ๋ฌธ๋“ค์„ ๋‹ค๋ค„๋ณด์•˜์Šต๋‹ˆ๋‹ค.

ย ๋‹ค์Œ์—๋Š” JDBC Driver ๋กœ PostgreSQL๊ณผ Eclipse๋ฅผ ์—ฐ๊ฒฐํ•œ ํ›„ Eclipse๋‚ด์—์„œ ์œ„์˜ ์ฟผ๋ฆฌ๋ฌธ๋“ค์„ ์‚ฌ์šฉํ•˜์—ฌ PostgreSQL์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ•ธ๋“ค๋ง ํ•˜๋Š” ํฌ์ŠคํŒ…์„ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

profile
์ฝ”๋”ฉํ•˜๋Š” ์ˆ˜ํ•™๊ณผ

0๊ฐœ์˜ ๋Œ“๊ธ€