SQL - 자동 증가

안녕하세요, 미래의 데이터베이스 마법사 여러분! 오늘은 SQL의 마법의 세계, 자동 증가에 대해 배우겠습니다. 이 내용이 처음이신 걸 걱정하지 마세요; 이 튜토리얼이 끝나면 프로처럼 자동 증가를 할 수 있을 것입니다!

SQL - Auto Increment

자동 증가는 무엇인가요?

자세한 내용에 들어가기 전에, 자동 증가가 정확히 무엇인지 이해해 보겠습니다. 당신이 도서관 사서라면 (대학 시절에 저는 사서였어요!), 새로운 책이 도착할 때마다 고유한 번호를 할당해야 할 텐데, 마지막 번호를 기억하고 매번 수동으로 증가시키는 것이 귀찮지 않을까요? 이때 자동 증가가 구원이 됩니다!

SQL에서 자동 증가는 테이블에 삽입된 각 새로운 레코드에 대해 자동으로 고유한 번호를 생성하는 필드입니다. 마치 " 걱정하지 마세요, 번호 처리는 제가 하겠습니다!"라고 말하는 유용한 로봇 비서 같은 것입니다.

MySQL에서의 자동 증가

먼저 MySQL로 시작해 보겠습니다. MySQL은 가장 인기 있는 데이터베이스 관리 시스템 중 하나입니다. MySQL에서는 AUTO_INCREMENT 키워드를 사용하여 자동 증가하는 칼럼을 생성합니다.

자동 증가를 가진 테이블 생성

자동 증가하는 주요 키를 가진 테이블을 생성하는 방법을 보겠습니다:

CREATE TABLE students (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
age INT
);

이 예제에서:

  • id는 우리의 자동 증가 칼럼입니다.
  • INT는 이것이 정수라는 것을 지정합니다.
  • AUTO_INCREMENT는 MySQL이 각 새로운 레코드에 대해 이 값을 자동으로 증가시키도록 합니다.
  • PRIMARY KEY는 이 칼럼을 테이블의 주요 키로 지정합니다.

레코드 추가

이제 테이블에 학생들을 추가해 보겠습니다:

INSERT INTO students (name, age) VALUES ('Alice', 20);
INSERT INTO students (name, age) VALUES ('Bob', 22);
INSERT INTO students (name, age) VALUES ('Charlie', 21);

레코드를 추가할 때 id를 지정하지 않는 것을 주목하세요. MySQL이 이 값을 자동으로 할당하고 증가시켜줍니다. 이 테이블에서 모든 레코드를 선택하면 다음과 같이 보입니다:

+----+---------+-----+
| id | name    | age |
+----+---------+-----+
|  1 | Alice   |  20 |
|  2 | Bob     |  22 |
|  3 | Charlie |  21 |
+----+---------+-----+

특정 값부터 시작하기

자동 증가를 특정 번호부터 시작하고 싶다면 어떻게 하나요? 두 개의 데이터베이스를 통합하고 중복 ID를 피하고 싶다면 어떻게 하나요? 문제 없습니다! 초기 값을 설정할 수 있습니다:

ALTER TABLE students AUTO_INCREMENT = 1000;

이제 다음에 삽입된 레코드는 ID가 1000이 되고, 거기서부터 증가합니다.

SQL Server에서의 자동 증가

이제 SQL Server로 넘어가 보겠습니다. 개념은 비슷하지만 문법이 약간 다릅니다. SQL Server에서는 IDENTITY 키워드를 사용하여 자동 증가하는 칼럼을 지정합니다.

자동 증가를 가진 테이블 생성

SQL Server에서 자동 증가하는 칼럼을 가진 테이블을 생성하는 방법을 보겠습니다:

CREATE TABLE employees (
id INT IDENTITY(1,1) PRIMARY KEY,
name VARCHAR(50),
department VARCHAR(50)
);

이 예제에서:

  • IDENTITY(1,1)는 1에서 시작하고 1씩 증가한다는 것을 의미합니다.
  • 첫 번째 매개변수(1)는 시드 값(어디서 시작할 것인가)입니다.
  • 두 번째 매개변수(1)는 증가 값(얼마나 증가할 것인가)입니다.

레코드 추가

레코드 추가는 MySQL과 비슷합니다:

INSERT INTO employees (name, department) VALUES ('David', 'Sales');
INSERT INTO employees (name, department) VALUES ('Emma', 'Marketing');
INSERT INTO employees (name, department) VALUES ('Frank', 'IT');

다시한번, id를 지정하지 않습니다. SQL Server이 이를 위해 자동으로 처리합니다.

현재 식별자 값 확인

SQL Server에서는 IDENT_CURRENT 함수를 사용하여 현재 식별자 값을 확인할 수 있습니다:

SELECT IDENT_CURRENT('employees');

이 명령은 'employees' 테이블의 마지막 식별자 값을 반환합니다.

식별자 재설정

식별자 값을 재설정해야 할 때(이 작업은 신중하게 해야 합니다!) 다음을 사용할 수 있습니다:

DBCC CHECKIDENT ('employees', RESEED, 1000);

이 명령은 식별자를 1000으로 재설정하여 다음에 추가된 레코드가 ID 1000을 가집니다.

일반 자동 증가 방법

다음은 우리가 논의한 일반 자동 증가 방법을 요약한 표입니다:

데이터베이스 키워드 예제
MySQL AUTO_INCREMENT id INT AUTO_INCREMENT PRIMARY KEY
SQL Server IDENTITY id INT IDENTITY(1,1) PRIMARY KEY

결론

이제 여러분은 자동 증가의 슈퍼파워를 가진 SQL 스킬을 습득했습니다! 자동 증가 칼럼은 고유한 식별자를 생성하는 데 매우 유용하지만, 지혜롭게 사용해야 합니다. 이 것은 요리에서 향料와 같아요 – 필요하지만 과하게 사용하지 않아야 합니다!

저의 교육 경험에서는 학생들이 혼란스러워하다가 "아하!"라는 순간을 경험할 때까지 볼 수 있었어요. 이 순간은 데이터베이스 설계가 더 재미있어지는 순간입니다!

계속 연습하고, 호기심을 가지고 있으면, 언제 그때로써 SQL에 대한 전문가가 될 것입니다. 행복하게 코딩하고, 당신의 쿼리가 항상 기대하는 결과를 반환하길 바랍니다!

Credits: Image by storyset