PRIMARY KEY, AUTO_INCREMENT
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는 기본 키나 고유 키로 설정되지 않은 열에서는 사용할 수 없습니다.