2022๋…„ 10์›” 11์ผยท5๋ถ„ ์ฝ๊ธฐ

SQL ํ…Œ์ด๋ธ” ์ƒ์„ฑ

SQL๋กœ ์ฝ”๋”ฉํ•  ๋•Œ ๊ฐ€์žฅ ๋จผ์ € ์•Œ์•„์•ผ ํ•  ๊ฒƒ์€ create table ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ ์•Œ์•„์•ผ ํ•  ๋ชจ๋“  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

SQL ํ…Œ์ด๋ธ” ์ƒ์„ฑ

SQL ์€ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์˜ ์ŠคํŠธ๋ฆผ ์ฒ˜๋ฆฌ์— ์‚ฌ์šฉํ•˜๋Š” ๋„๋ฉ”์ธ๋ณ„ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์„ ํ†ตํ•ด ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค์—์„œ ๊ฐ€์žฅ ๋จผ์ € ํ•ด์•ผ ํ•  ์ผ์€ ์ž‘์—…ํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋  ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”์—๋Š” ํ–‰๊ณผ ์—ด์ด ๋ชจ๋‘ ์žˆ์Šต๋‹ˆ๋‹ค.

์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฐ ์—ด๊ณผ ์—ฐ๊ฒฐ๋œ ํŠน์ • ๋ฐ์ดํ„ฐ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋Š” ๋™์•ˆ ๊ฐ ์—ด์˜ ์ด๋ฆ„๊ณผ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. MySQL ๋ฐ PostgreSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋‘์—์„œ SQL CREATE TABLE ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

CREATE TABLE SQL ๋ฌธ์„ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

SQL๋กœ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋‹ค์Œ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ MySQL์—์„œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

CREATE TABLE table_name(

column_1 data_type ๊ธฐ๋ณธ๊ฐ’ column_constraint ,

column_2 data_type ๊ธฐ๋ณธ๊ฐ’ column_constraint ,

...,

โ€ฆ,

table_constraint

);

ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋Š” ๋™์•ˆ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ–์ถ”์–ด์•ผ ํ•  ์‚ฌํ•ญ์€ ํ…Œ์ด๋ธ” ์ด๋ฆ„๊ณผ ์ตœ์†Œํ•œ ํ•˜๋‚˜์˜ ์—ด ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ํŠน์ • ํ…Œ์ด๋ธ” ์ด๋ฆ„ ์„ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์€ ํ•˜๋‚˜๋งŒ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋™์ผํ•œ ์ด๋ฆ„์œผ๋กœ ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๋ ค๊ณ  ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

๋Œ€๊ด„ํ˜ธ ์•ˆ์— ์ž…๋ ฅํ•  ๋ฐ์ดํ„ฐ์˜ ๋ฐ์ดํ„ฐ ์œ ํ˜•๊ณผ ํ•จ๊ป˜ ํ…Œ์ด๋ธ”์— ๋งŒ๋“ค๊ณ ์ž ํ•˜๋Š” ์—ด์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์—ด์˜ ์ด๋ฆ„์€ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. ์ด๋ฆ„, ๋ฐ์ดํ„ฐ ์œ ํ˜•, ์—ด์˜ ๊ธฐ๋ณธ๊ฐ’ ๋ฐ ํ•˜๋‚˜ ์ด์ƒ์˜ ์—ด ์ œํ•œ์ด ๊ฐ ์—ด์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์—ด ์ œ์•ฝ ์กฐ๊ฑด์€ ์—ด์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค์ œ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด NOT NULL ์ œ์•ฝ ์กฐ๊ฑด์€ ํ•ด๋‹น ํŠน์ • ์—ด์— NULL ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ผ ์—ด์— ๋Œ€ํ•ด ๋‘˜ ์ด์ƒ์˜ ์ œ์•ฝ ์กฐ๊ฑด์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์—ด์—๋Š” NOT NULL ๋ฐ UNIQUE ์ œํ•œ์ด ๋ชจ๋‘ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์—ด์— ์ œ์•ฝ ์กฐ๊ฑด์„ ์ ์šฉํ•˜๋ ค๋ฉด ํ…Œ์ด๋ธ” ์ œ์•ฝ ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์ผํ•œ ์˜ˆ๋กœ๋Š” FOREIGN KEY , CHECK ๋ฐ UNIQUE ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ํ…Œ์ด๋ธ”์—๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์—ด๋กœ ๊ตฌ์„ฑ๋œ ๊ธฐ๋ณธ ํ‚ค๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋ณธ ํ‚ค๋Š” ํ…Œ์ด๋ธ”์˜ ๊ฐ ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๊ธฐ๋ณธ ํ‚ค ์—ด์„ ๋จผ์ € ๋‚˜์—ดํ•œ ๋‹ค์Œ ๋‚˜๋จธ์ง€ ์—ด์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐœ ์ด์ƒ์˜ ์—ด๋กœ ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ PRIMARY KEY ์ œ์•ฝ ์กฐ๊ฑด์„ ํ…Œ์ด๋ธ” ์ œ์•ฝ ์กฐ๊ฑด์œผ๋กœ ์„ ์–ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ” ๊ณ ๊ฐ ์ƒ์„ฑ(

ID INT NOT NULL,

์ด๋ฆ„ VARCHAR(20) NOT NULL,

๋‚˜์ด INT๊ฐ€ NULL์ด ์•„๋‹™๋‹ˆ๋‹ค.

๊ธ‰์—ฌ ์‹ญ์ง„์ˆ˜ (18, 2),

๊ธฐ๋ณธ ํ‚ค(ID)

);

