๐ŸŒ Web/์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ [MySQL ์ด๋ก ]

Kyle99 2022. 9. 20. 20:45

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ž€?

์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ „๋ฌธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

 

์ง€๊ธˆ๊นŒ์ง€ File์„ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜์˜€๋‹ค.

File์€ ๊ฐ€์žฅ ์›์‹œ์ ์ด๊ณ  ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ์ˆ˜๋‹จ์ด๋‹ค.

๊ฐ€์žฅ ํฐ ์žฅ์ ์€ ์–ด๋””์—์„œ๋‚˜ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๋ฌด์–ธ๊ฐ€๋ฅผ ์„ค์น˜ํ•  ํ•„์š”๋„ ์—†๋‹ค.

์‹ฌํ”Œํ•˜๊ธฐ ๋•Œ๋ฌธ์— File์„ ์ดํ•ดํ•˜๋Š”๋ฐ ์–ด๋ ต์ง€ ์•Š๋‹ค.

ํ•˜์ง€๋งŒ, ์•ž์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” DATABASE๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

DATABASE๋Š” File์˜ ์žฅ์ ์— ๋น„ํ•ด์„œ๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

์ผ๋‹จ DATABASE์— ๋Œ€ํ•œ ์ดํ•ด์™€ ๊ณต๋ถ€๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, ๋ฌด์–ธ๊ฐ€๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•˜๊ธฐ๋„ ํ•˜๋‹ค.

๋ฌด์–ธ๊ฐ€๋ฅผ ์„ค์น˜ํ•  ๋•Œ ๊ณ ๋ฏผ๋„ ๋งŽ์ด ํ•ด์•ผ ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ, ๊ถ๊ทน์ ์œผ๋กœ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ๋•Œ๋Š” File์ด ์•„๋‹Œ DATABASE๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

DATABASE์˜ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1. ์•ˆ์ „ํ•˜๋‹ค.
File์„ ์ด์šฉ์„ ํ•œ๋‹ค๋ฉด, ๋ˆ„๊ตฐ๊ฐ€ File์„ ์—ด๋žŒํ•˜๋ฉด ๊ทธ ์•ˆ์˜ ์ •๋ณด๋ฅผ ์ „๋ถ€ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.
ํ•˜์ง€๋งŒ, DATABASE๋Š” ์ผ์ข…์˜ ๊ธˆ๊ณ  ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค.
2. ๋น ๋ฅด๋‹ค(์ธ๋ฑ์Šค).
DATABASE๋Š” ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ์ •๋ณด๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๋ฏธ๋ฆฌ ์ •๋ฆฌ๋ฅผ ํ•œ๋‹ค.
๊ทธ๋ ‡๊ธฐ์— ์–ด๋–ค ์ •๋ณด๋ฅผ ์ฐพ์„ ๋•Œ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.
3. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์  ์ œ์–ด ๊ฐ€๋Šฅ
DATABASE๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ํฐ ์ด์œ ์ด๋‹ค.
ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ ์œผ๋กœ ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด๋‹ค ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

DataBase์—์„œ๋Š” ์—ฌ๋Ÿฌ ์ฒด๊ณ„๊ฐ€ ์žˆ๋‹ค.

๊ทธ์ค‘์—์„œ ์˜ค๋Š˜๋‚  ๊ฐ€์žฅ ๋ณดํŽธ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์ฒด๊ณ„๋Š” '๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค'์ด๋‹ค.

์ด๋Ÿฐ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์†ํ•˜๋Š” ๊ตฌ์ฒด์ ์ธ ์ œํ’ˆ์—๋Š” MySQL,MSSQL,Oracle ๋“ฑ์ด ์žˆ๋‹ค.

์ง€๊ธˆ ์•Œ์•„๋ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” MySQL์ด๋‹ค.

