2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

MySQL에서 테이블의 구조를 변경하는 방법은 무엇인가요?

_____
Q1. MySQL에서 테이블의 구조를 변경하려면 어떤 명령어를 사용하나요?
A1. 테이블 구조를 변경할 때는 주로 `ALTER TABLE` 명령어를 사용합니다.

Q2. 컬럼을 새로 추가하려면 어떻게 하나요?
A2.
```sql
ALTER TABLE 테이블명 ADD 컬럼명 데이터타입 [제약조건];
```
예:
```sql
ALTER TABLE users ADD age INT;
```

Q3. 기존 컬럼의 이름이나 데이터 타입을 바꾸려면 어떻게 하나요?
A3. 컬럼 이름 변경:
```sql
ALTER TABLE 테이블명 CHANGE 기존컬럼명 새컬럼명 데이터타입;
```
데이터 타입 변경만:
```sql
ALTER TABLE 테이블명 MODIFY 컬럼명 새로운데이터타입;
```
예:
```sql
ALTER TABLE users CHANGE username user_name VARCHAR(50);
ALTER TABLE users MODIFY age SMALLINT;
```

Q4. 컬럼을 삭제하려면 어떻게 하나요?
A4.
```sql
ALTER TABLE 테이블명 DROP COLUMN 컬럼명;
```
예:
```sql
ALTER TABLE users DROP COLUMN age;
```

Q5. 컬럼의 위치를 변경하는 방법이 있나요?
A5. 네, `FIRST` 또는 `AFTER 다른컬럼명` 옵션을 사용합니다. 예:
```sql
ALTER TABLE users MODIFY COLUMN age INT AFTER username;
```

Q6. 기본 키(primary key)를 추가하거나 변경하려면 어떻게 하나요?
A6. 기본 키 추가:
```sql
ALTER TABLE 테이블명 ADD PRIMARY KEY (컬럼명);
```
기존 키 삭제 후 변경:
```sql
ALTER TABLE 테이블명 DROP PRIMARY KEY, ADD PRIMARY KEY (새컬럼명);
```

Q7. 컬럼에 인덱스를 추가하거나 삭제하려면 어떻게 하나요?
A7. 인덱스 추가:
```sql
ALTER TABLE 테이블명 ADD INDEX 인덱스명 (컬럼명);
```
인덱스 삭제:
```sql
ALTER TABLE 테이블명 DROP INDEX 인덱스명;
```

Q8. 컬럼에 NOT NULL 제약조건을 추가하거나 제거하려면 어떻게 하나요?
A8. NOT NULL 추가:
```sql
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입 NOT NULL;
```
NOT NULL 제거:
```sql
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입 NULL;
```

Q9. 테이블 이름을 변경하려면 어떻게 하나요?
A9.
```sql
RENAME TABLE 기존테이블명 TO 새테이블명;
```
또는
```sql
ALTER TABLE 기존테이블명 RENAME TO 새테이블명;
```

Q10. 여러 가지 구조 변경을 한 번에 할 수 있나요?
A10. 네, 쉼표(`,`)로 구분하여 여러 `ALTER` 명령을 한 번에 실행할 수 있습니다. 예:
```sql
ALTER TABLE users
ADD COLUMN age INT,
DROP COLUMN address,
MODIFY COLUMN username VARCHAR(100) NOT NULL;
```

---

요약:
- `ALTER TABLE`은 테이블 구조 변경의 기본 명령어입니다.
- 컬럼 추가(`ADD`), 삭제(`DROP COLUMN`), 이름/타입 변경(`CHANGE` / `MODIFY`), 인덱스 추가/삭제, 기본키 설정 등이 가능합니다.
- 여러 변경을 한 번에 처리할 수 있어 효율적입니다.
MySQL에서 테이블의 구조를 변경하는 방법은 주로 `ALTER TABLE` 명령어를 사용하여 수행됩니다.

이 명령어는 테이블의 열 추가, 삭제, 수정, 인덱스 추가 및 삭제 등 다양한 작업을 지원합니다.

아래에서는 MySQL에서 테이블 구조를 변경하는 여러 가지 방법에 대해 자세히 설명하겠습니다.

1. 열 추가 (ADD COLUMN) 새로운 열을 테이블에 추가하려면 `ADD COLUMN` 구문을 사용합니다.

예를 들어, `employees` 테이블에 `birthdate`라는 DATE 형식의 열을 추가하려면 다음과 같이 작성합니다.

