DML
(DATA MANIPULATION LANGUAGE)
데이터 조작어
[ INSERT | SELECT | UPDATE | DELETE ]
특징
명령문 실행 후 취소가 가능하다
ROLLBACK
< 1 >
INSERT
데이터 추가
INSERT INTO 테이블명(컬럼1,컬럼2..) VALUES(컬럼1의 데이터 , 컬럼2의 데이터 ...)
참조 : 다른 테이블 데이터 복사
INSERT INTO 복사될테이블명
SELECT * FROM 원본테이블명
♠\ 참조 /♠
\ ( 1 ) /
NULL 값 추가
암묵적 NULL 값 추가
만약 한 테이블의 컬럼이 3개인데 컬럼 2개만 추가했을때
자동으로 NULL 값이 추가됨
명시적 NULL 값 추가
값에 NULL 추가
\ ( 2 ) /
DATE 형식
암묵적인 방식 (문자열 → 날짜형데이터)
INSERT INTO TALBE (날짜형데이터형식 컬럼)
VALUES ('2000/01/01')
명시적인 방식
한마디로 날짜포맷 이용
INSERT INTO TABLE (날짜데이터형식형식 컬럼)
VALUES (TO_DATE('2000/01/01','YYYY-MM-DD HH24:MI:SS'))
현재 날짜 넣기
INSERT INTO TABLE (날짜데이터형식형식 컬럼)
VALUES (SYSDATE)
< 2 >
UPDATE
수정
컬럼안의 값 변경
조건식을 잘 적어주셔야겠죠??
UPDATE 테이블명
SET "컬럼명" = 변경할 값[,"컬럼명1 = 변경할 값]... <-여러 컬럼의 값을 한번에 수정 가능
[WHERE 조건식]
♠\ 참조 /♠
주의
만약 WHERE 조건식이 없다면
컬럼안의 모든 데이터가 변경될 수 있으니
자기 의도가 아니라면 주의
ROLLBACK으로 복구가 가능하다.
< 3 >
DELETE
데이터 삭제
DELETE FROM "테이블명"
[WHERE 조건식];
TRUNCATE
DDL 정의 언어이다.
TRUNCATE TABLE "테이블명"
♠\ 참조 /♠
\ ( 1 ) /
DELETE - WHERE 조건식
주의!
WHERE 조건식을 넣지 않았을때
모든 데이터가 날라 가버리니 주의!
\ ( 2 ) /
DELETE 와 TRUNCATE 차이점
속도 | AUTO COMMIT | 데이터 용량 | |
DELETE | 느리다 | 안함 | 변화 없음 |
TRUNCATE | 빠름 | 실행 | 줄어듦 |
< 4 >
MERGE
특징
( 1 )
테이블에 데이터가
이미 존재하고 있으면 업데이트(UPDATE) 또는 삭제(DELETE)
없으면 삽입(INSERT)
( 2 )
WHEN MATCHED 와 WHEN NOT MATCHED를
같이 사용하면 업데이트 삽입 둘다 한번에 가능
( 3 )
단일 테이블에서 MERGE 사용
( 예시 )
MERGE INTO "테이블명" [별칭]
USING DUAL <- 조인 테이블 예시) SELECT 컬럼1,컬럼2... FROM 테이블명 [별칭]
ON (공통 컬럼조건)
WHEN MATCHED THEN UPDATE SET "컬럼명1" = 값1, "컬럼명2" = 값2 ,... <-WHEN MATCHED == 컬럼이 있다면
[WHERE 조건식]
[DELETE WHERE 조건식]
-- 또는
WHEN NOT MATCHED THEN <- WHEN NOT MATCHED == 컬럼이 없다면
INSERT(컬럼목록) VALUE(값 목록)
[WHERE 조건식];
'데이터베이스 > ORACLE_DB' 카테고리의 다른 글
Oracle_SQL - 시퀀스(Squence) (0) | 2023.09.14 |
---|---|
Oracle_SQL - 제약조건 (0) | 2023.09.14 |
Oracle_SQL - 테이블 생성 , 수정 , 삭제 (DDL) (0) | 2023.09.13 |
Oracle_SQL - SubQuery (서브쿼리) (0) | 2023.09.12 |
Oracle_SQL - JOIN (조인) (0) | 2023.09.11 |