์—ฌ๊ธฐ์„œ ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„์€ "CUSTOMERS"์ด๊ณ  ๊ธฐ๋ณธ ํ‚ค๋Š” ID์ž…๋‹ˆ๋‹ค. ID, NAME ๋ฐ AGE ์—ด์—๋Š” NOT NULL ์ œ์•ฝ ์กฐ๊ฑด์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฆ„์˜ ๊ธธ์ด๋Š” 20์ž ๋ฏธ๋งŒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ SQL CREATE TABLE ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ–ˆ์œผ๋ฉฐ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MySQL/PostgreSQL์˜ ํ…Œ์ด๋ธ” ๋‚ด๋ถ€์— ํ…Œ์ด๋ธ”์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

ํ…Œ์ด๋ธ” ๋‚ด๋ถ€์— ํ…Œ์ด๋ธ”์ด ์žˆ๋Š” ๊ฒƒ์„ ํ…Œ์ด๋ธ” ์ค‘์ฒฉ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด SQL CREATE TABLE ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ” ๋‚ด๋ถ€์— ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ MySQL์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ธฐ๋ณธ ํ‚ค์™€ ์™ธ๋ž˜ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘์ฒฉ ํ…Œ์ด๋ธ”์„ ๊ฐ–๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋‘ ํ…Œ์ด๋ธ” ๊ฐ„์— ์ƒ์œ„-ํ•˜์œ„ ๊ด€๊ณ„๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ PRIMARY KEY ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ํ•œ ํ…Œ์ด๋ธ”์˜ ํ•„๋“œ ๋˜๋Š” ํ•„๋“œ ๊ทธ๋ฃน์„ FOREIGN KEY ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ธฐ๋ณธ ํ‚ค๊ฐ€ ์žˆ๋Š” ํ…Œ์ด๋ธ”์„ ์ƒ์œ„ ํ…Œ์ด๋ธ”์ด๋ผ๊ณ  ํ•˜๊ณ  ์™ธ๋ถ€ ํ‚ค๊ฐ€ ์žˆ๋Š” ํ…Œ์ด๋ธ”์„ ํ•˜์œ„ ํ…Œ์ด๋ธ”์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๊ธฐ๋ณธ ํ‚ค๊ฐ€ VehId์ธ ์ƒ์œ„ ํ…Œ์ด๋ธ” Vehicle์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํ‚ค CarId๊ฐ€ ์žˆ๋Š” Car ํ…Œ์ด๋ธ”๊ณผ ๊ธฐ๋ณธ ํ‚ค TruckId๊ฐ€ ์žˆ๋Š” Truck ํ…Œ์ด๋ธ”์ด ๊ฐ๊ฐ ๋‘ ๊ฐœ ๋” ์žˆ์Šต๋‹ˆ๋‹ค. VehId๋ฅผ Car์™€ Truck ๋ชจ๋‘์— ์™ธ๋ž˜ ํ‚ค๋กœ ์ž…๋ ฅํ•˜๋ฉด Vehicle์ด ๋ถ€๋ชจ ํ…Œ์ด๋ธ”์ด ๋˜์–ด ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

์ƒ์œ„ ํ…Œ์ด๋ธ” ์ฐจ๋Ÿ‰ {VehId}

