상세 컨텐츠

본문 제목

MySQL 데이터베이스(schema) / 테이블 생성 - 2

데이터베이스/RDBMS

by moonionn 2020. 8. 17. 23:48

본문

 

 

전 포스트에 이어 테이블을 생성할 차례입니다.

아래는 테이블의 구성입니다.

출처: TCP School, http://www.tcpschool.com/mysql/mysql_intro_relationalDB

 

 

아래 예시를 보면 좀 더 쉽게 이해할 수 있습니다.

  • 데이터들은 타입에 따라 다른 column에 저장됩니다 (엑셀과 유사)
  • 이 기준이 되는 employeeNumber, lastName, firstName 등과 같은 구분자들은 field라고 불립니다.

출처: https://gist.github.com/amelieykw/c1650cbc4ccbdd49894990a679e334cf

 

 

CREATE TABLE을 통해 테이블을 생성해줍니다.

Query OK라는 메세지가 뜨면 성공적으로 테이블이 생성된 것입니다.

$ CREATE TABLE 테이블명(
    필드이름1 데이터타입 NULL/NOT NULL 기타값
    필드이름2 데이터타입 NULL/NOT NULL 기타값
    .
    .
    .
    .
    );

 

 

CREATE TABLE customers( )

customers라는 이름의 테이블을 생성한다는 의미입니다.

괄호 안에서 테이블을 구성할 column들을 정의할 수 있습니다.

 

 

id_num INT NOT NULL AUTO_INCREMENT

  • column이름(필드)을 나타냅니다.

 

id_num INT NOT NULL AUTO_INCREMENT

  • 데이터 타입을 나타냅니다.
  • 데이터 타입으로는 숫자, 문자, 날짜 등이 들어옵니다.
  • 지정된 타입 외의 데이터가 저장되는 일을 방지합니다.
  • 데이터 타입의 종류는 아래 링크에서 확인할 수 있습니다.
  • https://www.mysqltutorial.org/mysql-data-types.aspx/

 

id_num INT NOT NULL AUTO_INCREMENT

  • 제약 조건입니다.
  • NOT NULL이라는 제약을 걸면, 모든 데이터는 해당 column과 관련된 정보를 지니고 있어야 합니다.
  • 즉, id_num이라는 이름의 column에는 NULL값이 올 수 없습니다.
  • 명시하지 않는다면 기본적으로 NULLable 취급됩니다.

 

id_num INT NOT NULL AUTO_INCREMENT

  • AUTO_INCREMENT는 INT라는 데이터에 포함시킬 수 있는 속성입니다.
  • 데이터를 추가할 때마다 숫자가 증가합니다.
  • 보통 데이터의 id값에 부여하는 속성입니다.

출처: https://www.mysqltutorial.org/mysql-int/

 

 

(+추가)

id_num INT NOT NULL AUTO_INCREMENT PRIMARY KEY

  • Primary Key(PK)는 해당 테이블 데이터들의 기준이 되는 필드 자격을 부여합니다.
  • 상위 터미널 캡쳐처럼 맨 마지막 줄에 PRIMARY KEY(PK가 될 필드이름)을 써줘도 되고,
  • 아니면 해당 column 뒤에 써줘도 됩니다.
  • PK는 기본적으로 NOT NULL, UNIQUE 속성을 지니게 됩니다.
  • 보통 INT 타입에 AUTO_INCREMENT 속성을 지닌 column을 PK로 사용합니다.
  • 학번, 상품 번호, 죄수번호 등과 같은 역할을 한다고 이해하면 되겠습니다.
  • 한 테이블 당 하나의 PK만 허용됩니다.

 

아래 명령어를 통해 해당 데이터베이스가 포함하고 있는 테이블 목록을 확인할 수 있습니다.

customers 테이블이 제대로 만들어진 것이 보입니다.

$ SHOW TABLES FROM 데이터베이스(schema)이름;

 

 

아래 명령어를 통해 각각의 column과 그 속성들이 제대로 적용되었는지 확인할 수 있습니다.

$ SHOW COLUMNS FROM 테이블 이름;

 

 

 

수정사항

관련글 더보기

댓글 영역