INSERT
- 테이블에 새로운 행 추가
- 특정 컬럼에만 DATA 추가
INSERT INTO table_name(column_name,...)
VALUES(column_value,...);
- 모든 컬럼에 DATA 추가
INSERT INTO table_name
VALUES(column_value,...);
※ 문자와 날짜 값은 ' ' 사용.
주의 - 오류
- column_name 수 보다 column_value 값의 개수가 적거나 많으면 에러 발생
INSERT INTO STUDENTS(STUDENT_ID, FIRST_NAME, AGE)
VALUES(100, 'KIM'); -- 에러
INSERT INTO STUDENTS(STUDENT_ID, FIRST_NAME, AGE)
VALUES(100, 'KIM', 'KOREA', 20); -- 에러
- column_name이 잘못 입력되었을 때 에러 발생
INSERT INTO STUDENTS(ID, FIRST_NAME, AGE)
VALUES(100, 'KIM', 20) -- 에러
- 칼럼과 입력할 값의 데이터 타입이 서로 맞지 않을 경우 에러 발생
INSERT INTO STUDENTS(STUDENT_ID, FIRST_NAME, AGE)
VALUES(100, KIM, 20) -- 에러
※ 문자와 날짜 값은 ' ' 사용.
- 칼럼명을 생략한 INSERT문 → 모든 칼럼 데이터 추가
INSERT INTO STUDENTS
VALUES( 105. 'LEE', 20);
- NULL값 입력 : 해당 칼럼의 값을 모르거나 확정되지 않았을 때 사용, 컬럼이 NULL값 허용인 경우
→ 암시적인 NULL값 삽입 : INSERT 리스트에서 칼럼 생략, 자동으로 NULL 값 할당
→ 명시적인 NULL값 삽입 : VALUES에 NULL이라고 직접 기술, NULL 값 대신 ' ' 가능
기존 테이블에 존재하는 데이터를 다른 테이블에 입력할 때
INSERT INTO table_name(column1, column2,...)
SELECT colunm1, column2,...FROM table_name WHERE 조건;
INSERT ALL
- 두 개 이상의 테이블에 INSERT ALL을 사용하여 한번에 삽입
- 단, 각 서브쿼리의 조건절이 같아야 함
INSERT ALL
INTO STUDENTS
VALUES(STUDENT_ID, FIRST_NAME, AGE)
INTO VOLUNTEER
VALUES(STUDENT_ID, FIRST_NAME, START_DATE, END_DATE)
SELECT STUDENT_ID, FIRST_NAME, AGE, START_DATE, END_DATE
FROM SCHOOL
WHERE GRADE >= 3;
- 조건이 다를 때
INSERT ALL
WHERE 조건 THEN
INTO table_name1
VALUES (column_value1, ...)
WHERE 조건 THEN
INTO table_name2
VALUES (column_value1, ...)
SELECT column1, column2, ...
FROM table_name;
'기록하는 중 > 데이터베이스' 카테고리의 다른 글
[Oracle]] DELETE, MERGE (0) | 2023.12.12 |
---|---|
[Oracle] UPDATE (0) | 2023.12.12 |
[Oracle] RENAME, TRUNCATE (0) | 2023.12.11 |
[Oracle] DROP (0) | 2023.12.03 |
[Oracle] ALTER (0) | 2023.12.03 |