MySQL์„ ์•Œ์•„๋‘๋ฉด, ๋‹ค๋ฅธ MSSQL์ด๋‚˜ Oracle๋“ฑ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ๋„ ๋งค์šฐ ์ˆ˜์›”ํ•˜๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋“ค์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋™์ž‘๋ฐฉ๋ฒ•์ด ๋งค์šฐ ๋น„์Šทํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋˜ํ•œ MySQL์„ ๋งŒ๋“ค์—ˆ๋˜ ํšŒ์‚ฌ MySQL AB์—์„œ SUN์ด๋ผ๋Š” Java๋ฅผ ๋งŒ๋“ค์—ˆ๋˜ ํšŒ์‚ฌ์—๊ฒŒ ํšŒ์‚ฌ๋ฅผ ํŒ”๊ฒŒ ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  SUN์€ Oracle์ด๋ผ๊ณ  ํ•˜๋Š” Oracle Database๋ฅผ ๋งŒ๋“  ํšŒ์‚ฌ์—๊ฒŒ ์ธ์ˆ˜๋‹นํ•˜๊ฒŒ ๋œ๋‹ค.

๊ทธ๋ ‡๊ธฐ์— ์ง€๊ธˆ MySQL์€ Oracle์˜ ํšŒ์‚ฌ์—์„œ ์šด์˜๋˜๊ณ  ์žˆ๋‹ค.

๊ทธ ๊ณผ์ •์—์„œ MySQL์„ ๋งŒ๋“  ์—”์ง€๋‹ˆ์–ด๋“ค์ด Oracle์˜ ์ •์ฑ…์— ๋Œ€ํ•œ ๋ฐ˜๋ฐœ๋กœ ๋‚˜์™€์„œ,

์ƒˆ๋กœ์šด DataBase๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋˜๋Š”๋ฐ, ๊ทธ๊ฒƒ์ด MariaDB์ด๋‹ค.

MariaDB๋Š” MySQL๊ณผ ์™„๋ฒฝํ•˜๊ฒŒ ํ˜ธํ™˜์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—,

MySQL์„ ์‚ฌ์šฉํ•  ์ค„ ์•Œ๊ฒŒ ๋œ๋‹ค๋ฉด, MariaDB๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๋œป์ด๋‹ค.


DataBase๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ ํ‚ค์›Œ๋“œ๋Š” structured์ด๋‹ค.

structured๋Š” ๊ตฌ์กฐํ™”๋œ ์ด๋ผ๋Š” ๋œป์ด๋‹ค.

๊ตฌ์กฐํ™”๋œ ์˜ ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ์‚ฌ๋ก€๋Š” ํ‘œ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ‘œ๋Š” ์˜์–ด๋กœ table์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๋Ÿฌํ•œ table System์€ ์ด๋ฏธ ๋Œ€์ค‘์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š”๋ฐ ๊ทธ๊ฑด ๋ฐ”๋กœ Excel์ด๋‹ค.

Excel๊ณผ DataBase์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์€ SQL์— ์žˆ๋‹ค.

DataBase์—๋Š” SQL์ด ์žˆ๊ณ , Excel์—๋Š” SQL์ด ์—†๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด SQL์€ ๋ฌด์Šจ ์˜๋ฏธ ์ผ๊นŒ

Structured Query Language
Structured = ๊ตฌ์กฐํ™”๋œ.(ํ‘œ์™€ ๊ฐ™์€ ์ •๋ณด)
Query = ์งˆ์˜ํ•˜๋‹ค. ์งˆ๋ฌธํ•˜๋‹ค.
Language = ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

์ฆ‰, ์ปดํ“จํ„ฐ์—๊ฒŒ ๊ตฌ์กฐํ™”๋œ ์ •๋ณด๋ฅผ ์งˆ์˜ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด

MySQL์€ Server์™€ Client์˜ ๊ตฌ์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

Client๊ฐ€ Server์—๊ฒŒ ์–ด๋–ค ์ •๋ณด๋ฅผ ์š”์ฒญํ•œ๋‹ค๋ฉด,

