OracleDB - INSERT, UPDATE, DELETE

주빈·2022년 4월 7일
0

OracleDB

목록 보기
5/11
post-thumbnail

📘 DML

DML(Data Manipulation Language) : 데이터 조작 언어
테이블에 값을 삽입하거나(INSERT), 수정하거나(UPDATE), 삭제(DELETE)하는 구문


📜 INSERT

테이블에 새로운 행을 추가하는 구문

✏ INSERT 사용법

INSERT INTO 테이블명 VALUES(데이터, 데이터, ...)

테이블에 모든 컬럼에 대한 값을 INSERT할 때 사용하고
INSERT하고자 하는 컬럼이 모든 컬럼인 경우 컬럼명 생략 가능. 단, 컬럼의 순서를 지켜서 VALUES에 값을 기입해야 한다.

INSERT INTO EMPLOYEE2
VALUES(900, '장채현', '901123-2345678', 'jang_ch@kh.or.kr', '01012341234', 'D1', 'J7', 'S3', 4300000, 0.2, 200, SYSDATE, NULL, 'N');

INSERT INTO 테이블명(컬럼명, 컬럼명, 컬럼명,...) VALUES (데이터1, 데이터2, 데이터3, ...);

테이블에 내가 선택한 컬럼에 대한 값만 INSERT할 때 사용하고
선택안된 컬럼은 값이 NULL이 들어간다.

INSERT INTO EMPLOYEE2(EMP_ID, EMP_NAME, EMP_NO, EMAIL, PHONE, DEPT_CODE, JOB_CODE, SAL_LEVEL, SALARY)
VALUES(900, '장채현', '901123-2345678', 'jang_ch@kh.or.kr', '01012341234', 'D1', 'J7', 'S3', 4300000);

INSERT시 VALUES 대신 서브쿼리 사용 가능하다.

-- 서브쿼리(SQL 내부에 포함된 SELECT문)를 이용한 삽입 (VALUES 생략)
INSERT INTO EMP_01 (SELECT EMP_ID, EMP_NAME, DEPT_TITLE
                    FROM EMPLOYEE
                    LEFT JOIN DEPARTMENT ON (DEPT_CODE = DEPT_ID) );

📜 UPDATE

테이블에 기록된 컬럼의 값을 수정하는 구문

✏ UPDATE 사용법

UPDATE 테이블명 SET 컬럼명 = 바꿀값 [WHERE 컬럼명 비교연산자 비교값]

-- DEPARTMENT2 테이블에서 DEPT_ID가 'D9'인 행의 DEPT_TITLE을 '전략기획팀' 으로 수정
UPDATE DEPARTMENT2 SET DEPT_TITLE = '전략기획팀'
WHERE DEPT_ID = 'D9';

여러 컬럼을 한번에 수정할 시 콤마(,)로 컬럼을 구분하면 된다.

-- D9 / 전략기획팀  -> D0 / 전략기획2팀으로 수정
UPDATE DEPARTMENT2
SET DEPT_ID = 'D0', DEPT_TITLE = '전략기획2팀'
WHERE DEPT_ID = 'D9' 
AND DEPT_TITLE = '전략기획팀';

UPDATE시에도 서브쿼리를 사용 가능

UPDATE 테이블명 SET 컬럼명 = (서브쿼리)

-- EMPLOYEE2 테이블에서
-- 평상시 유재식 사원을 부러워하던 방명수 사원의
-- 급여와 보너스율을 유재식 사원과 동일하게 변경해 주기로 했다.
-- 이를 반영하는 UPDATE문을 작성하시오.
UPDATE EMPLOYEE2 
SET SALARY = (SELECT SALARY FROM EMPLOYEE2 WHERE EMP_NAME = '유재식'),
    BONUS = (SELECT BONUS FROM EMPLOYEE2 WHERE EMP_NAME = '유재식')
WHERE EMP_NAME = '방명수';

다중행 다중열 서브쿼리를 이용한 UPDATE문

-- EMPLOYEE2 테이블에서
-- 방명수 사원의 급여 인상 소식을 전해들은 다른 멤버들이
-- 단체로 파업을 진행했다.
-- 노옹철, 전형돈, 정중하, 하동운 사원의 급여와 보너스를
-- 유재식 사원의 급여와 보너스와 같게 변경하는 UPDATE문을 작성하시오.
UPDATE EMPLOYEE2
SET (SALARY, BONUS) = (SELECT SALARY, BONUS
                       FROM EMPLOYEE2
                       WHERE EMP_NAME = '유재식')
WHERE EMP_NAME IN ('노옹철', '전형돈', '정중하', '하동운');

📜 DELETE

테이블의 행을 삭제하는 구문

✏ DELETE 사용법

DELETE FROM 테이블명 WHERE 조건설정

만약 WHERE 조건을 설정하지 않으면 모든 행이 다 삭제된다.

-- EMPLOYEE2 테이블에서 이름이 '장채현'인 사원 정보 삭제
DELETE FROM EMPLOYEE2 WHERE EMP_NAME = '장채현';
profile
누구에게나 필요한 개발자가 꿈

0개의 댓글

관련 채용 정보