์ž์‹ ํ…Œ์ด๋ธ”

1. ์ž๋™์ฐจ {VehId,CarId}

2. ํŠธ๋Ÿญ {VehId,TruckId}

๋จผ์ € ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  SQL ํ…Œ์ด๋ธ”๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํƒํ•˜๊ธฐ ์œ„ํ•ด SELECT ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ๋Š” ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์ด๋ผ๋Š” ๊ฒฐ๊ณผ ํ…Œ์ด๋ธ”์— ๋ณด๊ด€๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ…Œ์ด๋ธ”์˜ ์ผ๋ถ€ ๋˜๋Š” ์ „์ฒด ํ…Œ์ด๋ธ”์„ ์„ ํƒํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋”ฉ ์ค‘์ด๊ณ  SQL CREATE TABLE ๋ช…๋ น์œผ๋กœ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•œ ๊ฒฝ์šฐ SELECT ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑํ•œ ํ…Œ์ด๋ธ”์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

SELECT column_1, column_2, โ€ฆ

ํ…Œ์ด๋ธ” ์ด๋ฆ„์—์„œ;

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ๋ช…๋ น์€ ์ „์ฒด ํ…Œ์ด๋ธ”์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

SELECT * FROM table_name;

์„ ํƒ

ํ•œ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋Š” SELECT INTO ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ํ•œ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์—ด์„ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”๋กœ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณต์‚ฌ๋˜๋Š” ํ…Œ์ด๋ธ”์ด ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์—ด์„ ์„ ํƒํ•˜๋ ค๋ฉด:

๊ณ ๋ฅด๋‹ค *

INTO new_table [IN ์™ธ๋ถ€DB]

FROM old_table

WHERE ์กฐ๊ฑด;

์ƒˆ ํ…Œ์ด๋ธ”์—์„œ ๋ช‡ ๊ฐœ์˜ ์—ด๋งŒ ์„ ํƒํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

SELECT column_1, column_2, column_3, ...

INTO new_table [IN ์™ธ๋ถ€DB]

FROM old_table

WHERE ์กฐ๊ฑด;

๊ทธ๋ ‡๋‹ค๋ฉด ์•„์ง SQL CREATE TABLE์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ…Œ์ด๋ธ”์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋…ผ๋ฆฌ์ ์œผ๋กœ ๋Œ€๋‹ต์€ ์•„๋‹ˆ์˜ค์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์‚ฌ์‹ค์ด ์•„๋‹ˆ๋ฉฐ ์•„์ง ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋„ ํ…Œ์ด๋ธ”๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•˜๊ณ  ํ•œ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑ๋œ ํ…Œ์ด๋ธ”๋กœ ์ „์†กํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒํ•œ ์—ด๊ณผ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜•์ด ์ƒˆ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

SQL์—์„œ ์ œํ’ˆ ํ…Œ์ด๋ธ”์„ ์–ด๋–ป๊ฒŒ ์ƒ์„ฑํ•ฉ๋‹ˆ๊นŒ?

SQL์˜ ์ œํ’ˆ ํ…Œ์ด๋ธ”์€ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SQL CREATE TABLE ๋ฌธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ํ•˜๋‚˜์˜ ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ์ œํ’ˆ ์ •๋ณด๋Š” ์ด ๋ช…๋ น๋ฌธ์ด ์ƒ์„ฑํ•  ํ…Œ์ด๋ธ”์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. SELECT ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  ๊ฐ€์ ธ์˜ฌ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋‘˜์˜ ๊ตฌ๋ฌธ์€ ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

INSERT ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”์— ์‚ฝ์ž…ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. INSERT ๋ฌธ ๋•๋ถ„์— ํ…Œ์ด๋ธ”์˜ ์ง€์ •๋œ ์œ„์น˜์— ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฝ์ž…๋ฉ๋‹ˆ๋‹ค. SELECT ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ ๋‹ค์Œ INSERT ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์— ์ง‘์–ด ๋„ฃ๋‹ค

INSERT INTO ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ”์— ์ƒˆ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. INSERT ๋ฌธ์˜ ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

INSERT INTO table_name(column_1, column_2, ...)

๊ฐ’(๊ฐ’_1, ๊ฐ’_2, ...);