Server๋Š” Client์—๊ฒŒ Server์— ์ €์žฅ๋˜์–ด์žˆ๋Š” ๋‚ด์šฉ์„ ๊บผ๋‚ด์„œ ๋ณด๋‚ด์ฃผ๊ฒŒ ๋œ๋‹ค.

MySQL์—์„œ์˜ ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ ๊ธฐ์ˆ ์€ Server ์ชฝ ๊ธฐ์ˆ ์ด๋‹ค.

์ •๋ณด๋ฅผ ์–ผ๋งˆ๋‚˜ ์ฒด๊ณ„์ ์œผ๋กœ ์ž˜ ๊ด€๋ฆฌํ•˜๋Š”์ง€๊ฐ€ ์ œ์ผ ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

Client๋Š” ๋‹ค์–‘ํ•œ Client๊ฐ€ ์žˆ๋‹ค.

๊ทธ์ค‘ MySQL monitor์ด๋ผ๋Š” Client๋ฅผ ์‚ฌ์šฉํ•ด MySQL server์„ ๊ด€๋ฆฌํ•  ๊ฒƒ์ด๋‹ค.

MySQL monitor์€ MySQL์„ ์„ค์น˜ํ•˜๋ฉด Server์™€ ํ•จ๊ป˜ ์„ค์น˜๋˜๋Š” ๊ธฐ๋ณธ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.


MySQL์€ ํ„ฐ๋ฏธ๋„(๋ช…๋ น ํ”„๋กฌํ”„ํŠธ)์„ ํ†ตํ•ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๋จผ์ €, MySQL์ด ์„ค์น˜๋˜์–ด์žˆ๋Š” ํด๋”๋กœ ํ„ฐ๋ฏธ๋„ ์œ„์น˜๋ฅผ ์˜ฎ๊ธด ๋‹ค์Œ, mysql -hlocalhost -uroot -p ์นœ๋‹ค์Œ enter์„ ๋ˆ„๋ฅด๊ฒŒ ๋˜๋ฉด,

์ดˆ๊ธฐ์— ์„ค์ •ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์ฐฝ์ด ๋‚˜์˜จ๋‹ค. ๊ทธ๋•Œ ์ดˆ๊ธฐ ์„ค์ •ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด, ํ˜„์žฌ MySQL DataBase์— ๋“ค์–ด์˜จ ๊ฒƒ์ด๋‹ค.

์—ฌ๊ธฐ์„œ show database๋ฅผ ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด, ํ˜„์žฌ database๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

์ด์ œ ๋‹ค์–‘ํ•œ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ๋ฒ•์„ ์•Œ์•„๋ณด์ž.

๋ฌธ๋ฒ• ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„๊ณผ ๋ฌธ๋ฒ• ์šฉ์–ด๋ฅผ ๊ตฌ๋ถ„ ์ง“๊ธฐ ์œ„ํ•ด์„œ ๋ฐฑ ํ‹ฑ(Backtick)์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•œ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณด๊ธฐ
→ show databases;

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ
→ CREATE DATABASE (๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„) CHARACTER SET utf8 COLLATE utf8_general_ci;

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ ํƒ
→ use (๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๋ฆ„);

