데이터 조작어
:데이터를 추가, 수정, 삭제하는 조작어
-> DML은 COMMIT하면 영구 반영, COMMIT 전에는 ROLLBACK 가능
CREATE TABLE 테이블명 AS SELECT ...
참고) DDL
CREATE 대상 - 생성
ALTER 대상 - 변경
DROP 대상 - 삭제
-> 실행과 동시에 COMMIT 진행, 데이터 바로 반영, ROLLBACK 불가
INSERT INTO 테이블명 (컬럼1, 컬럼2, ..) VALUES (값1, 값2, ...);
-(컬럼1, 컬럼2, ..) : 전체 데이터를 추가하는 상황, 컬럼의 순서가 동일한경우 생략 가능
-값 : 문자 -> '값'
-숫자 - 값
1) DEPT_TEMP 테이블에 데이터 추가하기
2) INSERT문으로 데이터 입력하기(열 지정을 생략할 때)
1) NULL을 지정하여 입력하기
2) 빈 공백 문자열로 NULL을 입력하기
INSERT INTO DEPT_TEMP VALUES (50, 'WEB', NULL);
INSERT INTO DEPT_TEMP VALUES (60, 'DATABASE', '');
-> 둘다 NULL로 입력댐 (Oracle)
3) 열 데이터를 넣지 않는 방식으로 NULL 데이터 입력하기
1) INSERT문으로 날짜 데이터 입력하기(날짜 사이에 / 입력)
2) INSERT문으로 날짜 데이터 입력하기(날짜 사이에 - 입력)
3) TO_DATE 함수를 사용하여 날짜 데이터 입력하기
4) SYSDATE를 사용하여 날짜 데이터 입력하기
-시스템의 현재 날짜와 시간
참고) 자료형 변환 함수
TO_NUMBER() : 형식화된 문자열 숫자 -> 숫자
TO_DATE() : 형식화된 문자열 날짜 -> 날짜
TO_CHAR() : 숫자, 문자 -> 형식화된 문자열
1) 서브 쿼리로 여러 데이터 추가하기
2) INSERT문에서 서브쿼리를 사용할 때 유의할 점
- VALUES 절은 사용하지 않는다.
- 데이터가 추가되는 테이블의 열 개수와 서브쿼리의 열 개수가 일치해야 한다.
- 데이터가 추가되는 테이블의 자료형과 서브쿼리의 자료형이 일치해야 한다.
UPDATE 테이블명
SET
컬럼명 = 값,
컬럼명 = 값,
컬럼명 = 값..
WHERE 조건식;
DELETE FROM 테이블명 WHERE 조건식;
DELETE FROM EMP_TEMP2
WHERE EMPNO IN (SELECT E.EMPNO FROM EMP E, SALGRADE S
WHERE E.SAL BETWEEN S.LOSAL AND S.HISAL AND S.GRADE = 3);