์ œํ’ˆ ํ…Œ์ด๋ธ”์„ ๋‹ค๋ฅด๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋™์ผํ•œ ์ œํ’ˆ์˜ ๋””์ž์ธ ์ธก๋ฉด์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์ œํ’ˆ ์ด๋ฆ„, ๋ชจ๋ธ, ํด๋ž˜์Šค, ๋ชจ๋ธ ์—ฐ๋„ ๋ฐ ์ •๊ฐ€๊ฐ€ ๋ชจ๋‘ ์ œํ’ˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํ•ญ๋ชฉ์€ ๋ธŒ๋žœ๋“œ ID ์—ด๋กœ ์‹๋ณ„๋˜๋Š” ๋ธŒ๋žœ๋“œ์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ธŒ๋žœ๋“œ๋Š” ํ•˜๋‚˜ ๋˜๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ œํ’ˆ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ œํ’ˆ์€ ํ…Œ์ด๋ธ”์—์„œ ์นดํ…Œ๊ณ ๋ฆฌ ID๋กœ ์‹๋ณ„๋˜๋Š” ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ตฌ์„ฑ์›์ž…๋‹ˆ๋‹ค.

SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ํ•ฉํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

SQL CREATE TABLE ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ ์—ด์˜ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์–ธ๊ธ‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ด์— ํฌํ•จ๋  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ด ๋ฐ์ดํ„ฐ ์œ ํ˜•์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์˜ˆ์—๋Š” ์ •์ˆ˜, ๋ฌธ์ž, ์ด์ง„์ˆ˜, ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ๋“ฑ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์—๋Š” ๋ชจ๋“  ์—ด์— ๋Œ€ํ•œ ์ด๋ฆ„๊ณผ ๋ฐ์ดํ„ฐ ์œ ํ˜•์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ”์„ ์ž‘์„ฑํ•  ๋•Œ SQL ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ๊ฐ ์—ด์— ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋  ๊ฒƒ์ธ์ง€ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์œ ํ˜•์€ SQL์ด ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์™€ ์ธํ„ฐํŽ˜์ด์Šคํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์—ด์— ์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ˆ์ƒ๋˜๋Š”์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. MySQL 8.0์˜ ์„ธ ๊ฐ€์ง€ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ์œ ํ˜•์€ ๋ฌธ์ž์—ด, ์ˆซ์ž, ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค.

๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ ์œ ํ˜•

๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ ์œ ํ˜•์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์˜์–ด ์•ŒํŒŒ๋ฒณ์— ์†ํ•˜๋Š” ๋ฌธ์ž ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ์ฃผ์š” ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ ์œ ํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ฌธ์ž(ํฌ๊ธฐ)
  • VARCHAR(ํฌ๊ธฐ)
  • ๋ฐ”์ด๋„ˆ๋ฆฌ(ํฌ๊ธฐ)
  • VARBINARY(ํฌ๊ธฐ)
  • ํƒ€์ด๋‹ˆ๋ธ”๋กญ
  • ํƒ€์ด๋‹ˆํ…์ŠคํŠธ
  • ํ…์ŠคํŠธ(ํฌ๊ธฐ)
  • BLOB(ํฌ๊ธฐ)
  • ์ค‘๊ฐ„ ํ…์ŠคํŠธ
  • ๋ฏธ๋””์—„๋ธ”๋กญ
  • ๊ธด ํ…์ŠคํŠธ
  • ๋กฑ๋ธ”๋กญ
  • ENUM(๋ฐœ_1, ๋ฐœ_2, ๋ฐœ_3, ...)
  • SET(๋ฐœ_1, ๋ฐœ_2, ๋ฐœ_3, ...)

์—ฌ๊ธฐ์„œ SIZE ๋Š” ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ทจํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ํฌ๊ธฐ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. CHAR ์€ ๊ณ ์ • ๊ธธ์ด์˜ ๋ฌธ์ž์—ด์ด๊ณ  VARCHAR ์€ ๊ฐ€๋ณ€ ๋ฌธ์ž์—ด ๊ธธ์ด์˜ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ ์œ ํ˜•์ž…๋‹ˆ๋‹ค. BLOB ๋Š” Binary Large Object์ž…๋‹ˆ๋‹ค.

์ˆซ์ž ๋ฐ์ดํ„ฐ ์œ ํ˜•

