언어 및 도구들 공부/DATABASE

PRIMARY KEY, AUTO_INCREMENT

Dr.Mlem 2024. 10. 9. 20:35

Q1.
sql에서 primary key 는 테이블 당 하나만 있을 수 있는거야?



A1.
GitHub Copilot
네, SQL에서 각 테이블은 하나의 기본 키(Primary Key)만 가질 수 있습니다. 기본 키는 테이블의 각 행을 고유하게 식별하는 데 사용되며, 하나 이상의 열로 구성될 수 있습니다. 기본 키는 중복 값을 허용하지 않으며, NULL 값을 가질 수 없습니다.


예를 들어, 다음과 같이 id 열을 기본 키로 설정할 수 있습니다:

CREATE TABLE example_table (
    id INT NOT NULL,
    name VARCHAR(50),
    PRIMARY KEY (id)
);

또는 여러 열을 조합하여 기본 키를 설정할 수도 있습니다:

CREATE TABLE example_table (
    id INT NOT NULL,
    name VARCHAR(50) NOT NULL,
    PRIMARY KEY (id, name)
);

이렇게 설정된 기본 키는 테이블 내에서 고유한 값을 가져야 합니다.



Q2.
2개 이상은 가질 수 없어?



A2.
GitHub Copilot
네, SQL에서 각 테이블은 하나의 기본 키(Primary Key)만 가질 수 있습니다. 그러나 기본 키는 여러 열(Column)로 구성될 수 있습니다. 이를 복합 키(Composite Key)라고 합니다. 복합 키는 여러 열을 결합하여 테이블의 각 행을 고유하게 식별합니다.


예를 들어, 다음과 같이 두 개의 열을 결합하여 기본 키를 설정할 수 있습니다:

CREATE TABLE example_table (
    id INT NOT NULL,
    name VARCHAR(50) NOT NULL,
    PRIMARY KEY (id, name)
);

이 경우 id와 name의 조합이 테이블 내에서 고유해야 합니다. 하지만 테이블 당 하나의 기본 키만 설정할 수 있다는 점은 변하지 않습니다.



Q3.
AUTO INCREMENT 옵션은 pk만 가질 수 있는거지?



A3.
GitHub Copilot
네, AUTO_INCREMENT 옵션은 일반적으로 기본 키(Primary Key) 또는 고유 키(Unique Key)로 설정된 열에서만 사용할 수 있습니다. 이 옵션은 새 행이 삽입될 때마다 자동으로 증가하는 고유한 값을 생성합니다.


예를 들어, 기본 키로 설정된 열에 AUTO_INCREMENT를 사용할 수 있습니다:

CREATE TABLE example_table (
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(50),
    PRIMARY KEY (id)
);

또는 고유 키로 설정된 열에 사용할 수도 있습니다:

CREATE TABLE example_table (
    id INT NOT NULL AUTO_INCREMENT,
    name VARCHAR(50),
    UNIQUE (id)
);


하지만 AUTO_INCREMENT는 기본 키나 고유 키로 설정되지 않은 열에서는 사용할 수 없습니다.