BootCamp 3day

GyeongNamยท2023๋…„ 11์›” 17์ผ
0

BootCamp

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

๐Ÿ“… 2023๋…„ 11์›” 16์ผ

์˜ค๋Š˜๋ถ€ํ„ฐ ๋ฆฌ๋ˆ…์Šค๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ด€ํ•œ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค. [DB 1์ผ์ฐจ]


3์ผ์ฐจ : MariaDB ์„ค์น˜ ๋ฐ DDL, DML ์‹ค์Šต

DATABASE :
๋„ˆ๋ฌด๋‚˜ ๋ฐฉ๋Œ€ํ•œ ๋‚ด์šฉ์ด๋‹ค. ๊ฒฐ๋ก ์ ์œผ๋ก  ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ๋žŒ๋“ค์ด ๊ณต์œ ํ•˜์—ฌ ์‚ฌ์šฉํ•  ๋ชฉ์ ์œผ๋กœ ์ฒด๊ณ„ํ™”ํ•ด ํ†ตํ•ฉ, ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์ด๋ผ๊ณ  ํ•œ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ„๋ฅ˜

  1. RDB(Relational DataBase)
  2. NoSQL(non SQL or non Relational)

์œผ๋กœ ๋‚˜๋ˆŒ์ˆ˜ ์žˆ๋‹ค.

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDB)๋Š” ํ‘œ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ •ํ•ฉ์„ฑ์ด ์ข‹๊ตฌ ์„œ๋กœ ๋ฐ์ดํ„ฐ๋ผ๋ฆฌ ์„œ๋กœ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
(DBMS : MYSQL, MariaDB, ORACLE)

๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(NoSQL) ๋Š” ํ‘œ๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ ์–ด๋ ค์šฐ๋ฉฐ ์„œ๋กœ ๊ด€๊ณ„๊ฐ€ ์—†์„์ˆ˜๋„ ์žˆ๋‹ค. ์ •ํ•ฉ์„ฑ์€ RDB๋ณด๋‹จ ๋–จ์–ด์ง€๋Š” ๋Œ€์‹  ์ฒ˜๋ฆฌ์†๋„๋Š” ๋น ๋ฅธ ํŽธ์ด๋‹ค.
(DBMS :MongoDB, Redis)


์‹ค์Šต : MariaDB

๋ฅผ ์‚ฌ์šฉํ•ด ์‹ค์Šตํ•  ๊ฒƒ์ด๋‹ค. MariaDB๋Š” MySQL ์˜คํ”ˆ์†Œ์Šค๋ฅผ forkํ•ด์„œ ๋งŒ๋“  ๊ฒƒ์ด๋ผ๊ณ  ํ•œ๋‹ค.

DBMS ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด๋ฅผ SQL ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ

  1. DDL (Data Definition Language)
  2. DML (Data Manipulation Language)
  3. DCL (Data Control Language)

์œ„์™€ ๊ฐ™์ด ํฌ๊ฒŒ 3๋ถ„๋ฅ˜๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ CRUD ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค.
์˜ค๋Š˜์€ DDL๊ณผ DML์„ ์‹ค์Šตํ–ˆ๋‹ค.


DDL

DDL์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(schema)๋‚˜ ํ…Œ์ด๋ธ”์„ ์ •์˜, ์ƒ์„ฑ, ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•œ ์–ธ์–ด์ด๋‹ค.

์ƒ์„ฑ: CREATE

create database board;

์ˆ˜์ •: ALTER

alter table author add column role varchar(50);

์‚ญ์ œ: DROP

drop database

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

create table post(
    id int not null, 
    title varchar(255),
    content varchar(255),
    auth_id int,
    primary key(id),
    foreign key(auth_id) references author(id)
);

๊ธฐ๋ณธํ‚ค (primary key) : ์œ ์ผ์„ฑ(unique)๊ณผ ์ตœ์†Œ์„ฑ, not null ์ œ์•ฝ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ฐ์ดํ„ฐ
์™ธ๋ž˜ํ‚ค (foreign key) : ๋‘ ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ


DML

DDL์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌ, ์ฒ˜๋ฆฌ, ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•œ ์–ธ์–ด์ด๋‹ค.

insert, select, update, delete

์‚ฝ์ž…: INSERT

insert into author(id, name, email) values(1, "ABC", "abc@naver.com");

์กฐํšŒ: SELECT

select * from author;

์ˆ˜์ •: UPDATE

update author set email="xyz@naver.com" where id=1;

์‚ญ์ œ: DLELETE

delete from author where id=1;

์‚ญ์ œ ์‹œ ์ œ์•ฝ ์กฐ๊ฑด์„ ์ž˜ ํ™•์ธํ•ด์•ผํ•œ๋‹ค.
๊ธฐ๋ณธ์€ restrict ์ œ์•ฝ ์กฐ๊ฑด์ด๋ฉฐ, ์™ธ๋ž˜ํ‚ค๊ฐ€ ๊ฑธ๋ ค์žˆ์„ ๊ฒฝ์šฐ ์‚ญ์ œ๊ฐ€ ์•ˆ๋  ๊ฐ€๋Šฅ์„ฑ๋„ ์žˆ๋‹ค.


github ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹ค์Šต ๋‚ด์šฉ

profile
503 Service Unavailable Error

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