์ˆซ์ž ๋ฐ์ดํ„ฐ ์œ ํ˜• ๋ณ€์ˆ˜๋Š” ์ˆซ์ž ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์œ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์€ ๋‘ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ ์œ ํ˜•(์ •ํ™•ํ•จ ๋ฐ ๊ทผ์‚ฌ์น˜)์œผ๋กœ ๋” ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ ์œ ํ˜•์€ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ๋ฆฌํ„ฐ๋Ÿด ํ˜•์‹์œผ๋กœ ์œ ์ง€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์‹ค์ˆ˜๋Š” ๊ทผ์‚ฌ ๋ฐ์ดํ„ฐ ์œ ํ˜•์— ํฌํ•จ๋˜์ง€๋งŒ ์ •๋ณด๋Š” ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ์‹ค์ œ ๊ฐ’์˜ ๋ณต์‚ฌ๋ณธ์œผ๋กœ ์ €์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฃผ์š” ์ˆซ์ž ๋ฐ์ดํ„ฐ ์œ ํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋น„ํŠธ(ํฌ๊ธฐ)\
  • TINYINT(ํฌ๊ธฐ)
  • ๋ถˆ
  • ๋ถ€์šธ
  • SMALLINT(ํฌ๊ธฐ)
  • MEDIUMINT(ํฌ๊ธฐ)
  • INT(ํฌ๊ธฐ)
  • ์ •์ˆ˜(ํฌ๊ธฐ)
  • BIGINT(ํฌ๊ธฐ)
  • FLOAT(ํฌ๊ธฐ, d)
  • ํ”Œ๋กœํŠธ(p)
  • ๋”๋ธ”(์‚ฌ์ด์ฆˆ, d)
  • ์ด์ค‘ ์ •๋ฐ€๋„(ํฌ๊ธฐ, d)
  • DECIMAL(ํฌ๊ธฐ, d)
  • DEC(ํฌ๊ธฐ, d)

๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ˆซ์ž ๋ฐ์ดํ„ฐ ์œ ํ˜•์€ INT ์ž…๋‹ˆ๋‹ค. 10์ง„์ˆ˜๊ฐ€ ์•„๋‹Œ ์ˆซ์ž๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ˜๋ฉด ๋ฐ์ดํ„ฐ ์œ ํ˜•์ด FLOAT ์ธ ๋ณ€์ˆ˜๋Š” 10์ง„์ˆ˜๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. BOOL ๋ฐ์ดํ„ฐ ์œ ํ˜•์—์„œ 0์€ FALSE ๋กœ ๊ฐ„์ฃผ๋˜๊ณ  0์ด ์•„๋‹Œ ๊ฐ’์€ TRUE ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

๋‚ ์งœ์™€ ์‹œ๊ฐ„

๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์œ ํ˜•์€ ๋‚ ์งœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์œ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฃผ์š” ๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„ ๋ฐ์ดํ„ฐ ์œ ํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ฐ์ดํŠธ
  • DATETIME(fsp)
  • ํƒ€์ž„์Šคํƒฌํ”„(fsp)
  • ์‹œ๊ฐ„(fsp)
  • ๋…„๋„

SQL ์„œ๋ฒ„ ๋ฐ์ดํ„ฐ ์œ ํ˜•์€ ์œ„์— ์ œ๊ณต๋œ ๋ฐ์ดํ„ฐ ์œ ํ˜•๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ ์•ฝ๊ฐ„์˜ ๊ตฌ๋ฌธ์  ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

SQL ์„œ๋ฒ„์˜ ๋ณ€์ˆ˜ ์œ ํ˜•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋ชจ๋ฐ”์ผ ์•ฑ์„ ๋น ๋ฅด๊ฒŒ ์ถ”๊ฐ€
๋ฐฑ์—”๋“œ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋„ค์ดํ‹ฐ๋ธŒ iOS ๋ฐ Android ์•ฑ์„ ๋น ๋ฅด๊ฒŒ ๋ฐฐํฌํ•˜์„ธ์š”.
๋ชจ๋ฐ”์ผ ์•ฑ ๋งŒ๋“ค๊ธฐ

MS SQL ์„œ๋ฒ„์—๋Š” ๋‘ ๊ฐ€์ง€ ๋ฒ”์ฃผ์˜ ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง€์—ญ๋ณ€์ˆ˜

