SQL

SQL table 테이블 생성 2

디지털농담곰 2023. 12. 11. 15:55

 

SQL table 테이블 생성

 

지난번 ‘SQL table 테이블 생성 1’에서 사람과 좋아하는 음식에 대한 두 테이블 설계를 했었습니다. 이번장에서는 설계한 테이블에 이어서 SQL문을 만들어 데이터베이스에 테이블을 만들어 보겠습니다. 

 

CREATE TABLE person

  (person_id SMALLINT UNSIGNED,

   Fname VARCHAR(20),

   lname VARCHAR(20),

   eye_color CHAR(2),

   birth_date DATE,

   street VARCHAR(30),

   city VARCHAR(20),

   state VARCHAR(20),

   country VARCHAR(20),

   postal_code VARCHAR(20),

   CONSTRAINT pk_person PRIMARY KEY (person_id)

);

 

CONSTRAINT 문을 사용해서 위 테이블에 대한 기본 키 제약조건을 추가하였습니다. person_id 열에 추가가 되며 pk_person이라는 이름이 지정이 됩니다. 더불어 앞에서 테이블을 설계할 때 eye_color에 허용값 ‘BR’, ‘BL’, ‘GR’ 이러는 허용 가능한 값을 두었습니다. 이때 체크 제약조건 (check_constraint)이라는 또 다른 유형의 제약조건을 추가해야합니다. 

 

eye_color CHAR(2) CHECK (eye_color IN ( ‘BR’, ‘BL’, ‘GR’ )) 

 

 

eye_color에 제약을 주는 또다른 방법 중 하나는 enum이라는 문을 사용하는 것입니다. person 테이블에 함께 정의할 때 eye_color에 대한 enum 자료형으로 표시하는 방법은 아래와 같습니다. 

 

CREATE TABLE person

(person_id SMALLINT UNSIGNED,

   Fname VARCHAR(20),

   lname VARCHAR(20),

   eye_color ENUM( ‘BR’, ‘BL’, ‘GR’ ), 

   birth_date DATE,

   street VARCHAR(30),

   city VARCHAR(20),

   state VARCHAR(20),

   country VARCHAR(20),

   postal_code VARCHAR(20),

   CONSTRAINT pk_person PRIMARY KEY (person_id)

);



이제 favorite_food 테이블을 생성해 보겠습니다. 

 

CREATE TABLE favorite_food

(person_id SMALLINT UNSIGNED,

   food VARCHAR(20),

   CONSTRAINT pk_favorite_food PRIMARY KEY (person_id, food),

   CONSTRAINT fk_fav_food_person_id FOREIGN KEY (person_id)

   REFERENCES person (person_id)

);

 

favorite_food 테이블에 외래 키 제약조건 (foreign key constraint)이라는 제약조건이 포함됩니다. 이렇게 하면 favorite_food 테이블에서 person_id 열의 값에 person 테이블에 있는 값만 포함됩니다. 



SQL문을 만들어 데이터베이스에 테이블을 만드는 방법에 대해서 알아보았습니다.

 

감사합니다. 

 

'SQL' 카테고리의 다른 글

Sakila 샤키라 예시  (0) 2023.12.14
SQL table 테이블 수정  (0) 2023.12.13
SQL table 테이블 생성 1  (0) 2023.12.10
Numerical Data 숫자 데이터  (1) 2023.12.10
char, varchar 문자열 데이터  (0) 2023.12.09