ํ…Œ์ด๋ธ” ์ƒ์„ฑ
CREATE TABLE `topic` ( → ํ…Œ์ด๋ธ” ์ด๋ฆ„์„ topic์œผ๋กœ ์ƒ์„ฑ
`id` int(11) NOT NULL AUTO_INCREMENT, → id๊ฐ’์€ ์ •์ˆ˜์ด๋ฉฐ 1๋ถ€ํ„ฐ ์ฐจ๋ก€๋กœ ์˜ค๋ฆ„. ๊ฐ’์ด ์—†์„ ์ˆ˜ ์—†์Œ.
`title` varchar(100) NOT NULL, → title์˜ ๊ธ€์ž ์ˆ˜๋Š” 100๊ธ€์ž ์ดํ•˜, ๊ฐ’์ด ์—†์„ ์ˆ˜ ์—†์Œ
`description` text NOT NULL, → description์€ textํ˜•์‹์ด๋ฉฐ ๊ฐ’์ด ์—†์„์ˆ˜ ์—†์Œ
`author` varchar(30) NOT NULL, → author์€ ๊ธ€์ž์ˆ˜ 30 ์ดํ•˜, ๊ฐ’์ด ์—†์„์ˆ˜ ์—†์Œ
`created` datetime NOT NULL, → created๋Š” ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ์•Œ๋ ค์คŒ, ๊ฐ’์ด ์—†์„์ˆ˜ ์—†์Œ
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

์ƒ์„ฑ๋œ ํ…Œ์ด๋ธ” ํ™•์ธ
→ show tables;

๋ฐ์ดํ„ฐ ์‚ฝ์ž…
→ INSERT INTO `topic` (`title`,`description`,`author`,`created`) VALUES('about javascript', 'javascript is ~', 'egoing', '2022-9-20 19:33:54');
→ INSERT INTO `(ํ…Œ์ด๋ธ” ์ด๋ฆ„)` (์ปฌ๋Ÿผ, ... ) VALUES('๊ฐ ์ปฌ๋Ÿผ์— ๋“ค์–ด๊ฐˆ ๋‚ด์šฉ','...')
→ ์ปฌ๋Ÿผ,ํ…Œ์ด๋ธ” ๋ช…์€ ๋ฐฑํ‹ฑ(`) , ๋ฌธ์ž์—ด์€ ์ž‘์€๋”ฐ์˜ดํ‘œ(')์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.

ํ…Œ์ด๋ธ” ๋ณด๊ธฐ
→ SELECT * FROM (ํ…Œ์ด๋ธ” ์ด๋ฆ„);
→ ์—ฌ๊ธฐ์„œ ๋ณ„ํ‘œ(*)๋Š” ์ปฌ๋Ÿผ์„ ์˜๋ฏธํ•œ๋‹ค. ๋งŒ์•ฝ ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ์ปฌ๋Ÿผ์ด ์ •ํ•ด์ ธ ์žˆ๋‹ค๋ฉด,
SELECT title,author FROM topic;์„ ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

ํ…Œ์ด๋ธ” ์›ํ•˜๋Š” ํ–‰ ๋ณด๊ธฐ
→ SELECT id,title,author,created FROM topic WHERE id=3;
→ id๊ฐ’์€ ๋‹ค๋ฅธ id์™€ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ์œ ์ผํ•œ ํ–‰ ์ด๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ๋•Œ ์œ ์šฉํ•˜๋‹ค.

ํ…Œ์ด๋ธ” ์ •๋ ฌ ์ˆœ์„œ ๋ณ€๊ฒฝ
→ SELECT id,title,author,created FROM topic ORDER BY id DESC; 
→ ORDER BY(์ •๋ ฌ) id(id๊ฐ’์œผ๋กœ ์ •๋ ฌ) DESC( id๊ฐ’์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ)


ํ…Œ์ด๋ธ” ํ–‰ ์‚ญ์ œ
→ DELETE FROM topic WHERE id=n;
→ ์‚ญ์ œํ• ๋ ค๋Š” id๋ฒˆํ˜ธ๋ฅผ n์— ๊ธฐ์ž…ํ•˜์—ฌ ์›ํ•˜๋Š” ํ–‰์„ ์‚ญ์ œ

๋ฌธ๋ฒ• ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„๊ณผ ๋ฌธ๋ฒ• ์šฉ์–ด๋ฅผ ๊ตฌ๋ถ„ ์ง“๊ธฐ ์œ„ํ•ด์„œ ๋ฐฑํ‹ฑ(Backtick)์œผ๋กœ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ๋งˆ์น˜ Excel๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ table์ด ๋‚˜์˜ค๋Š” ๊ฑธ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.


์ถœ์ฒ˜: [์ƒํ™œ์ฝ”๋”ฉ]์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