์‚ฌ์šฉ์ž๊ฐ€ ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค. ํ•ญ์ƒ @๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์ง€์—ญ ๋ณ€์ˆ˜์˜ ๋ฒ”์œ„๋Š” ํ˜„์žฌ ํŠน์ • ์„ธ์…˜ ๋‚ด์—์„œ ์‹คํ–‰ ์ค‘์ธ ์ผ๊ด„ ์ฒ˜๋ฆฌ ๋˜๋Š” ํ”„๋กœ์„ธ์Šค๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. Transact-SQL ๋กœ์ปฌ ๋ณ€์ˆ˜๋Š” ํŠน์ • ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ ๊ฐ’๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ข…์˜ ๊ฐœ์ฒด์ž…๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ์™€ ๋ฐฐ์น˜๋Š” ์ž์ฃผ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

  • ๋ฃจํ”„์˜ ๋ฐ˜๋ณต ์†๋„๋ฅผ ๊ด€๋ฆฌํ•˜๊ฑฐ๋‚˜ ๋ฃจํ”„๊ฐ€ ์‹คํ–‰๋œ ํšŸ์ˆ˜๋ฅผ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด ์นด์šดํ„ฐ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ๋ฆ„ ์ œ์–ด ๊ฒ€์‚ฌ๋ฅผ ํ†ต๊ณผํ•  ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ํ•จ์ˆ˜ ๋ฐ˜ํ™˜ ๊ฐ’์ด ๋ฐ˜ํ™˜ํ•  ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ „์—ญ ๋ณ€์ˆ˜

์‹œ์Šคํ…œ์€ ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋Š” ๊ณต๊ฐœํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. @@๋Š” ์ „์—ญ ๋ณ€์ˆ˜๊ฐ€ ์‹œ์ž‘๋˜๋Š” ์œ„์น˜์ž…๋‹ˆ๋‹ค. ์„ธ์…˜์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๋ณ€์ˆ˜ ์„ ์–ธ

๋ฐฐ์น˜ ๋˜๋Š” ํ”„๋กœ์„ธ์Šค์—์„œ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜๋ฉด ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜ ๋Œ€์ฒด ๋ณ€์ˆ˜๋Š” DECLARE ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ ์–ธ๋ฉ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜๋Š” ๋‹ค์Œ ์ผ๊ด„ ์ฒ˜๋ฆฌ ๋˜๋Š” ์ ˆ์ฐจ ๋‹จ๊ณ„์—์„œ ์„ ์–ธ๋œ ํ›„์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” TSQL ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

DECLARE { @LOCAL_VARIABLE[AS] ๋ฐ์ดํ„ฐ ์œ ํ˜• [ = ๊ฐ’ ] }

ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋œ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๊ฒฐ์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  • DECLARE ํ‚ค์›Œ๋“œ๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋Š” ๊ณผ์ •์—์„œ
  • SET ์‚ฌ์šฉ
  • ์„ ํƒ ์‚ฌ์šฉ

SQL์—์„œ ๋ฐ์ดํ„ฐ ์œ ํ˜•์ด ์ค‘์š”ํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์Šคํ‚ค๋งˆ์—์„œ API ์ƒ์„ฑ
๋ฐ์ดํ„ฐ ๋ชจ๋ธ์—์„œ ์‹ค์ œ Go ๋ฐฑ์—”๋“œ ์†Œ์Šค ์ฝ”๋“œ์™€ API ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ƒ์„ฑํ•˜์„ธ์š”.
์ฝ”๋“œ ์ƒ์„ฑ

