Skip to Content
Suffering builds character

2. 테이블 생성

설계 → 정제 → 테이블 작성 및 생성

테이블이나 데이터베이스(Schema) 등을 생성할 때는 CREATE 명령어를 사용함

mouse 테이블 생성 시,

sql
CREATE TABLE mouse ( ... );
데이터베이스(Schema) 생성
sql
-- CREATE DATABASE 데이터베이스명; CREATE DATABASE testdb;
현재 사용 중인 database 확인
sql
SELECT database();
다른 Database로 변경
sql
-- use 데이터베이스명; USE testdb;
SQL statement(DDL) 작성
sql
CREATE TABLE person ( -- CREATE TABLE 테이블명 person_id SMALLINT UNSIGNED, -- 필드 데이터타입,(comma로 구분) first_name VARCHAR(20), last_name VARCHAR(20), eye_color ENUM('BR', 'BL', 'GR'), birth_date DATE, street VARCHAR(20), state VARCHAR(20), country VARCHAR(20), postal_code VARCHAR(20), CONSTRAINT pk_person PRIMARY KEY (person_id) -- 기본키로 사용하곘다는 제약조건 명시 -- CONSTRAINT 제약조건이름 PRIMARY KEY (필드이름) );

eye_color ENUM
→ 특정 열에 대해 허용 가능한 값 표시(체크 제약 조건, check constraint)

생성된 테이블 조회
sql
DESC person;
💡
Tip

Default 컬럼
추후에 데이터를 삽입(INSERT)할 때 값을 생략할 경우 해당 열을 기본값으로 채울지의 여부

Extra 컬럼
열에 적용될 수 있는 기타 정보

favorite_food 테이블 생성
sql
CREATE TABLE favorite_food ( person_id SMALLINT UNSIGNED, food VARCHAR(20), CONSTRAINT pk_favorite_food PRIMARY KEY (person_id, food) );

한 사람은 좋아하는 음식이 여러 개일 수 있기 때문에 person_id와 food 둘을 합쳐서(복합키) 기본키를 두 개로 구성

생성된 테이블 정보 조회
sql
DESC favorite_food
person_id를 외래키 제약조건으로 추가하는 것을 깜빡하였을 경우,
sql
CONSTRAINT fk_favorite_food_person_id FOREIGN KEY (person_id) REFERENCES person (person_id);

favorite_food 테이블의 person_id열은 외래키로 적용

외래키 제약조건 추가

작성 문법

sql
ALTER TABLE 테이블 명 ADD CONSTRAINT 제약조건 이름 FOREIGN KEY(컬럼 명) REFERENCES 부모테이블 명 (PK 컬럼명);

실제 작성 및 적용

sql
ALTER TABLE favorite_food ADD CONSTRAINT fk_favorite_food_person_id FOREIGN KEY (person_id) REFERENCES person (person_id);

쿼리 설명
ALTER TABLE favorite_food
favorite food 테이블 정보 수정

ADD CONSTRAINT fk_favorite_food_person_id
제약조건 추가할건데 이름은 fk_favorite~

FOREIGN KEY (person_id)
외래키로 지정할 필드는 person_id 필드

REFERENCES person (person_id)
외래키로 지정한 필드 person_id필드는 person 테이블의 person_id를 참조함

Last updated on