더북(TheBook)

코드 10-11은 INSERT 문에 SELECT 문이 결합된 형태로, emp_test 테이블에서 사번이 1001과 1002인 데이터를 조회해 그 결과를 emp_test2 테이블에 넣습니다. 2건이 조회되므로 emp_test2 테이블에도 2건의 데이터가 입력됩니다. 계속 강조하지만, 입력할 칼럼과 실제 들어갈 값의 개수, 순서, 데이터 타입이 일치해야 합니다. 따라서 입력 대상인 emp_test2 테이블의 칼럼과 SELECT 절에 명시한 emp_test 테이블의 칼럼을 맞춰야 한다는 점을 꼭 기억하세요.

코드 10-12

INSERT INTO emp_test2
SELECT *
  FROM emp_test
 WHERE emp_no IN (1003, 1004);

SELECT *
  FROM emp_test2;

실행결과

코드 10-12는 INSERT 문에 입력할 칼럼을 명시하지 않았습니다. 이는 emp_test2 테이블의 모든 칼럼에 값을 입력하겠다는 뜻이죠. 그래서 SELECT 절에서도 *를 명시해 전체 칼럼을 조회합니다. emp_test2 테이블과 emp_test 테이블은 구조가 똑같아서 오류 없이 성공합니다. 두 테이블의 구조가 다르면, 예를 들어 칼럼 수가 다르거나 칼럼 수와 데이터 타입이 같더라도 테이블 정의에서 명시한 칼럼 순서가 다르면 오류가 발생합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.