๋ฐ์ดํ„ฐ ์œ ํ˜•์€ C์™€ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋“  SQL๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ์–ธ์–ด์ด๋“  ๋ชจ๋“  ์ฝ”๋”ฉ ์–ธ์–ด์˜ ํ•„์ˆ˜ ๊ตฌ์„ฑ ์š”์†Œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ SQL์€ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ์˜ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” 30๊ฐœ ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋‹ค์–‘ํ•œ SQL ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ํ™•์‹คํžˆ ์ดํ•ดํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค.

ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด์— ๋ณด์œ ํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด์˜ ์ข…๋ฅ˜๋Š” SQL ๋ฐ์ดํ„ฐ ์œ ํ˜•์œผ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์—ด์—๋Š” ์ด๋ฆ„๊ณผ ๋ฐ์ดํ„ฐ ์œ ํ˜•์ด ์žˆ์œผ๋ฉฐ ๋ชจ๋“  ํ…Œ์ด๋ธ”์—๋Š” ์—ด์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ์–ธ์–ด์˜ ์ค‘์ถ”๋ฅผ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๋ฐ์ดํ„ฐ ์œ ํ˜•์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์—์„œ ์ง€์›๋˜๋Š” ๊ฒƒ์€ ์•„๋‹˜์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํŠน์ • ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Oracle์—์„œ๋Š” ์ด ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ DateTime์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ MySQL์€ ์œ ๋‹ˆ์ฝ”๋“œ๋ฅผ ๋ฐ์ดํ„ฐ ์œ ํ˜•์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์žˆ๋Š” ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Microsoft SQL Server์˜ "money" ๋ฐ "smallmoney"๋Š” "float" ๋ฐ "real"์„ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋Ÿฌํ•œ ์šฉ์–ด๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋ฉฐ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์—๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋•Œ๋•Œ๋กœ ํŠน์ • ๋ฐ์ดํ„ฐ ์œ ํ˜•์€ ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋‹ค์–‘ํ•œ ์ด๋ฆ„์œผ๋กœ ์ฐธ์กฐ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Oracle์€ "์‹ญ์ง„์ˆ˜"๋ฅผ "์ˆซ์ž"๋กœ, "๋ธ”๋กญ"์„ "์›์‹œ"๋กœ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์ด ๋™์ผํ•œ ๊ธฐ๋ณธ ํ‚ค๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ. ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์—์„œ ๊ธฐ๋ณธ ํ‚ค๋Š” ๋™์ผํ•œ ์—ด ์ด๋ฆ„์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ” ๋‚ด์—์„œ ์—ด ์ด๋ฆ„์€ ๊ตฌ๋ณ„๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—”ํ‹ฐํ‹ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๊ฒฐ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ…Œ์ด๋ธ”์—๋Š” ๊ธฐ๋ณธ ํ‚ค๊ฐ€ ํ•˜๋‚˜๋งŒ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ํ…Œ์ด๋ธ”์—๋Š” ๊ธฐ๋ณธ ํ‚ค๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ํ•„์ˆ˜๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ํ‚ค๋กœ ์ง€์ •๋œ ์—ด ๋•๋ถ„์— ๋‘ ๊ฐœ์˜ ํ–‰์ด ๋™์ผํ•œ ๊ธฐ๋ณธ ํ‚ค๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ•œ ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ๋‘ ๋ฒˆ์งธ ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธ ํ‚ค์˜ ์ผ๋ถ€๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ํ‚ค์—์„œ "์ˆœ์„œ ๊ธฐ์ค€"์„ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๊นŒ?

๋ฐฐํฌ ์˜ต์…˜ ์„ ํƒ
AppMaster Cloud, AWS, Azure, Google Cloud์— ๋ฐฐํฌํ•˜๊ฑฐ๋‚˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋‚ด๋ณด๋‚ด์„ธ์š”.
์•ฑ ๋ฐฐํฌ

ORDER BY ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์„ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์˜ค๋ฆ„์ฐจ์ˆœ ๋˜๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ ˆ์ฝ”๋“œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ORDER BY ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค. DESC ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ญ๋ชฉ์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ๋ฌธ ๊ตฌ๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

SELECT column_1, column_2, ...

ํ…Œ์ด๋ธ” ์ด๋ฆ„์—์„œ

ORDER BY column_1, column_2, ... ASC|DESC;

์˜ˆ๋ฅผ ๋“ค์–ด Users๋ผ๋Š” ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ๋„์‹œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ๋˜๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SELECT * FROM ์‚ฌ์šฉ์ž

๋„์‹œ๋ณ„ ์ฃผ๋ฌธ

๊ฐ™์€ ๊ฒƒ์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋ ค๋ฉด:

SELECT * FROM ์‚ฌ์šฉ์ž

๋„์‹œ๋ณ„ ์ฃผ๋ฌธ DESC;

๊ธฐ๋ณธ ํ‚ค์— ๋Œ€ํ•œ ORDER BY

"RollID"์™€ ๊ฐ™์€ ๊ธฐ๋ณธ ํ‚ค ์ด๋ฆ„์— ํ‰์†Œ์™€ ๊ฐ™์ด ORDER BY๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

SELECT * FROM my_table WHERE col_1 < 5 ORDER BY RollID;

