MySQL Key 종류

구대호·2024년 3월 18일

My SQL

목록 보기
1/3
post-thumbnail

> Key 종류

  1. Primary Key
  2. Unique Key
  3. Index Key

1. Primary Key(기본키)

  • 테이블 당 하나만 존재할 수 있는 가장 기본이 되는 Key
  • 한 테이블/릴레이션에서 특정 레코드/튜플을 유일하게 구별할 수 있는 고유식별 속성을 나타낸다.
  • 레코드 값 중복X, NULL이 될 수없다.
  • 테이블을 새로 만들때

    CREATE TABLE table_name(
    	column1 datatype NOT NULL PRIMARY KEY,
    	column2 datatype,
    		…
    );

    이미 만들어진 테이블을 수정할 때

    ALTER TABLE table_name
    ADD PRIMARY KEY (column_name);

    2. Unique Key (유니크키)

  • 값의 중복을 허용하지 않는다.
  • Unique Key가 설정된 칼럼에 입력되는 데이터가 각각 유일하다는 것을 보장해준다.
  • 하나의 테이블에 여러 개의 Unique Key를 설정할 수 있다.
  • 주로 Primary Key 를 설정한 후 추가적으로 고유한 식별자가 있는 경우 Unique Key로 설정.
  • Unique Key의 값은 NULL 값이 허용된다.

    테이블을 새로 만들 때 (column1,2가 고유 식별자일 경우)

    CREATE TABLE table_name(
    	column1 datatype UNIQUE,
    	column2 datatype UNIQUE,
    	column3 datatype,
    		…
    );

    또는

    CREATE TABLE table_name(
    	column1 datatype,
    	column2 datatype,
    	column3 datatype,
    		…,
                  UNIQUE INDEX index1_name (column1),
                  UNIQUE INDEX index2_name (column2)
    );

    이미 만들어진 테이블 스키마를 수정할 때

    ALTER TABLE table_name
    ADD UNIQUE INDEX index_name (column_name);

    또는

    ALTER TABLE table_name
    ADD UNIQUE (column_name);

    3. Index Key(인덱스 키)

  • 테이블 마다 여러 개의 인덱스 Key 설정 가능
  • 중복 값과 NULL 값이 허용된다
  • 검색 속도를 향상시키기 위한 용도로 활용
  • 테이블을 새로 만드는 경우(column1,2에 대해 인덱스를 만드는 경우)

    CREATE TABLE table_name(
    	column1 datatype,
    	column2 datatype,
    	column3 datatype,
    		…,
                   INDEX index1_name (column1),
                   INDEX index2_name (column2)
    );

    이미 만들어진 테이블 스키마를 수정할 때

    ALTER TABLE table_name
    ADD INDEX index_name (column_name);
    profile
    개발 초보 대학생

    0개의 댓글