SQL

SQL table 테이블 생성 1

디지털농담곰 2023. 12. 10. 17:42

 

SQL table 테이블 설계

 

이번 장에서 SQL 데이터베이스에서 테이블 설계하는 간단한 방법에 대해서 살펴보겠습니다. 우선 사람 정보를 담은 테이블부터 정의해 보겠습니다. 

  1. 이름(name)
  2. 눈동자 색(eye_color)
  3. 생일(birth_date)
  4. 주소(address)
  5. 좋아하는 음식(favorite_foods)

 

자료형 허용값
name varchar(40)  
eye_color char(2) BL, BR, GR
birth_data date  
address varchar(100)  
favorite_foods varchar(200)  

 

 

varchar형태의 데이터는 자유로운 형식의 데이터 입력이 가능합니다. eye_color 같은 경우는 2 문자로 허용값 BL, BR, GR 중 하나만 가능합니다. birth_date과 같은 날짜에 대한 값은 date으로 설정하였습니다.

 

하지만 위와 같이 그대로 설정을 하게 되면 몇 가지 문제가 발생할 수 있습니다.

  1. 여러 사람의 이름, 눈동자 색, 생년월일 등이 같을 경우 테이블에는 고유성을 보장할 수 없습니다. 
  2. address 열은 거리, 도시, 주, 국가, 우편번호 등으로 구성이 된 복잡한 구조입니다.
  3. favorite_foods 열은 0개 또는 1개 이상의 독립적인 항목을 포함하는 목록 개념의 열입니다. 특정 음식이 어떤 사람에게 귀속될 수 있는지 알 수 있도록 이 데이터에 대한 별도의 테이블을 작성하고 person 테이블에 대한 외래 키가 포함되도록 하는 게 가장 좋습니다.

 

Person 테이블

위와 같은 몇 가지 문제를 해결하기 위해 아래와 같이 테이블을 설계해 보겠습니다.

person_id smallint(unsigned)  
first_name varchar(20)  
last_name varchar(20)  
eye_color char(2) BR, BL, GR
birth_date date  
street varchar(30)  
city varchar(20)  
state varchar(20)  
country varchar(20)  
postal_code varchar(20)  

 

 

favoirte_food 테이블

이제 person 테이블에는 고유성을 보장하는 기본 키 person_id가 생겼습니다. 다음으로 favoirte_food 테이블을 생성해 보겠습니다. 

person_id smallint(unsigned)
food varchar(20)

 

person_id와 food 열은 favorite_food 테이블의 기본 키를 구성하고 있습니다. 여기서 또 하나 참고해야 하는 점은 person_id 열은 person 테이블에 대한 외래 키이기도 합니다. 

 

이렇게 두 테이블의 설계를 해보았습니다. 다음 장에서 SQL문을 만들어 데이터베이스에 테이블 생성을 해보도록 하겠습니다. 

 

감사합니다. 

'SQL' 카테고리의 다른 글

SQL table 테이블 수정  (0) 2023.12.13
SQL table 테이블 생성 2  (1) 2023.12.11
Numerical Data 숫자 데이터  (1) 2023.12.10
char, varchar 문자열 데이터  (0) 2023.12.09
SELECT, FROM, WHERE 절  (0) 2023.12.09