์ฟผ๋ฆฌ ์ตœ์ ํ™” ํ”„๋กœ๊ทธ๋žจ์€ ์ฟผ๋ฆฌ๋ฅผ ํ‰๊ฐ€ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ORDER BY๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์— ๋Œ€ํ•ด ํ™œ์„ฑ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋Œ€์‹  ๊ธฐ๋ณธ ํ‚ค ์ธ๋ฑ์Šค ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •๋ ฌ์„ ๋ถ„์„ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•  ์ˆ˜๋„ ์žˆ๊ณ  ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

MySQL InnoDB๋Š” ๊ธฐ๋ณธ ๊ธฐ๋ณธ ํ‚ค ์ˆœ์„œ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํ…Œ์ด๋ธ”์„ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ORDER BY ์ ˆ์ด ์—†๋Š” ๋‹จ์ผ ํ…Œ์ด๋ธ” ์ฟผ๋ฆฌ์˜ ๋Œ€๋ถ€๋ถ„์€ ๊ธฐ๋ณธ ํ‚ค ์ˆœ์„œ๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ๊ธฐ๋ณธ ํ‚ค ์ˆœ์„œ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ORDER BY๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ ๊ฐœ๋ฐœ ์—†์Œ

์ƒํ’ˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์ถ•
๊ด€๊ณ„์™€ ์ƒ์„ฑ๋œ ์•ฑ์„ ์‚ฌ์šฉํ•ด ์นดํ…Œ๊ณ ๋ฆฌ์™€ ๋ธŒ๋žœ๋“œ๊ฐ€ ํฌํ•จ๋œ ์ƒํ’ˆ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“œ์„ธ์š”.
์นดํƒˆ๋กœ๊ทธ ๋งŒ๋“ค๊ธฐ

๋…ธ์ฝ”๋“œ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์€ ์ฝ”๋”ฉ์˜ ๋ฏผ์ฃผํ™”๋ฅผ ์ด‰์ง„ํ•˜๋Š” ์ฃผ์š” ์š”์ธ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์š”์ฆ˜์—๋Š” ์ฝ”๋”ฉ์„ ๋ชฐ๋ผ๋„ ์›์น™์ ์œผ๋กœ ์ปดํ“จํŒ…์— ์ ‘๊ทผํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋งŽ์•„์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜์‘ํ˜• ์›น์‚ฌ์ดํŠธ ๋ฐ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ•์„ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

AppMaster๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ํ•ญ์ƒ ๋ณด๊ณ  ๊ฒ€ํ† ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AppMaster์—์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฝ”๋“œ๋ฅผ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ AppMaster๋กœ ๊ฐœ๋ฐœ ์ค‘์ธ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ „์ ์œผ๋กœ ๊ท€ํ•˜์˜ ํ†ต์ œ์™€ ์†Œ์œ ๊ถŒ ๋‚ด์— ์žˆ๋‹ค๋Š” ์•ฝ์†์ž…๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

SQL์—๋Š” ๋งค์šฐ ๋งค๋ ฅ์ ์ธ ์—ฌ๋Ÿฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ํ†ตํ•ฉ ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ, ๋ถ„์„ ์ฟผ๋ฆฌ ์„ค๊ณ„ ๋ฐ ์‹คํ–‰, ํ†ต์ฐฐ๋ ฅ ๋ฐ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ ํ•˜์œ„ ์ง‘ํ•ฉ์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋ชฉ์  ์ค‘ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ์˜ ํ–‰๊ณผ ์—ด์„ ์‚ฝ์ž…, ์ˆ˜์ • ๋ฐ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SQL์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ ์ „์— ๊ธฐ๋ณธ ๋ช…๋ น๊ณผ ๊ตฌ๋ฌธ์— ์ต์ˆ™ํ•ด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์œ„์˜ ๊ธฐ์‚ฌ๋ฅผ ํ†ตํ•ด ์šฐ๋ฆฌ๋Š” CREATE TABLE, INSERT INTO, SELECT ๋“ฑ๊ณผ ๊ฐ™์ด SQL์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ๋ช…๋ น๋ฌธ์— ๋Œ€ํ•ด ๋” ๋งŽ์ด ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‰ฌ์šด ์‹œ์ž‘
๋ฉ‹์ง„๋งŒ๋“ค๊ธฐ

๋ฌด๋ฃŒ ์š”๊ธˆ์ œ๋กœ AppMaster๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.
์ค€๋น„๊ฐ€ ๋˜๋ฉด ์ ์ ˆํ•œ ๊ตฌ๋…์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๋‹ค
SQL ํ…Œ์ด๋ธ” ์ƒ์„ฑ | AppMaster