안녕하세요. 시나공 2020 정보처리기사 필기 433p에 ALTER TABLE 설명을 보면 속성에 대해 변경할 때
'ALTER TABLE 테이블명 ALTER 속성명 ~~'
라고 나와있으며, 예제2를 보면 '<학생> 테이블의 '학번'필드의 데이터 타입과 크기를 VARCHAR(10)으로 하고 NULL 값이 입력되지 않도록 변경하시오.에서
'ALTER TABLE 학생 ALTER 학번 VARCHAR(10) NOT NULL;'
이라고 되어 있습니다.
그런데 테이블명 다음에 ALTER이 맞는지 궁금합니다. 집에서 my-sql로 직접 해봤는데 오류가 나고 ALTER가 아닌 MODIFY로 해서 'ALTER TABLE 학생 MODFIY ~~ ' 이런식으로 하니 제대로 되더라고요. 혹시 my-sql이라 안되는 것인가요?
질문을 정리하자면 ALTER문에서 속성에 대해 변경하고자 할 때 테이블명 다음에 ALTER이 아닌 MODIFY가 아닌지 궁금하여 질문드립니다.
감사합니다.
안녕하세요 길벗수험서 운영팀입니다.
alter와 modify 둘 모두 정답입니다.
alter ~ alter는 SQL 작성 표준인 ANSI/ISO/IEC 9075를 준수한 작성법입니다. (이하 ansi표준)
다만 최근 DBMS를 제공하는 대부분의 벤더들이 자신들에게 적합한 SQL 작성법을 사용하고 있음에 따라 최근에는 alter ~ alter 구문을 사용하는 DBMS를 찾기가 어려울 정도가 되었습니다.
(대부분 modify를 사용)
이에 ansi표준도 갱신 때 이를 병기한 바 있어 2021 교재 개정 때 alter ~ alter 구문을 alter ~ modify 구문으로 변경하였습니다.
그렇다고 기존의 alter ~ alter 구문이 오답이 되는 것은 아니라는 점도 알아주시기 바랍니다.
행복한 하루되세요 :)
-
관리자2021-03-03 16:36:00
안녕하세요 길벗수험서 운영팀입니다.
alter와 modify 둘 모두 정답입니다.
alter ~ alter는 SQL 작성 표준인 ANSI/ISO/IEC 9075를 준수한 작성법입니다. (이하 ansi표준)
다만 최근 DBMS를 제공하는 대부분의 벤더들이 자신들에게 적합한 SQL 작성법을 사용하고 있음에 따라 최근에는 alter ~ alter 구문을 사용하는 DBMS를 찾기가 어려울 정도가 되었습니다.
(대부분 modify를 사용)
이에 ansi표준도 갱신 때 이를 병기한 바 있어 2021 교재 개정 때 alter ~ alter 구문을 alter ~ modify 구문으로 변경하였습니다.
그렇다고 기존의 alter ~ alter 구문이 오답이 되는 것은 아니라는 점도 알아주시기 바랍니다.
행복한 하루되세요 :)