IT STUDY LOG
[Oracle] DML 본문
# INSERT
- 테이블에 새로운 행을 삽입하는 명령어
하나의 행 삽입
INSERT INTO dept
VALUES (50, 'EDUCATION', 'D1');
SELECT * FROM dept;
INSERT INTO dept(dname, deptno)
VALUES ('MARKETING', 60); -- 입력하지 않은 값은 NULL로 입력
INSERT INTO dept
VALUES (70, 'FINANCE', NULL); -- 명시적으로 NULL로 입력 가능
COMMIT; -- 지금까지 변경된 작업을 반영
SELECT * FROM dept;
특정 값을 갖는 행 삽입
- 단일행 함수를 활용해 입력 가능 (그룹함수는 불가)
- 특정 값을 갖는 행 삽입
- 현재 사용자 이름 입력: USER 함수 사용
- 날짜 값을 입력할 때는 TO_DATE로 변환
서브쿼리를 사용해 한 번에 여러행 삽입
INSERT INTO dept
(SELECT deptno+5, dname||'_1', null FROM dept);
COMMIT;
SELECT * FROM dept;
# UPDATE
- 테이블에 있는 행을 변경
WHERE절 생략 시 전체 행 변경
특정 행 수정
UPDATE dept
SET loc_code = 'E1'
WHERE loc_code IS NULL;
COMMIT;
SELECT * FROM dept;
ROLLBACK; -- 마지막 COMMIT 시점으로 롤백
SELECT * FROM dept;
서브쿼리를 이용한 행 변경
- 비상관 업데이트, 상관 업데이트 존재
# DELETE
- 테이블에 있는 행을 삭제
WHERE절 생략 시 전체 행 삭제
DELETE
FROM dept;
특정 행 삭제
DELETE dept
WHERE dname LIKE '%1';
SELECT * FROM dept;
COMMIT;
서브쿼리를 이용한 행 삭제
- 비상관 딜리트, 상관 딜리트 존재
# MERGE
- UPDATE + INSERT, 테이블에 이미 데이터가 존재시 UPDATE하고 새 데이터면 INSERT
'computer science > database' 카테고리의 다른 글
[Oracle] DML - FLASHBACK 기능 (0) | 2023.09.01 |
---|---|
[Oracle] 분석함수 (0) | 2023.09.01 |
[Oracle] 서브쿼리 - INLINE 뷰, WITH 구문 (0) | 2023.09.01 |
[Oracle] 서브쿼리 - 다중행/다중열/상호연관 서브쿼리 및 기타 서브쿼리 (0) | 2023.09.01 |
[Oracle] 서브쿼리 - 단일행/단일열 서브쿼리 (0) | 2023.09.01 |
Comments