상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - MySQL에서 데이터베이스의 스키마 변경 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
MySQL에서 데이터베이스의 스키마 변경은 데이터베이스 구조를 수정하는 작업으로, 주로 테이블의 구조를 변경하거나 새로운 테이블을 추가하거나 기존 테이블을 삭제하는 등의 작업을 포함합니다. 스키마 변경은 데이터베이스의 성능, 데이터 무결성 및 애플리케이션의 기능에 큰 영향을 미칠 수 있으므로 신중하게 진행해야 합니다. 아래에서는 MySQL에서 스키마를 변경하는 다양한 방법과 주의사항에 대해 자세히 설명하겠습니다. 1. 테이블 구조 변경 1.1. 컬럼 추가기존 테이블에 새로운 컬럼을 추가할 수 있습니다. `ALTER TABLE` 문을 사용하여 다음과 같이 수행합니다.```sqlALTER TABLE 테이블명 <a href='https://sangseek.com/sangseeks/ADD COLUMN/ko'>ADD COLUMN</a> 컬럼명 데이터타입 [<a href='https://sangseek.com/sangseeks/제약조건/ko'>제약조건</a>];```예를 들어, `employees` 테이블에 `birthdate`라는 DATE 타입의 컬럼을 추가하려면 다음과 같이 입력합니다.```sqlALTER TABLE employees ADD COLUMN birthdate DATE;``` 1.2. 컬럼 수정기존 컬럼의 데이터 타입이나 제약조건을 변경할 수 있습니다.```sqlALTER TABLE 테이블명 <a href='https://sangseek.com/sangseeks/MODIFY COLUMN/ko'>MODIFY COLUMN</a> 컬럼명 새로운_데이터타입 [제약조건];```예를 들어, `salary` 컬럼의 데이터 타입을 `DECIMAL(10,2)`로 변경하려면 다음과 같이 입력합니다.```sqlALTER TABLE employees MODIFY COLUMN salary DECIMAL(10,2);``` 1.3. 컬럼 삭제더 이상 필요하지 않은 컬럼을 삭제할 수 있습니다.```sqlALTER TABLE 테이블명 <a href='https://sangseek.com/sangseeks/DROP COLUMN/ko'>DROP COLUMN</a> 컬럼명;```예를 들어, `birthdate` 컬럼을 삭제하려면 다음과 같이 입력합니다.```sqlALTER TABLE employees DROP COLUMN birthdate;``` 2. 테이블 추가 및 삭제 2.1. 테이블 추가새로운 테이블을 생성할 때는 `<a href='https://sangseek.com/sangseeks/CREATE TABLE/ko'>CREATE TABLE</a>` 문을 사용합니다.```sqlCREATE TABLE 테이블명 ( 컬럼명1 데이터타입 [제약조건], 컬럼명2 데이터타입 [제약조건], ...);```예를 들어, `d<a href='https://sangseek.com/sangseeks/epartments/ko'>epartments</a>`라는 테이블을 생성하려면 다음과 같이 입력합니다.```sqlCREATE TABLE departments ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL);``` 2.2. 테이블 삭제더 이상 필요하지 않은 테이블을 삭제할 수 있습니다.```sqlDROP TABLE 테이블명;```예를 들어, `departments` 테이블을 삭제하려면 다음과 같이 입력합니다.```sqlDROP TABLE departments;``` 3. 인덱스 및 제약<a href='https://sangseek.com/sangseeks/조건 변경/ko'>조건 변경</a> 3.1. 인덱스 추가인덱스를 추가하여 검색 성능을 향상시킬 수 있습니다.```sqlALTER TABLE 테이블명 <a href='https://sangseek.com/sangseeks/ADD INDEX/ko'>ADD INDEX</a> 인덱스명 (컬럼명);```예를 들어, `employees` 테이블의 `last_name` 컬럼에 인덱스를 추가하려면 다음과 같이 입력합니다.```sqlALTER TABLE employees ADD INDEX idx_last_name (last_name);``` 3.2. 인덱스 삭제더 이상 필요하지 않은 인덱스를 삭제할 수 있습니다.```sqlALTER TABLE 테이블명 <a href='https://sangseek.com/sangseeks/DROP INDEX/ko'>DROP INDEX</a> 인덱스명;```예를 들어, `idx_last_name` 인덱스를 삭제하려면 다음과 같이 입력합니다.```sqlALTER TABLE employees DROP INDEX idx_last_name;``` 3.3. 제약조건 추가 및 삭제제약조건(예: 외래 키, 고유 제약조건 등)을 추가하거나 삭제할 수 있습니다.- 외래 키 추가:```sqlALTER TABLE 자식테이블명 ADD CONSTRAINT fk_제약조건명 FOREIGN KEY (컬럼명) REFERENCES 부모테이블명(부모컬럼명);```- 외래 키 삭제:```sqlALTER TABLE 자식테이블명 DROP FOREIGN KEY fk_제약조건명;``` 4. 스키마 변경 시 주의사항1. 백업 : 스키마 변경 전에 데이터베이스를 백업하는 것이 중요합니다. 변경 작업 중 문제가 발생할 경우 데이터를 복구할 수 있습니다.2. 트랜잭션 사용 : 가능하다면 스키마 변경 작업을 트랜잭션으로 묶어 원자성을 보장하는 것이 좋습니다. MySQL에서는 `START TRANSACTION`, `COMMIT`, `ROLLBACK`을 사용하여 트랜잭션을 관리할 수 있습니다.3. 성능 고려 : 대량의 데이터를 가진 테이블에서 스키마를 변경할 경우 성능에 영향을 줄 수 있습니다. 특히, 인덱스 추가나 컬럼 삭제는 시간이 걸릴 수 있습니다.4. 애플리케이션 테스트 : 스키마 변경 후 애플리케이션의 기능이 정상적으로 작동하는지 테스트해야 합니다. 데이터베이스 구조가 변경되면 애플리케이션의 쿼리나 로직에도 영향을 미칠 수 있습니다.5. 문서화 : 스키마 변경 사항을 문서화하여 팀원들과 공유하는 것이 좋습니다. 이는 향후 유지보수 및 개발에 도움이 됩니다. 결론MySQL에서 데이터베이스의 스키마를 변경하는 것은 다양한 방법으로 수행할 수 있으며, 각 방법은 특정 요구 사항에 따라 다르게 적용될 수 있습니다. 스키마 변경은 데이터베이스의 성능과 무결성에 큰 영향을 미칠 수 있으므로, 신중하게 계획하고 실행하는 것이 중요합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기