```sql ALTER TABLE employees ADD COLUMN birthdate DATE; ```

2. 열 삭제 (DROP COLUMN) 테이블에서 특정 열을 삭제하려면 `DROP COLUMN` 구문을 사용합니다.

예를 들어, `birthdate` 열을 삭제하려면 다음과 같이 작성합니다.

```sql ALTER TABLE employees DROP COLUMN birthdate; ```

3. 열 수정 (MODIFY COLUMN) 기존 열의 데이터 타입이나 속성을 변경하려면 `MODIFY COLUMN` 구문을 사용합니다.

예를 들어, `salary` 열의 데이터 타입을 `FLOAT`에서 `DECIMAL(10,

2)`로 변경하려면 다음과 같이 작성합니다.

```sql ALTER TABLE employees MODIFY COLUMN salary DECIMAL(10,

2); ```

4. 열 이름 변경 (CHANGE COLUMN) 열의 이름을 변경하려면 `CHANGE COLUMN` 구문을 사용합니다.

이때 새로운 데이터 타입도 함께 지정해야 합니다.

예를 들어, `salary` 열의 이름을 `annual_salary`로 변경하려면 다음과 같이 작성합니다.

```sql ALTER TABLE employees CHANGE COLUMN salary annual_salary DECIMAL(10,

2); ```

5. 인덱스 추가 (ADD INDEX) 테이블에 인덱스를 추가하여 검색 성능을 향상시킬 수 있습니다.

예를 들어, `last_name` 열에 인덱스를 추가하려면 다음과 같이 작성합니다.

```sql ALTER TABLE employees ADD INDEX idx_last_name (last_name); ```

6. 인덱스 삭제 (DROP INDEX) 기존 인덱스를 삭제하려면 `DROP INDEX` 구문을 사용합니다.

예를 들어, `idx_last_name` 인덱스를 삭제하려면 다음과 같이 작성합니다.

```sql ALTER TABLE employees DROP INDEX idx_last_name; ```

7. 기본 키 추가 (ADD PRIMARY KEY) 테이블에 기본 키를 추가하려면 `ADD PRIMARY KEY` 구문을 사용합니다.

예를 들어, `employee_id` 열을 기본 키로 설정하려면 다음과 같이 작성합니다.

```sql ALTER TABLE employees ADD PRIMARY KEY (employee_id); ```

8. 기본 키 삭제 (DROP PRIMARY KEY) 기존 기본 키를 삭제하려면 `DROP PRIMARY KEY` 구문을 사용합니다.

예를 들어, 기본 키를 삭제하려면 다음과 같이 작성합니다.

```sql ALTER TABLE employees DROP PRIMARY KEY; ```

9. 외래 키 추가 (ADD FOREIGN KEY) 테이블 간의 관계를 설정하기 위해 외래 키를 추가할 수 있습니다.

예를 들어, `department_id` 열을 외래 키로 설정하려면 다음과 같이 작성합니다.

```sql ALTER TABLE employees ADD CONSTRAINT fk_department FOREIGN KEY (department_id) REFERENCES departments(department_id); ```

10. 외래 키 삭제 (DROP FOREIGN KEY) 기존 외래 키를 삭제하려면 `DROP FOREIGN KEY` 구문을 사용합니다.

예를 들어, `fk_department` 외래 키를 삭제하려면 다음과 같이 작성합니다.

```sql ALTER TABLE employees DROP FOREIGN KEY fk_department; ``` 주의사항 - `ALTER TABLE` 명령어는 테이블의 구조를 변경하는 작업이므로, 데이터 손실이 발생할 수 있습니다.

따라서 중요한 데이터가 있는 경우, 변경하기 전에 반드시 백업을 수행하는 것이 좋습니다.

- 테이블의 구조를 변경하는 작업은 데이터베이스의 성능에 영향을 줄 수 있으므로, 대량의 데이터가 있는 테이블에 대해 작업할 때는 주의가 필요합니다.

- MySQL의 특정 버전이나 설정에 따라 일부 기능이 제한될 수 있으므로, 사용 중인 MySQL 버전의 문서를 참조하는 것이 좋습니다.

이와 같이 MySQL에서 테이블의 구조를 변경하는 방법은 다양하며, 각 작업에 따라 적절한 SQL 구문을 사용하여 원하는 구조로 변경할 수 있습니다.

작성자: 김시영 [비회원] | 작성일자: 1년 전 2024-09-20 08:05:26
조회수: 166 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.