/* 문법 */ INSERT [INTO] table_name VALUES(value [,value...]) INSERT [INTO] table_name(column[,column...]) VALUES(value [,value...]) INSERT [INTO] table_name select_statement /* 파라미터 */ table_name --행을 추가하는 테이블 이름 value --삽입하는 열의 값 column --열의 이름 select_statement --SELECT 명령 |
『INSERT』명령을 사용하면 테이블에 행을 추가할 수 있다. SQL Server에서는 INTO를 생략할 수 있지만 Oracle과 Access에서는 반드시 기술해야 한다. 값은 『VALUES』다음에 오는 괄호 속에 기입한다. 이때, 추가하는 테이블의 정의에 따라 순서대로 기술한다.
문자열형의 값을 기술할 경우에는 'String Data'와 같이 홑따옴표로 묶어 문자열 식임을 표시한다. NULL값을 추가할 때에는 NULL이라고 기술하지만, NOT NULL 지정의 열에 대해서 기술하면 오류가 발생한다.
/* 사용 예 */ INSERT INTO foo VALUE(1,2,'ABC') |
열을 지정하면 그 열의 값만을 추가할 수 있다. 지정하지 않은 열은 기본값이 정의되어 있으면 기본값이, 정의되어 있지 않으면
NULL값이 그 열의 값이 된다. 그리고 『NOT NULL』이 지정되어 있는 열은 반드시 값을 지정해야 한다.
열 지정의 순서는 임의로 결정하지만, VALUES에 이어 계속되는 값과 일치해야 한다. SQL Server에서 기본값을 INSERT 할 떄는
명시적으로 『DEFAULT』를 지정할 수 있다. Oracle, Access에서는 DEFAULT가 허용되지 않는다.
테이블에 정의되어 있는 열 중에 INSERT때의 열 지정에 없는 것은 NULL값으로 추가되지만, 열에 기본값이 지정되어 있는 경우에는
그 값으로 행이 추가된다.
/* 사용 예 */ INSERT INTO foo(a,b,c) VALUES(1,2,'ABC') |
SELECT에서 얻은 결과를 그대로 테이블에 INSERT할 수 있다. 필요할 경우에는 INSERT하는 테이블에 열을 지정할 수도 있다.
INSERT와 SELECT에서 열의 수는 같아야 한다.
/* 사용 예 */ INSERT INTO foo(a,b,c) SELECT a,b,c FROM bar |
'커맨드 명령' 카테고리의 다른 글
2.1.11 DELETE (0) | 2018.11.06 |
---|---|
2.1.10 UPDATE (0) | 2018.11.05 |
2.1.8 UNION (0) | 2018.11.05 |
2.1.7 서브 쿼리 (0) | 2018.11.05 |
2.1.6 ORDER BY 구문 (0) | 2018.11.05 |