๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

STUDY/DATABASE

MySQL DB์ƒ์„ฑ ๋ฐ ํ…Œ์ด๋ธ” ์ƒ์„ฑ

๋ฐ˜์‘ํ˜•

1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ ์šฉ์–ด

* DBMS : Database Management System์˜ ์•ฝ์ž๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ ๋˜๋Š” ํ”„๋กœ๊ทธ๋žจ
   (Oracle, MySQL, SQL Server, MariaDB๋“ฑ)
* ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : ์กฐ์งํ™”๋œ ์ •๋ณด๋“ค์˜ ๋ชจ์Œ ๋˜๋Š” ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ. ๊ณ ์œ ํ•œ ์ด๋ฆ„์„ ๊ฐ€์ ธ์•ผ ํ•จ
* ๊ฐ์ฒด(Object) : ์œ ๋ฌดํ˜•์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋…๋ฆฝ์ ์ธ ์‹ค์ฒด(ํ…Œ์ด๋ธ”, ๋ทฐ, ์ธ๋ฑ์Šค)
* ํ…Œ์ด๋ธ” : ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด, ์—ด(column)๊ณผ ํ–‰(row)๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Œ
* ๋ฐ์ดํ„ฐ : ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ๊ฐ์ฒด์— ์ €์žฅ๋œ ์‹ค์ œ ์ •๋ณด๋ฅผ ์˜๋ฏธ
* ์—ด (=์†์„ฑ Attribute)
* ํ–‰ (=๋ ˆ์ฝ”๋“œ)
* SQL : DBMS์™€ ์†Œํ†ตํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด
* ๊ธฐ๋ณธํ‚ค(Primary key) : ๋Œ€ํ‘œ์ปฌ๋Ÿผ์—๊ฒŒ ๋ถ€์—ฌํ•˜๋Š” ์ œ์•ฝ์กฐ๊ฑด. (์ค‘๋ณต๊ฐ’, ๋นˆ๊ฐ’ x)
* ์™ธ๋ž˜ํ‚ค(Foreign key) : ํ…Œ์ด๋ธ”๊ณผ ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์ œ์•ฝ์กฐ๊ฑด
* ์Šคํ‚ค๋งˆ(Schema) : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋™์ผํ•œ ์˜๋ฏธ๋กœ ์‚ฌ์šฉ๋จ
   (Oracle์—์„œ๋Š” ์œ ์ €์™€ ๋™์ผํ•œ ์˜๋ฏธ๋กœ ์‚ฌ์šฉ๋จ

 


1. ์Šคํ‚ค๋งˆ ์ƒ์„ฑ

create schema shopdb;

 

2. ์ œ์•ฝ์กฐ๊ฑด

  • NOT NULL : ๋นˆ๊ฐ’ X 
  • UNIQUE : ์ค‘๋ณต๊ฐ’ X
  • PRIMARY KEEY : ๊ธฐ๋ณธํ‚ค(NOT NULL + UNIQUE)
  • FOREIGN KEY : ๋‹ค๋ฅธํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•˜๋Š” ์ œ์•ฝ์กฐ๊ฑด
  • CHECK : ์กฐ๊ฑด๋ฌธ ์ง€์ •

 

3. ํ…Œ์ด๋ธ” ์ƒ์„ฑ โ‘ 

create table members
(member_id int primary key,
 member_name varchar(8) not null,
 birth date not null,
 job varchar(20),
 phone varchar(20) unique,
 address varchar(80) );

desc members;

 

3. ํ…Œ์ด๋ธ” ์ƒ์„ฑ โ‘ก

create table products
(prod_id int primary key,
 prod_name varchar(20) not null,
 price int check(price>0),
 make_date date,
 company varchar(10) not null);
 
 desc products;

 

3. ํ…Œ์ด๋ธ” ์ƒ์„ฑ โ‘ข

create table orders
(order_num int,
 member_id int,
 prod_id int,
 order_date datetime default now(),
 primary key(order_num),
 foreign key(member_id) references members(member_id),
 foreign key(prod_id references products(prod_id) );
 
 desc orders;

โ€ป member_id ์™€ prod_id๋Š” ์•ž์„œ ๋งŒ๋“ค์—ˆ๋˜ member์™€ products ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ์„ references

๋ฐ˜์‘ํ˜•