개발공부/혼자공부하는 SQL

[SQL] 테이블 만들기

코푸딩 2023. 3. 11. 12:45
728x90

CREATE문을 사용해 테이블 만들기

아주 간단한 형태의 테이블을 먼저 만들어 보자.

컬럼명과 각 컬럼의 데이터 형식만 지정해도 하나의 테이블을 만들 수 있다.

 

CREATE TABLE '테이블 이름' 
( '컬럼명1' '데이터 형식',
  '컬럼명2' '데이터 형식',
  ...
);

 

 

위의 기본 형태에 추가 제약조건들을 넣어서 테이블을 만들 수 있다.

제약조건들은 '데이터 형식' 뒤에 이어서 명시하면 된다.

 

제약조건을 추가해 테이블 생성

--기본 형태
CREATE TABLE '테이블 이름' 
( '컬럼명1' '데이터 형식' '제약조건1' '제약조건2',
  '컬럼명2' '데이터 형식',
  ...
);



--예시 테이블
CREATE TABLE member -- 회원 테이블
( mem_id        CHAR(8) NOT NULL PRIMARY KEY,  --NULL을 허용 안하고 기본키이다
  mem_name      VARCHAR(10) NOT NULL, 
  mem_number    TINYINT NOT NULL, 
  addr          CHAR(2) NOT NULL,
  phone1        CHAR(3) NULL,
  phone2        CHAR(8) NULL,
  height        TINYINT UNSIGNED NULL, --양수 범위만 사용하고 NULL을 허용한다
  debut_date    DATE NULL
);

 

 

추가로 두 개의 테이블의 관계를 지정할 수 있다.

이 때, 외래키(FOREIGN KEY)를 사용해 두 테이블 간의 관계를 정의한다.

위의 member 테이블과 관계를 갖는 buy 테이블을 만들어보자.

 

member 테이블과 일대다 관계의 buy 테이블 만들기

CREATE TABLE buy 
(  num         INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
   mem_id      CHAR(8) NOT NULL, 
   prod_name     CHAR(6) NOT NULL, 
   group_name     CHAR(4) NULL ,
   price         INT UNSIGNED NOT NULL,
   amount        SMALLINT UNSIGNED  NOT NULL ,
   FOREIGN KEY(mem_id) REFERENCES member(mem_id)
);

 

SQL마지막 부분의 'FOREIGN KEY(mem_id) REFERENCES member(mem_id)'의 의미를 해석해보자.

buy테이블의 mem_id가 외래키(FOREIGN KEY)이며, member테이블의 mem_id를 참조한다는 뜻이다.

위의 설정으로 buy 테이블의 mem_id와 member 테이블의 mem_id는 서로 연결되었다.

이렇게 외래키로 지정하게 되면 buy 테이블의 mem_id는 member 테이블의 mem_id로 등록된 데이터만 사용 가능하다.

즉 member로 등록되지 않은 회원은 구매를 할 수 없다.

728x90