UPDATE: 표를 수정 ex) UPDATE 대상테이블 SET 변경대상칼럼 = 변경대상 칼럼의 값 WHERE 조건
예제)
UPDATE DEPT
SET DNAME = '영업' -- 이것만 입력시 모든 DNAME이 영업으로 획일화
WHERE DNAME = 'SALES' ; -- SALES 부분만 영업으로 변경 -> 일부 수정을 위한 필수 구문
ROLLBACK; 실험 후 되돌아가기
DELETE: 삭제 ex) DELETE FROM 대상테이블 where 조건 (조건 없으면 테이블 전체 삭제)
예제)
DELETE FROM DEPT WHERE DEPTNO = 60;
실수로 지웠다면 바로 ROLLBACK; 실행 (commit을 함부로 하지 않는다.)
INSERT INTO: 새로운 열 혹은 행 데이터 추가
예제)
..
TABLE에서 맨 뒤에 SQL을 누르면 생성원리를 볼 수 있다.
INSERT INTO CHAP10HW_DEPT (DEPTNO, DNAME, LOC) VALUES (50, 'ORACLE', 'BUSAN');
INSERT INTO CHAP10HW_DEPT (DEPTNO, DNAME, LOC) VALUES (60, 'SQL', 'ILSAN');
INSERT INTO CHAP10HW_DEPT (DEPTNO, DNAME, LOC) VALUES (70, 'SELECT', 'INCHEON');
INSERT INTO CHAP10HW_DEPT (DEPTNO, DNAME, LOC) VALUES (80, 'DML', 'BUNDANG');
-- INSERT INTO 테이블이름 (칼럼1,칼럼2,칼럼3) VALUES (값1, 값2, 값3); 스트링은 ''안에 기입!
INSERT INTO CHAP10HW_EMP
VALUES(7201, 'TEST_USER1', ' MG', 7788, TO_DATE('2016-01-02', 'YYYY-MM-DD'), 4500, NULL, 50);
INSERT INTO CHAP10HW_EMP
VALUES(7202, 'TEST_USER2', 'CLERK', 7201, TO_DATE('2016-02-21', 'YYYY-MM-DD'), 1800, NULL, 50);
INSERT INTO CHAP10HW_EMP
VALUES(7203, 'TEST_USER3', 'ANALYST', 7201, TO_DATE('2016-04-11', 'YYYY-MM-DD'), 3400, NULL, 60);
INSERT INTO CHAP10HW_EMP
VALUES(7204, 'TEST_USER4', 'SALESMAN', 7201, TO_DATE('2016-05-31', 'YYYY-MM-DD'), 2700, 300, 60);
INSERT INTO CHAP10HW_EMP
VALUES(7205, 'TEST_USER5', 'CLERK', 7201, TO_DATE('2016-07-20', 'YYYY-MM-DD'), 2600, NULL, 70);
INSERT INTO CHAP10HW_EMP
VALUES(7206, 'TEST_USER6', 'CLERK', 7201, TO_DATE('2016-09-08', 'YYYY-MM-DD'), 2600, NULL, 70);
INSERT INTO CHAP10HW_EMP
VALUES(7207, 'TEST_USER7', 'LECTURER', 7201, TO_DATE('2016-10-28', 'YYYY-MM-DD'), 2300, NULL, 80);
INSERT INTO CHAP10HW_EMP
VALUES(7208, 'TEST_USER8', 'STUDENT', 7201, TO_DATE('2018-03-09', 'YYYY-MM-DD'), 1200, NULL, 80);
-- 앞에 칼럼지정 안해도 VALUE 순서대로 입력시 자동으로 원본기준 순서대로 입력됨.
UPDATE CHAP10HW_EMP
SET DEPTNO = 70
WHERE SAL > (SELECT AVG(SAL)
FROM CHAP10HW_EMP -- 서브쿼리로 평균 연봉이 높은 경우 설정.
WHERE DEPTNO = 50); -- 서브쿼리로 50번 부서로 한정
UPDATE CHAP10HW_EMP
SET SAL = SAL*1.1, -- 80번 부서로 10퍼 인상하는 설정
DEPTNO = 80
WHERE HIREDATE > (SELECT MIN(HIREDATE) -- 입사일이 가장 빠른(MIN) 설정.
FROM CHAP10HW_EMP
WHERE DEPTNO = 60); -- 60번 부서 한정 서브쿼리
DCL: Commit, Rollback 이 둘이 핵심 TCL(Transaction Control Language라고도 함)
Transaction: 하나의 일 처리, 하나의 데이터 변형 작업
Ex) (그냥 한 단위의 작업)
insert;
commit; <- transaction
update;
commit; <- transaction
insert
update; <- transaction
insert
rollback; <- transaction
세션(SESSION): DB 접속시작부터 종료까지의 전체 기간
= 실행되는 하나의 SQL 파일
728x90
반응형
'Programming > Oracle SQL' 카테고리의 다른 글
DDL (Data Definition Language) (0) | 2023.08.28 |
---|---|
IMPORT and EXPORT DATA, 끄적임 (0) | 2023.08.25 |
Subquery (0) | 2023.08.25 |
JOIN (0) | 2023.08.24 |
다중행 함수, GROUP BY, HAVING (0) | 2023.08.24 |