SQL ALTER TABLE 문은 테이블의 열을 추가, 변경 또는 제거합니다. 이 문을 사용하면 테이블이 레코드를 저장하더라도 테이블이 생성된 후 수정할 수 있습니다.
SQL 테이블을 변경해야 한다고 결정할 수 있습니다. 예를 들어 열 이름을 바꾸거나 테이블에 새 열을 추가할 수 있습니다. 이러한 변경은 모두 SQL ALTER TABLE 명령으로 가능합니다.
SQL 변경 테이블
ALTER TABLE 명령을 사용하면 다음과 같이 기존 테이블을 변경할 수 있습니다.
- 열 추가.
- 제약조건 추가.
- 열 제거.
- 데이터 유형 변경.
- 열 이름 바꾸기.
이 자습서에서는 예제를 참조하여 SQL ALTER TABLE 명령을 사용하여 테이블을 변경하는 방법에 대해 설명합니다.
테이블 설정
이 자습서에서는 비즈니스용 데이터베이스 테이블을 수정합니다. 이 데이터베이스는 비즈니스에서 일하는 각 직원에 대한 정보를 저장합니다. 우리 테이블은 "직원 " 및 다음 값을 포함합니다.
테이블을 만든 후 구조를 변경하고 싶다는 것을 깨달았습니다. SQL ALTER TABLE 명령을 사용하여 그렇게 할 수 있습니다.
테이블을 만드는 방법을 배우려면 SQL CREATE TABLE 가이드를 확인하십시오.
SQL ALTER TABLE:테이블에 열 추가
ALTER TABLE 명령을 사용하여 SQL 테이블에 열을 추가할 수 있습니다. 기존 테이블에 새 열을 추가하는 구문은 다음과 같습니다.
참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.
부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.
ALTER TABLE table_name ADD column_name data_type constraints;
모든 직원의 전화 번호를 저장하는 "직원" 테이블에 새 열을 추가한다고 가정합니다. 이 열은 "phone_number"라고 해야 합니다. 열은 VARCHAR()을 사용해야 합니다. 데이터 유형(최대 길이로 문자열을 저장할 수 있음)과 제약이 없습니다.
다음 문을 사용하여 이 열을 만들 수 있습니다.
ALTER TABLE employees ADD phone_number VARCHAR(60);
이 명령은 "직원" 데이터베이스의 테이블에 새 열을 추가합니다. 이제 데이터베이스 구조를 보면 "phone_number"라는 새 열이 하나 있습니다.
필드 | 유형 | 기본값 |
이름 | varchar(60) | NULL |
제목 | varchar(60) | NULL |
부서 | varchar(60) | NULL |
직원 번호 | varchar(60) | NULL |
전화번호 | varchar(60) | |
SQL에서 데이터베이스에 열을 추가하는 방법에 대해 자세히 알아보려면 SQL 열 추가 가이드를 확인하세요.
SQL ALTER TABLE:테이블에 제약 조건 추가
마지막 섹션에서 우리는 테이블에 phone_number라는 새로운 열을 추가했습니다. 그러나 테이블에 제약 조건을 추가하는 것을 잊었습니다.
이 예에서 이는 데이터베이스가 여러 직원에 대해 동일한 전화번호를 잠재적으로 저장할 수 있음을 의미하므로 실용적이지 않습니다.
이 문제를 해결하기 위해 테이블의 "phone_number" 열에 UNIQUE 제약 조건을 추가할 수 있습니다. SQL에서 열에 제약 조건을 추가하는 구문은 다음과 같습니다.
ALTER TABLE table_name ADD UNIQUE (column_name);
이 명령은 "phone_number" 열에 제약 조건을 추가합니다.
ALTER TABLE employees ADD UNIQUE (phone_number);
다른 제약 조건을 추가하려면 "UNIQUE"를 다른 SQL 제약 조건으로 바꾸면 됩니다.
SQL ALTER TABLE:테이블에서 열 제거
ALTER TABLE 명령을 사용하여 테이블에서 열을 제거할 수도 있습니다. 이 작업을 수행하는 구문은 다음과 같습니다.
ALTER TABLE table_name DROP COLUMN column_name;
테이블에서 "department" 열을 제거하려고 한다고 가정합니다. 나중에 직원의 부서를 다른 테이블에 연결하는 새 열을 만들려고 합니다. 다음 명령을 사용하여 이 열을 제거할 수 있습니다.
ALTER TABLE employees DROP COLUMN department;
이 명령을 실행하면 테이블의 "department" 열이 삭제됩니다. 따라서 이제 테이블의 구조가 다음과 같이 나타납니다.
필드 | 유형 | 기본값 |
이름 | varchar(60) | NULL |
제목 | varchar(60) | NULL |
직원 번호 | varchar(60) | NULL |
전화번호 | varchar(60) | |
SQL ALTER TABLE:열의 데이터 유형 변경
ALTER TABLE 명령을 사용하여 열의 데이터 유형을 변경할 수 있습니다. 열의 데이터 유형을 변경하는 구문은 다음과 같습니다.
ALTER TABLE table_name ALTER COLUMN column_name new_data_type;
이 명령에는 MySQL 및 Oracle(10G 이전)과 Oracle 10G 이상에 대한 두 가지 대체 버전이 있습니다.
ALTER TABLE table_name MODIFY COLUMN column_name new_data_type; (MySQL, Oracle pre-10G) ALTER TABLE table_name MODIFY column_name new_data_type; (Oracle 10G+ and later)
초기 "employees" 테이블을 생성할 때 "employee_number" 필드를 VARCHAR()으로 지정하는 실수를 범했습니다. 숫자 대신. 이 실수를 수정하기 위해 다음 명령을 사용할 수 있습니다.
ALTER TABLE employees ALTER COLUMN employee_number INT;
이 명령은 "employee_number" 열의 유형을 INT로 변경합니다. 따라서 데이터베이스의 새 구조는 다음과 같습니다.
필드 | 유형 | 기본값 |
이름 | varchar(60) | NULL |
제목 | varchar(60) | NULL |
직원 번호 | varchar(60) | NULL |
전화번호 | int | |
SQL ALTER TABLE:테이블 이름 바꾸기
ALTER TABLE 명령을 사용하면 SQL 테이블의 이름을 바꿀 수도 있습니다. 테이블 이름을 바꾸는 구문은 다음과 같습니다.
ALTER TABLE current_table RENAME new_table;
테이블 "employees"의 이름을 "old_employees_2019"로 변경한다고 가정합니다. 다음 명령을 사용하여 수행할 수 있습니다.
ALTER TABLE employees RENAME old_employees_2019;
MySQL에서는 ALTER TABLE 명령을 사용하여 테이블 이름을 변경할 수 없습니다. MySQL에서는 ALTER TABLE 대신 RENAME table 명령어를 사용할 수 있습니다.
MySQL에서 테이블 이름을 바꾸려면 다음 명령을 사용합니다.
RENAME TABLE employees TO old_employees_2019;
결론
SQL ALTER TABLE 명령을 사용하면 SQL에서 테이블의 구조를 변경할 수 있습니다. 데이터베이스에 테이블을 추가하거나 제거하거나 데이터베이스의 테이블을 변경할 수 있습니다. 또한 UNIQUE 또는 NOT NULL과 같이 테이블과 관련된 제약 조건을 수정할 수 있습니다.
SQL에 대해 더 알고 싶으십니까? SQL 학습 방법 가이드를 읽어보세요. SQL을 배우는 방법에 대한 최고의 팁을 찾을 수 있습니다. 또한 지식을 쌓는 데 도움이 되도록 전문가가 선별한 학습 리소스 목록도 찾을 수 있습니다.