ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 011. DEFAULT 표현식, UPDATE
    SsY/Class 2023. 4. 5. 17:51
    728x90

    2023.04.05 (수)

    HR 계정 실습
    • 팀 과제 (오전)
    더보기

    20230404_02_hr_팀별실습과제_1조.sql 파일 & 후기 확인


    • DEFAULT 표현식
    --■■■ DEFAULT 표현식 ■■■--
    
    -- 1. INSERT 와 UPDATE 문에서
    --    사용자가 전달하는 특정 값이 아닌
    --    기본으로 설정한 값을 입력하도록 처리할 수 있다.
    
    -- 2. 형식 및 구조
    --    컬럼명 데이터타입 DEFAULT 기본값
    
    -- 3. INSERT 명령 시 해당 컬럼에 입력될 값을 할당하지 않거나
    --    (→ 설정하지 않으면 NULL)
    --    DEFAULT 키워드를 이용하여 기본 값을 입력하도록 할 수 있다.
    
    -- 4. DEFAULT 키워드와 다른 제약(NOT NULL 등) 표기가 같이 오는 경우
    --    DEFAULT 키워드를 먼저 표기(작성)할 것을 권장한다. 
    --// 제약조건 뒤에 작성할 경우 종종 DEFAULT 가 기능을 하지 못하는 경우가 있기 때문에
    • DEFAULT 표현식 실습
      - 테이블, 시퀀스 생성 후 세션설정 변경
      - 데이터 입력 후 확인
    더보기
    --○ DEFAULT 표현식 실습
    -- 테이블 생성
    CREATE TABLE TBL_BOARD                          -- 게시판 테이블 생성
    ( SID       NUMBER          PRIMARY KEY         -- 게시물 번호 → 식별자 (자동 증가)
    , NAME      VARCHAR2(30)                        -- 게시물 작성자
    , CONTENTS  VARCHAR2(2000)                      -- 게시물 내용
    , WRITEDAY  DATE            DEFAULT SYSDATE     -- 게시물 작성일 (현재 날짜 자동 입력)
    , COMMENTS  NUMBER          DEFAULT 0           -- 게시물 댓글 갯수 (기본값 0)
    , COUNTS    NUMBER          DEFAULT 0           -- 게시물 조회수 (기본값 0)
    );
    --==>> Table TBL_BOARD이(가) 생성되었습니다.
    ------------------------------------------------------------------------------------------
    --※ SID 를 자동 증가 값으로 운영하려면 시퀀스 객체가 필요하다.
    --   자동으로 입력되는 컬럼은 사용자가 입력해야 하는 항목에서
    --   제외시킬 수 있다. 
    ------------------------------------------------------------------------------------------
    -- 시퀀스 생성
    CREATE SEQUENCE SEQ_BOARD
    NOCACHE;
    --==>> Sequence SEQ_BOARD이(가) 생성되었습니다.
    ------------------------------------------------------------------------------------------
    -- 세션 설정 변경
    ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
    --==>> Session이(가) 변경되었습니다.
    ------------------------------------------------------------------------------------------
    -- 게시물 작성
    INSERT INTO TBL_BOARD(SID, NAME, CONTENTS, WRITEDAY, COMMENTS, COUNTS)
    VALUES(SEQ_BOARD.NEXTVAL,'재혁킴','오라클에서 DEFAULT 표현식을 실습중입니다.'
          , TO_DATE('2023-04-05 15:28:10', 'YYYY-MM-DD HH24:MI:SS'), 0, 0);
    --==>> 1 행 이(가) 삽입되었습니다.
    --// 기본값을 하나도 사용안한 채로 생성.
    --// 말그대로 기본값이기 때문에, 설정값이 있으면 무시하고 설정값대로 입력 가능
    
    INSERT INTO TBL_BOARD(SID, NAME, CONTENTS, WRITEDAY, COMMENTS, COUNTS)
    VALUES(SEQ_BOARD.NEXTVAL,'서영유','계속해서 실습중입니다.', SYSDATE, 0, 0);
    --==>> 1 행 이(가) 삽입되었습니다.
    
    INSERT INTO TBL_BOARD(SID, NAME, CONTENTS, WRITEDAY, COMMENTS, COUNTS)
    VALUES(SEQ_BOARD.NEXTVAL,'수인주','힘을내어 실습중입니다.', DEFAULT, DEFAULT, DEFAULT);
    --==>> 1 행 이(가) 삽입되었습니다.
    --// DEFAULT 값을 이용해 생성.
    
    INSERT INTO TBL_BOARD(SID, NAME, CONTENTS)
    VALUES(SEQ_BOARD.NEXTVAL,'별희강','테스트를 마무리 중입니다.');
    --==>> 1 행 이(가) 삽입되었습니다.
    --// 입력 값에서 제외 시키고 생성해봄
    ------------------------------------------------------------------------------------------
    -- 확인
    SELECT *
    FROM TBL_BOARD;
    --==>>
    /*
    1	재혁킴	오라클에서 DEFAULT 표현식을 실습중입니다.	2023-04-05 15:28:10	0	0
    2	서영유	계속해서 실습중입니다.	                    2023-04-05 15:31:25	0	0
    3	수인주	힘을내어 실습중입니다.	                    2023-04-05 15:32:14	0	0
    4	별희강	테스트를 마무리 중입니다.	                2023-04-05 15:33:23	0	0
    */
    COMMIT;
    --==>> 커밋 완료.

    • DEFAULT 표현식 확인
    --○ DEFAULT 표현식 확인(조회)
    SELECT *
    FROM USER_TAB_COLUMNS
    WHERE TABLE_NAME='TBL_BOARD';
    --==>
    /*
    전체 조회 가능
    */
    ---------------------------------------------------------------
    --// 필요한 부분만 재구성
    SELECT TABLE_NAME, COLUMN_NAME, DATA_TYPE, DATA_DEFAULT
    FROM USER_TAB_COLUMNS
    WHERE TABLE_NAME='TBL_BOARD';
    --==>>
    /*
    TBL_BOARD	SID	        NUMBER	    (null)
    TBL_BOARD	NAME	    VARCHAR2	(null)
    TBL_BOARD	CONTENTS	VARCHAR2	(null)
    TBL_BOARD	WRITEDAY	DATE	    SYSDATE
    TBL_BOARD	COMMENTS	NUMBER	    0 
    TBL_BOARD	COUNTS	    NUMBER	    0
    */

    • 테이블 생성 이후 DEFAULT 표현식 추가/ 변경
    --○ 테이블 생성 이후 DEFAULT 표현식 추가/ 변경
    ALTER TABLE 테이블명
    MODIFY 컬럼명[자료형] DEFAULT 기본값;
    
    --// 기존 DEFAULT 표현식을 수정할 때도 사용하고,
    --// DEFAULT 표현식이 없는 컬럼에 설정할 때에도 사용하면 생성되게 된다.
    
    --○ 테이블 생성 이후 DEFAULT 표현식 제거(삭제)
    ALTER TABLE 테이블명
    MODIFY 컬럼명[자료형] DEFAULT NULL;
    --// 제거하는 방법은 별도로 구문이 있는것이 아니고, 
    --// DEFAULT 변경구문의 기본값에 NULL 값을 넣고 변경하게 되면 DEFAULT 값이 없는 것과 동일하다.

    SCOTT 계정 실습
    • UPDATE
    --■■■ UPDATE ■■■--
    
    -- 1. 테이블에서 기존 데이터를 변경할 수 있도록 처리하는 구문.
    
    -- 2. 형식 및 구조
    -- UPDATE 테이블명
    -- SET 컬럼명=변경할 값[, 컬럼명=변경할값,...]
    -- [WHERE 조건절]
    더보기
    --○ TBL_SAWON 테이블에서 사원번호 1003번 사원의
    --   주민번호를 『8403302234567』로 수정한다.
    
    UPDATE TBL_SAWON
    SET JUBUN='8403302234567'
    WHERE SANO=1003;
    --==>> 1 행 이(가) 업데이트되었습니다.
    
    SELECT *
    FROM TBL_SAWON;
    --==>> 1003	최이서	8403302234567	1999-08-16	5000
    
    -- 실행 후 COMMIT 또는 ROLLBACK 을 반드시 선택적으로 실행
    COMMIT;
    --==>> 커밋 완료.
    
    --// DDL 구문 AUTO 커밋 됨 (DDL : CREATE, ALTER ...)
    --// DML 구문만 ROLLBACK 가능

    --○ TBL_SAWON 테이블에서 1005번 사원의 입사일과 급여를
    --   각각 2019년 2월 22일, 2200 으로 변경한다.
    
    UPDATE TBL_SAWON
    SET HIREDATE=TO_DATE('2019-02-22','YYYY-MM-DD')
      , SAL=2200    --// 바꾸고자 하는 데이터는 『,』로 구분
    WHERE SANO=1005;
    --==>> 1 행 이(가) 업데이트되었습니다.
    
    SELECT *
    FROM TBL_SAWON;
    --==>> 1005	양수현	9907092234567	2019-02-22	2200
    
    COMMIT;
    --==>> 커밋 완료.

    --○ TBL_INSA 테이블 복사 (구조와 데이터만)
    CREATE TABLE TBL_INSABACKUP
    AS
    SELECT *
    FROM TBL_INSA
    WHERE JIKWI IN('부장','과장');
    --==>> Table TBL_INSABACKUP이(가) 생성되었습니다.
    
    --○ TBL_INSABACKUP 테이블에서
    --   직위가 과장과 부장만 수당 10% 인상~!!!
    SELECT *
    FROM TBL_INSABACKUP;
    --==>>
    /*
    홍길동	부장  	200000	220000
    이순애	부장	    160000	176000
    이기자	과장	150000	165000
    김종서	부장	    130000	143000
    이상헌	과장	150000	165000
    박문수	과장	165000	181500
    김인수	부장  	170000	187000
    김영길	과장	170000	187000
    정정해	과장	124000	136400
    지재환	부장  	160000	176000
    최석규	과장	187000	205700
    문길수	과장	150000	165000
    허경운	부장  	150000	165000
    권영미	과장	104000	114400
    이미경	부장  	160000	176000
    */
    UPDATE TBL_INSABACKUP
    SET SUDANG=SUDANG*1.1
    WHERE JIKWI IN ('부장','과장');
    --==>> 15개 행 이(가) 업데이트 되었습니다.
    
    SELECT *
    FROM TBL_INSABACKUP;
    
    COMMIT;

     

    --○ TBL_INSABACKUP 테이블에서 전화번호가 016, 017, 018, 019 로 시작하는
    --   전화번호인 경우 이를 모두 010 으로 변경한다. 
    
    UPDATE TBL_INSABACKUP
    SET 기존 전화번호의 앞 세자리만 '010'으로 수정하고 나머지 번호는 그대로 유지
    WHERE 전화번호의 앞 3자리가 '016','017','018','019';
    
    SELECT *
    FROM TBL_INSABACKUP
    WHERE SUBSTR(TEL,1,3) IN ('016','017','018','019');
    --==>>
    /*
    1004	김정훈	790304-1788896	2000-10-01	전북	019-5236-4221	영업부	대리	1954200	170000
    1005	한석봉	811112-1566789	2004-08-13	서울	018-5211-3542	총무부	사원	1420000	160000
    1008	김영년	821011-2362514	2002-04-30	서울	016-2222-4444	홍보부	사원	950000	145000
    1009	나윤균	810810-1552147	2003-10-10	경기	019-1111-2222	인사부	사원	840000	220400
    1012	정한국	760909-1333333	1999-10-16	강원	018-2222-4242	홍보부	사원	880000	114000
    1013	조미숙	790102-2777777	1998-06-07	경기	019-6666-4444	홍보부	대리	1601000	103000
    1015	이현숙	800606-2954687	1999-07-26	경기	016-2548-3365	총무부	사원	1050000	104000
    1018	이성길	801028-1849534	2004-08-08	전북	018-1333-3333	개발부	사원	880000	123000
    1019	박문수	780710-1985632	1999-12-10	서울	017-4747-4848	인사부	과장	2300000	181500
    1022	이영숙	800501-2312456	2003-02-25	전남	017-5214-5282	기획부	대리	1960000	180000
    1027	김영길	801216-1898752	2000-10-18	서울	019-8523-1478	총무부	과장	2340000	187000
    1028	이남신	810101-1010101	2001-09-07	제주	016-1818-4848	인사부	사원	892000	110000
    1029	김말숙	800301-2020202	2000-09-08	서울	016-3535-3636	총무부	사원	920000	124000
    1030	정정해	790210-2101010	1999-10-17	부산	019-6564-6752	총무부	과장	2304000	136400
    1031	지재환	771115-1687988	2001-01-21	서울	019-5552-7511	기획부	부장	2450000	176000
    1032	심심해	810206-2222222	2000-05-05	전북	016-8888-7474	자재부	사원	880000	108000
    1040	박세열	790509-1635214	2000-09-10	경북	016-4444-7777	인사부	대리	2100000	130000
    1041	문길수	721217-1951357	2001-12-10	충남	016-4444-5555	자재부	과장	2300000	165000
    1043	양미옥	830504-2471523	2003-09-24	서울	016-8548-6547	영업부	사원	1100000	210000
    1046	허경운	760105-1458752	1999-05-04	경남	017-3333-3333	총무부	부장	2650000	165000
    1047	산마루	780505-1234567	2001-07-15	서울	018-0505-0505	영업부	대리	2100000	112000
    1054	정상호	810705-1212141	1999-10-16	강원	016-1919-4242	홍보부	사원	980000	114000
    1055	정한나	820506-2425153	2004-06-07	서울	016-2424-4242	영업부	사원	1000000	104000
    1057	이미경	780406-2003214	1998-02-11	경기	016-6542-7546	자재부	부장	2520000	176000
    */
    
    UPDATE TBL_INSABACKUP
    SET 기존 전화번호의 앞 세자리만 '010'으로 수정하고 나머지 번호는 그대로 유지
    WHERE 전화번호의 앞 3자리가 '016','017','018','019';
    
    SELECT TEL"기존전화번호", '010'|| SUBSTR(TEL,4) "변경된 전화번호"
    FROM TBL_INSABACKUP
    WHERE SUBSTR(TEL,1,3) IN ('016','017','018','019');
    
    UPDATE TBL_INSABACKUP
    SET TEL='010'||SUBSTR(TEL,4)
    WHERE SUBSTR(TEL,1,3) IN ('016','017','018','019');
    
    UPDATE TBL_INSABACKUP
    SET TEL='010'||SUBSTR(TEL,4)
    WHERE SUBSTR(TEL,1,3) IN ('016','017','018','019');
    --==>> 24개 행 이(가) 업데이트되었습니다.
    
    SELECT *
    FROM TBL_INSABACKUP
    WHERE SUBSTR(TEL,1,3) IN ('016','017','018','019');
    --==>> 조회 결과 없음
    
    SELECT *
    FROM TBL_INSABACKUP;
    --==>>
    /*
    1001	홍길동	771212-1022432	1998-10-11	서울	011-2356-4528	기획부	부장	2610000	220000
    1002	이순신	801007-1544236	2000-11-29	경기	010-4758-6532	총무부	사원	1320000	200000
    1003	이순애	770922-2312547	1999-02-25	인천	010-4231-1236	개발부	부장	2550000	176000
    1004	김정훈	790304-1788896	2000-10-01	전북	010-5236-4221	영업부	대리	1954200	170000
    1005	한석봉	811112-1566789	2004-08-13	서울	010-5211-3542	총무부	사원	1420000	160000
    1006	이기자	780505-2978541	2002-02-11	인천	010-3214-5357	개발부	과장	2265000	165000
    1007	장인철	780506-1625148	1998-03-16	제주	011-2345-2525	개발부	대리	1250000	150000
    1008	김영년	821011-2362514	2002-04-30	서울	010-2222-4444	홍보부	사원	950000	145000
    1009	나윤균	810810-1552147	2003-10-10	경기	010-1111-2222	인사부	사원	840000	220400
    1010	김종서	751010-1122233	1997-08-08	부산	011-3214-5555	영업부	부장	2540000	143000
    1011	유관순	801010-2987897	2000-07-07	서울	010-8888-4422	영업부	사원	1020000	140000
    1012	정한국	760909-1333333	1999-10-16	강원	010-2222-4242	홍보부	사원	880000	114000
    1013	조미숙	790102-2777777	1998-06-07	경기	010-6666-4444	홍보부	대리	1601000	103000
    1014	황진이	810707-2574812	2002-02-15	인천	010-3214-5467	개발부	사원	1100000	130000
    1015	이현숙	800606-2954687	1999-07-26	경기	010-2548-3365	총무부	사원	1050000	104000
    1016	이상헌	781010-1666678	2001-11-29	경기	010-4526-1234	개발부	과장	2350000	165000
    1017	엄용수	820507-1452365	2000-08-28	인천	010-3254-2542	개발부	사원	950000	210000
    1018	이성길	801028-1849534	2004-08-08	전북	010-1333-3333	개발부	사원	880000	123000
    1019	박문수	780710-1985632	1999-12-10	서울	010-4747-4848	인사부	과장	2300000	181500
    1020	유영희	800304-2741258	2003-10-10	전남	011-9595-8585	자재부	사원	880000	140000
    1021	홍길남	801010-1111111	2001-09-07	경기	011-9999-7575	개발부	사원	875000	120000
    1022	이영숙	800501-2312456	2003-02-25	전남	010-5214-5282	기획부	대리	1960000	180000
    1023	김인수	731211-1214576	1995-02-23	서울					영업부	부장	2500000	187000
    1024	김말자	830225-2633334	1999-08-28	서울	011-5248-7789	기획부	대리	1900000	170000
    1025	우재옥	801103-1654442	2000-10-01	서울	010-4563-2587	영업부	사원	1100000	160000
    1026	김숙남	810907-2015457	2002-08-28	경기	010-2112-5225	영업부	사원	1050000	150000
    1027	김영길	801216-1898752	2000-10-18	서울	010-8523-1478	총무부	과장	2340000	187000
    1028	이남신	810101-1010101	2001-09-07	제주	010-1818-4848	인사부	사원	892000	110000
    1029	김말숙	800301-2020202	2000-09-08	서울	010-3535-3636	총무부	사원	920000	124000
    1030	정정해	790210-2101010	1999-10-17	부산	010-6564-6752	총무부	과장	2304000	136400
    1031	지재환	771115-1687988	2001-01-21	서울	010-5552-7511	기획부	부장	2450000	176000
    1032	심심해	810206-2222222	2000-05-05	전북	010-8888-7474	자재부	사원	880000	108000
    1033	김미나	780505-2999999	1998-06-07	서울	011-2444-4444	영업부	사원	1020000	104000
    1034	이정석	820505-1325468	2005-09-26	경기	011-3697-7412	기획부	사원	1100000	160000
    1035	정영희	831010-2153252	2002-05-16	인천					개발부	사원	1050000	140000
    1036	이재영	701126-2852147	2003-08-10	서울	011-9999-9999	자재부	사원	960400	190000
    1037	최석규	770129-1456987	1998-10-15	인천	011-7777-7777	홍보부	과장	2350000	205700
    1038	손인수	791009-2321456	1999-11-15	부산	010-6542-7412	영업부	대리	2000000	150000
    1039	고순정	800504-2000032	2003-12-28	경기	010-2587-7895	영업부	대리	2010000	160000
    1040	박세열	790509-1635214	2000-09-10	경북	010-4444-7777	인사부	대리	2100000	130000
    1041	문길수	721217-1951357	2001-12-10	충남	010-4444-5555	자재부	과장	2300000	165000
    1042	채정희	810709-2000054	2003-10-17	경기	011-5125-5511	개발부	사원	1020000	200000
    1043	양미옥	830504-2471523	2003-09-24	서울	010-8548-6547	영업부	사원	1100000	210000
    1044	지수환	820305-1475286	2004-01-21	서울	011-5555-7548	영업부	사원	1060000	220000
    1045	홍원신	690906-1985214	2003-03-16	전북	011-7777-7777	영업부	사원	960000	152000
    1046	허경운	760105-1458752	1999-05-04	경남	010-3333-3333	총무부	부장	2650000	165000
    1047	산마루	780505-1234567	2001-07-15	서울	010-0505-0505	영업부	대리	2100000	112000
    1048	이기상	790604-1415141	2001-06-07	전남					개발부	대리	2050000	106000
    1049	이미성	830908-2456548	2000-04-07	인천	010-6654-8854	개발부	사원	1300000	130000
    1050	이미인	810403-2828287	2003-06-07	경기	011-8585-5252	홍보부	대리	1950000	103000
    1051	권영미	790303-2155554	2000-06-04	서울	011-5555-7548	영업부	과장	2260000	114400
    1052	권옥경	820406-2000456	2000-10-10	경기	010-3644-5577	기획부	사원	1020000	105000
    1053	김싱식	800715-1313131	1999-12-12	전북	011-7585-7474	자재부	사원	960000	108000
    1054	정상호	810705-1212141	1999-10-16	강원	010-1919-4242	홍보부	사원	980000	114000
    1055	정한나	820506-2425153	2004-06-07	서울	010-2424-4242	영업부	사원	1000000	104000
    1056	전용재	800605-1456987	2004-08-13	인천	010-7549-8654	영업부	대리	1950000	200000
    1057	이미경	780406-2003214	1998-02-11	경기	010-6542-7546	자재부	부장	2520000	176000
    1058	김신제	800709-1321456	2003-08-08	인천	010-2415-5444	기획부	대리	1950000	180000
    1059	임수봉	810809-2121244	2001-10-10	서울	011-4151-4154	개발부	사원	890000	102000
    1060	김신애	810809-2111111	2001-10-10	서울	011-4151-4444	개발부	사원	900000	102000
    */
    COMMIT;
    --==>> 커밋 완료.

    • 실무에서 발생 했던 문제 고민해보기
    --○ TBL_SAWON 테이블 백업(2023-04-05 16:35:10)
    CREATE TABLE TBL_SAWONBACKUP
    AS
    SELECT *
    FROM TBL_SAWON;
    --==>> Table TBL_SAWONBACKUP이(가) 생성되었습니다
    --> TBL_SAWON 테이블의 데이터들만 백업을 수행
    --  즉, 다른 이름의 테이블 형태로 저장해 둔 상황
    
    --○ 확인
    SELECT *
    FROM TBL_SAWONBACKUP;
    SELECT *
    FROM TBL_SAWON;
    
    UPDATE TBL_SAWON
    SET SANAME='이귀배';
    COMMIT;
    --==>> 16개 행 이(가) 업데이트 되었습니다.
    
    SELECT *
    FROM TBL_SAWON;
    --==>>
    /*
    1001	이귀배	9010102234567	2023-03-28	100
    1002	이귀배	9902242234567	2010-11-05	2000
    1003	이귀배	8403302234567	1999-08-16	5000
    1004	이귀배	9910132234567	2008-02-02	4000
    1005	이귀배	9907092234567	2019-02-22	2200
    1006	이귀배	9604052234567	2009-07-15	2000
    1007	이귀배	9806261234567	2009-07-15	2000
    1008	이귀배	9607161234567	2010-06-05	1000
    1009	이귀배	0204054234567	2012-12-10	1000
    1010	이귀배	0503243234567	2015-03-01	1500
    1011	이귀배	7505071234567	1998-03-01	3000
    1012	이귀배	7102032234567	1995-03-01	2000
    1013	이귀배	0607083234567	2015-03-01	4000
    1014	이귀배	0512153234567	2020-05-06	3000
    1015	이귀배	0102094234567	2010-03-01	2000
    1016	이귀배	7309231234567	1996-03-01	4000
    */
    
    -- 위 내용과 같이 UPDATE 를 수행하며 COMMIT 을 함께 처리했기 때문에
    -- ROLLBACK 은 불가능항 상황이다.
    -- 하지만, 불행 중 다행으로 TBL_SAWONBACKUP 테이블에 데이터를 백업해 두었다.
    -- SANAME 컬럼의 내용만 추출하여 '이귀배' 대신 넣어줄 수 있다는 것이다.
    -- 한개만 바꿀 때
    UPDATE TBL_SAWON
    SET SANAME = '박혜서'
    WHERE SANO = '1001';
    
    UPDATE TBL_SAWON
    SET SANAME = (TBL_SAWONBACKUP 테이블의 특정 사원번호를 갖는 특정 사원의 사원명);
    
    UPDATE TBL_SAWON
    SET SANAME = ( SELECT SANAME
                   FROM TBL_SAWONBACKUP
                   WHERE SANO = TBL_SAWON.SANO);
    --// 반복문 중첩 되는 것 처럼 돌아가게 된다.
    
    SELECT *
    FROM TBL_SAWON;
    --==>>
    /*
    1001	박혜서	9010102234567	2023-03-28	100
    1002	유서영	9902242234567	2010-11-05	2000
    1003	최이서	8403302234567	1999-08-16	5000
    1004	양연수	9910132234567	2008-02-02	4000
    1005	양수현	9907092234567	2019-02-22	2200
    1006	주수인	9604052234567	2009-07-15	2000
    1007	이기배	9806261234567	2009-07-15	2000
    1008	이준복	9607161234567	2010-06-05	1000
    1009	이하이	0204054234567	2012-12-10	1000
    1010	이이제	0503243234567	2015-03-01	1500
    1011	선동열	7505071234567	1998-03-01	3000
    1012	선우용녀	7102032234567	1995-03-01	2000
    1013	남주혁	0607083234567	2015-03-01	4000
    1014	남궁이	0512153234567	2020-05-06	3000
    1015	선우선	0102094234567	2010-03-01	2000
    1016	남진	7309231234567	1996-03-01	4000
    */
    
    UPDATE TBL_SAWON
    SET SANAME = '이귀배'
    WHERE SANO =1007;
    --==>> 1 행 이(가) 업데이트되었습니다.
    
    SELECT *
    FROM TBL_SAWON;
    COMMIT;
    --==>> 커밋 완료.

    HR 계정 실습
    • 실습
    --○ EMPLOYEES 테이블에서 직원들의 SALARY 를 10% 인상한다.
    --   단, 부서명이 'IT'인 경우로 한정한다.
    --   참고로 ... EMPLOYEES 테이블에는 부서명이 없다. 
    --   (UPDATE 쿼리문을 통해 변경된 데이터를 확인한 후에는 ROLLBACK 한다.)
    SELECT *
    FROM DEPARTMENTS;
    
    SELECT *
    FROM EMPLOYEES;
    
    UPDATE EMPLOYEES
    SET SALARY 를 10% 인상
    WHERE 부서명이 'IT';
    
    UPDATE EMPLOYEES
    SET SALARY = SALARY * 1.1
    WHERE 부서명이 'IT';
    
    UPDATE EMPLOYEES
    SET SALARY = SALARY * 1.1
    WHERE 부서아이디 = 60;   --// 이 60이라는 숫자를 오라클이 찾게 만들어야함
    
    UPDATE EMPLOYEES
    SET SALARY = SALARY * 1.1
    WHERE DEPARTMENT_ID = ( SELECT DEPARTMENT_ID
                            FROM DEPARTMENTS
                            WHERE DEPARTMENT_NAME = 'IT');
    --==>> 5개 행 이(가) 업데이트되었습니다.
    
    SELECT DEPARTMENT_ID
    FROM DEPARTMENTS
    WHERE DEPARTMENT_NAME = 'IT';
    --==>> 60
    
    SELECT *
    FROM EMPLOYEES;
    
    ROLLBACK;
    --==> 롤백 완료.
    728x90
Designed by planet-si