Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 특정 열 뒤에 새 열을 추가하고 기본값을 설정하는 방법

MySQL에서 기존 테이블의 특정 열 뒤에 새로운 열을 추가하고, 해당 열에 기본값까지 정의하려면 ALTER 명령어를 사용해야 합니다. 열의 위치는 AFTER 절로 지정하고, 기본값은 SET DEFAULT 구문으로 설정할 수 있습니다.

실제 동작 과정을 단계별로 살펴보겠습니다.

1단계: 테이블 생성하기

먼저 예제로 사용할 테이블을 생성합니다.

mysql> create table DemoTable
    (
    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentFirstName varchar(20),
    StudentAge int,
    StudentCountryName varchar(100)
    );
Query OK, 0 rows affected (0.21 sec)

2단계: 테이블 구조 확인하기

DESC 명령어로 테이블 구조를 확인합니다.

mysql> desc DemoTable;

실행 결과는 다음과 같습니다.

+--------------------+--------------+------+-----+---------+----------------+
| Field              | Type         | Null | Key | Default | Extra          |
+--------------------+--------------+------+-----+---------+----------------+
| StudentId          | int(11)      | NO   | PRI | NULL    | auto_increment |
| StudentFirstName   | varchar(20)  | YES  |     | NULL    |                |
| StudentAge         | int(11)      | YES  |     | NULL    |                |
| StudentCountryName | varchar(100) | YES  |     | NULL    |                |
+--------------------+--------------+------+-----+---------+----------------+
4 rows in set (0.15 sec)

3단계: 특정 열 뒤에 새 열 추가 및 기본값 정의하기

이제 StudentFirstName 열 바로 뒤에 새로운 열 StudentLastName을 추가하겠습니다. AFTER StudentFirstName 구문이 열의 위치를 지정하는 역할을 합니다.

mysql> alter table DemoTable add StudentLastName varchar(20) NOT NULL after StudentFirstName;
Query OK, 0 rows affected (0.91 sec)
Records: 0 Duplicates: 0 Warnings: 0

다음으로 ALTER ... SET DEFAULT 구문을 사용하여 StudentLastName 열의 기본값을 'Doe'로 설정합니다.

mysql> alter table DemoTable alter StudentLastName set default 'Doe';
Query OK, 0 rows affected (0.32 sec)
Records: 0 Duplicates: 0 Warnings: 0

참고: MySQL 8.0 이상에서는 ADD COLUMN 시점에 DEFAULT 'Doe'를 함께 지정하여 한 번의 쿼리로 처리할 수도 있습니다. 예: ALTER TABLE DemoTable ADD StudentLastName varchar(20) NOT NULL DEFAULT 'Doe' AFTER StudentFirstName;

4단계: 변경 결과 확인하기

테이블 구조를 다시 한번 조회하여 변경 사항을 확인합니다.

mysql> desc DemoTable;

새로운 열이 StudentFirstName 뒤에 추가되었고, 기본값이 'Doe'로 설정된 것을 확인할 수 있습니다.

+--------------------+--------------+------+-----+---------+----------------+
| Field              | Type         | Null | Key | Default | Extra          |
+--------------------+--------------+------+-----+---------+----------------+
| StudentId          | int(11)      | NO   | PRI | NULL    | auto_increment |
| StudentFirstName   | varchar(20)  | YES  |     | NULL    |                |
| StudentLastName    | varchar(20)  | NO   |     | Doe     |                |
| StudentAge         | int(11)      | YES  |     | NULL    |                |
| StudentCountryName | varchar(100) | YES  |     | NULL    |                |
+--------------------+--------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)

정리

  • AFTER [열 이름]: 새 열을 원하는 위치의 특정 열 뒤에 삽입합니다. 생략하면 테이블의 마지막에 추가됩니다.
  • SET DEFAULT: 이미 존재하는 열의 기본값을 나중에 지정하거나 변경할 때 사용합니다.
  • NOT NULL: 기본값이 있는 NOT NULL 열에는 값을 명시하지 않아도 자동으로 기본값이 입력됩니다.