< DML : DATA MANIPULATION LANGUAGE >
데이터 조작 언어
테이블에 새로운 데이터를 삽입(INSERT)하거나,
기존의 데이터를 수정(UPDATE)하거나
삭제(DELETE) 하는 구문
1. INSERT : 테이블에 행을 추가하는 구문
[표현법]
1) INSERT INTO 테이블명 VALUES(값, 값, 값, ........);
=> 해당 테이블에 모든 컬럼을 추가하고자 하는 값을
내가 직접 제시해서 한 행을 INSERT 하고자 할 때 사용
주의할 점 : 컬럼 순번을 지켜서 VALUES 괄호 안에 나열해야 한다.
2) INSERT INTO 테이블명(컬럼명1, 컬럼명2, 컬럼명3, ......)VALUES(값1, 값2, 값3);
=> 해당 테이블에 특정 컬럼만 선택해서 그 컬럼에 추가할 값만 제시하고자 할 때 사용
한 행 단위로 추가되기 때문에 선택이 안된 컬럼은 기본적으로 NULL 값이 들어감
(기본값 DEFAULT이 저장되어있을 경우 기본값이 들어감)
주의사항 : NOT NULL 제약조건이 걸려있는 컬럼은 반드시 직접 값을 제시해야 함
(NOT NULL임에도 불구하고 기본값 DEFAULT이 지정되어있는 컬럼은 선택 안해도 됨)
3) INSERT INTO 테이블명 (서브쿼리);
=> VALUES로 값을 기입하는 것 대신에 서브쿼리로 조회한 결과값을 INSERT하는 구문
(여러 행을 INSERT 시킬 수 있다.)
2. INSERT ALL
두 개 이상의 테이블에 각각 INSERT할 때 사용
그 때 사용되는 서브쿼리가 동일한 경우
1) INSERT ALL
INTO 테이블명1 VALUES(컬럼명, 컬럼명, 컬럼명..)
INTO 테이블명2 VALUES(컬럼명, 컬럼명, 컬럼명...)
서브쿼리;
2) INSERT ALL
WEHN 조건1 THEN
INTO 테이블명1 VALUES(컬럼명, 컬럼명, ..)
WHEN 조건2 THEN
INTO 테이블명2 VALUES(컬럼명, 컬럼명, ...)
서브쿼리;
3. UPDATE
테이블에 기록된 기존의 데이터를 수정하는 구문
[표현법]
1) UPDATE 테이블명
SET 컬럼명 = 바꿀값 => 여러 개의 컬럼 동시 변경 가능("," ".")
WHERE 조건; => 생략 가능, 생략 시 전체 모든 행의 데이터가 다 변경
2) UPDATE 시에 서브쿼리를 사용
서브쿼리를 수행한 결과값으로 UPDATE하겠다.
UPDATE 테이블명
SET 컬럼명 = (서브쿼리)
WHERE 조건; => 생략 가능
※ UPDATE시 주의사항
- 제약 조건!!!!! 에 위배되면 안된다!!!
4. DELETE
테이블에 기록된 데이터를 삭제하는 구문
[표현법]
DELETE FROM 테이블명
WHERE 조건; => WHERE절은 생략가능, 생략 시 해당 테이블의 전체 행 삭제
TRUNCATE
: 테이블의 전체 행을 삭제할 때 사용하는 구문(절삭)
DELETE보다 수행속도가 더 빠름!!
별도의 조건 제시 불가, ROLLBACK이 불가능! cf. ROLLBACK COMMIT되기 이전 단계로 돌려줌, (이전 상태로 복구)
'*SQL_Oracle*' 카테고리의 다른 글
DCL < GRANT, REVOKE> (0) | 2021.11.11 |
---|---|
DDL < ALTER, DROP > (0) | 2021.11.11 |
DDL <CREATE> SUBQUERY를 이용한 테이블생성 (0) | 2021.11.10 |
DDL < CREATE > (0) | 2021.11.08 |
DML < SELECT > SUBQUERY(서브쿼리) (0) | 2021.11.06 |