λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ“ 배우고 읡히기 +/ORACLE

[μ„€μ •μ™„λ£Œ](37)[oracle]2일차: μ‚¬μš©μž 계정 생성, μ‚¬μš©μž 계정에 κΆŒν•œ(λ‘€) λΆ€μ—¬, μ‚¬μš©μž 계정 확인, 계정이 κ°–κ³  μžˆλŠ”(μ†Œμœ ν•˜κ³  μžˆλŠ”) ν…Œμ΄λΈ” 쑰회, κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€(RDBMS), SELECT 문의 처리(PARSING..

by μ’…μ΄λΉ¨λŒ€ 2023. 10. 18.
TOP

λͺ©μ°¨

    1. 23.10.18(수)

    1. 20231018_01_sys.sql

    --β—‹ μ ‘μ†λœ μ‚¬μš©μž 계정 쑰회
    SELECT USER
    FROM DUAL;
    --==>> SYS
    
    --------------------------------------------------------------------------------
    --SCOTT 계정을 ν™œμš©ν•  수 μžˆλŠ” ν™˜κ²½ μ„€μ •
    
    --β—‹μ‚¬μš©μž 계정 생성(SCOTT / TIGER)
    create user scott
    identified by tiger;
    --==>> User SCOTT이(κ°€) μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    --β—‹ μ‚¬μš©μž 계정에 κΆŒν•œ(λ‘€) λΆ€μ—¬
    GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO SCOTT;
    --==>> Grant을(λ₯Ό) μ„±κ³΅ν–ˆμŠ΅λ‹ˆλ‹€.
    
    --β—‹ SCOTT μ‚¬μš©μž κ³„μ •μ˜ κΈ°λ³Έ ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€λ₯Ό USERS 둜 μ§€μ •(μ„€μ •)
    ALTER USER SCOTT DEFAULT TABLESPACE USERS;
    --==>> User SCOTT이(κ°€) λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    --β—‹ SCOTT μ‚¬μš©μž κ³„μ •μ˜ μž„μ‹œ ν…Œμ΄λΈ”μŠΎμ΄μŠ€λ₯Ό TEMP 둜 μ§€μ •(μ„€μ •)
    ALTER USER SCOTT TEMPORARY TABLESPACE TEMP;
    --==>> User SCOTT이(κ°€) λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    --β—‹ μ‚¬μš©μž 계정 확인
    SELECT *
    FROM DBA_USERS;
    --==>>
    /*  :
    SCOTT	49		OPEN		24/04/15	USERS	TEMP	23/10/18	DEFAULT	DEFAULT_CONSUMER_GROUP		10G 11G 	N	PASSWORD
        :
    */

    2. 20231018_02_scott.sql

    2.1. sql μ…‹νŒ…

    **μƒˆνŒŒμΌ μ˜€λΌν΄μ ‘μ†μ˜ μ›ν•˜λŠ” 접속계정 2번클릭

    γ„΄ 이미 μ ‘μ†λœ 파일이 μžˆλŠ” 경우 μ•ˆμ—΄λ¦΄ 수 있음 그럴경우 였λ₯Έμͺ½ λ²„νŠΌ 클릭>μ ‘μ†ν•΄μ œ ν›„ 더블클릭

    **ν™•μž₯μžκ°€ SQL 인 νŒŒμΌλ„ λ©”λͺ¨μž₯, μ—λ””νŠΈ ν”ŒλŸ¬μŠ€ λ“±μ—μ„œ μ—΄λ¦°λ‹€

    **κ³΅μœ μ„œλ²„μ—μ„œ 'scott(new).sql' 파일 λ‹€μš΄λ°›κΈ° -> SCOTTμ΄λΌλŠ” 계정이 μ—†μ–΄μ„œ μ„€μ •ν•˜κΈ° μœ„ν•΄

     

    μ‹€λ¬΄μ—μ„œλŠ” 'λΉ„λ°€λ²ˆν˜Έμ €μž₯' ν•˜μ§€ μ•ŠκΈ°

     

    2.2. μ‹€μ œ μž‘μ—… λ‚΄μš©

    도ꡬ>ν™˜κ²½μ„€μ •> λ°μ΄ν„°λ² μ΄μŠ€>NLS>λ‚ μ§œν˜•μ‹: YYYY-MM-DD

     

    --β—‹ μ‚¬μš©μž 계정 확인
    SELECT USER
    FROM DUAL;
    --=>> SCOTT
    
    --β—‹ ν…Œμ΄λΈ” 생성(DEPT)
    CREATE TABLE DEPT
    ( DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY
    , DNAME VARCHAR2(14)
    , LOC VARCHAR2(13) 
    ) ;
    --==>> Table DEPT이(κ°€) μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    --β—‹ ν…Œμ΄λΈ” 생성(EMP)
    CREATE TABLE EMP
    ( EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY
    , ENAME VARCHAR2(10)
    , JOB VARCHAR2(9)
    , MGR NUMBER(4)
    , HIREDATE DATE
    , SAL NUMBER(7,2)
    , COMM NUMBER(7,2)
    , DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT
    );
    --==>> Table EMP이(κ°€) μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    
    INSERT INTO DEPT VALUES	(10,'ACCOUNTING','NEW YORK');
    INSERT INTO DEPT VALUES (20,'RESEARCH','DALLAS');
    INSERT INTO DEPT VALUES	(30,'SALES','CHICAGO');
    INSERT INTO DEPT VALUES	(40,'OPERATIONS','BOSTON');
    
    INSERT INTO EMP VALUES
    (7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20);
    INSERT INTO EMP VALUES
    (7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);
    INSERT INTO EMP VALUES
    (7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);
    INSERT INTO EMP VALUES
    (7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20);
    INSERT INTO EMP VALUES
    (7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);
    INSERT INTO EMP VALUES
    (7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30);
    INSERT INTO EMP VALUES
    (7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10);
    INSERT INTO EMP VALUES
    (7788,'SCOTT','ANALYST',7566,to_date('13-7-1987','dd-mm-yyyy'),3000,NULL,20);
    INSERT INTO EMP VALUES
    (7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10);
    INSERT INTO EMP VALUES
    (7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30);
    INSERT INTO EMP VALUES
    (7876,'ADAMS','CLERK',7788,to_date('13-7-1987','dd-mm-yyyy'),1100,NULL,20);
    INSERT INTO EMP VALUES
    (7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30);
    INSERT INTO EMP VALUES
    (7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20);
    INSERT INTO EMP VALUES
    (7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10);
    --==>> 1 ν–‰ 이(κ°€) μ‚½μž…λ˜μ—ˆμŠ΅λ‹ˆλ‹€. * 18
    
    --β—‹ ν…Œμ΄λΈ” 생성(BONUS)
    CREATE TABLE BONUS
    ( ENAME VARCHAR2(10)
    , JOB VARCHAR2(9)
    , SAL NUMBER
    , COMM NUMBER
    ) ;
    --==>> Table BONUS이(κ°€) μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    --β—‹ ν…Œμ΄λΈ” 생성(SALGRADE)
    CREATE TABLE SALGRADE
    ( GRADE NUMBER
    , LOSAL NUMBER
    , HISAL NUMBER 
    );
    --==>> Table SALGRADE이(κ°€) μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    
    INSERT INTO SALGRADE VALUES (1,700,1200);
    INSERT INTO SALGRADE VALUES (2,1201,1400);
    INSERT INTO SALGRADE VALUES (3,1401,2000);
    INSERT INTO SALGRADE VALUES (4,2001,3000);
    INSERT INTO SALGRADE VALUES (5,3001,9999);
    --==>> 1 ν–‰ 이(κ°€) μ‚½μž…λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    --β—‹ 컀밋
    COMMIT;
    --==>> 컀밋 μ™„λ£Œ.
    
    --β—‹ SCOTT 계정이 κ°–κ³  μžˆλŠ”(μ†Œμœ ν•˜κ³  μžˆλŠ”) ν…Œμ΄λΈ” 쑰회
    SELECT *
    FROM TAB;
    --==>> 
    /*
    BONUS	    TABLE	
    DEPT	    TABLE	
    EMP	        TABLE	
    SALGRADE	TABLE	
    */
    
    SELECT *
    FROM USER_TABLES;
    --==>>
    --** μ–΄λ–€ ν…Œμ΄λΈ”μ— μ ‘κ·Όν•  수 μžˆλŠ”μ§€, μ“Έ 수 μžˆλŠ”μ§€ 쑰회
    /*
    DEPT	    USERS			VALID	10		1	255	65536	1048576	1	2147483645				YES	N									         1	         1	    N	ENABLED			NO		N	N	NO	DEFAULT	DEFAULT	DEFAULT	DISABLED	NO	NO		DISABLED	YES		DISABLED	DISABLED		NO	NO	YES	DEFAULT
    EMP	        USERS			VALID	10		1	255	65536	1048576	1	2147483645				YES	N									         1	         1	    N	ENABLED			NO		N	N	NO	DEFAULT	DEFAULT	DEFAULT	DISABLED	NO	NO		DISABLED	YES		DISABLED	DISABLED		NO	NO	YES	DEFAULT
    BONUS	    USERS			VALID	10		1	255	65536	1048576	1	2147483645				YES	N									         1	         1	    N	ENABLED			NO		N	N	NO	DEFAULT	DEFAULT	DEFAULT	DISABLED	NO	NO		DISABLED	YES		DISABLED	DISABLED		NO	NO	YES	DEFAULT
    SALGRADE	USERS			VALID	10		1	255	65536	1048576	1	2147483645				YES	N									         1	         1	    N	ENABLED			NO		N	N	NO	DEFAULT	DEFAULT	DEFAULT	DISABLED	NO	NO		DISABLED	YES		DISABLED	DISABLED		NO	NO	YES	DEFAULT
    */
    
    --β—‹ μœ„μ—μ„œ μ‘°νšŒν•œ 각각의 ν…Œμ΄λΈ”λ“€μ΄
    --    μ–΄λ–€ ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€μ— μ €μž₯λ˜μ–΄ μžˆλŠ”μ§€ 쑰회
    SELECT TABLE_NAME, TABLESPACE_NAME
    FROM USER_TABLES;
    --==>>
    /*
    DEPT	USERS
    EMP	USERS
    BONUS	USERS
    SALGRADE	USERS
    */
    
    --β—‹ ν…Œμ΄λΈ” 생성(TBL_EXAMPLE1)
    CREATE TABLE TBL_EXAMPLE1
    ( NO    NUMBER(4)
    , NAME  VARCHAR2(20)
    , ADDR  VARCHAR2(20)
    );
    --==>> Table TBL_EXAMPLE1이(κ°€) μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    --β—‹ ν…Œμ΄λΈ” 생성(TBL_EXAMPLE2)
    CREATE TABLE TBL_EXAMPLE2
    ( NO    NUMBER(4)
    , NAME  VARCHAR2(20)
    , ADDR  VARCHAR2(20)
    ) TABLESPACE TBS_EDUA;
    --==>> Table TBL_EXAMPLE2이(κ°€) μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    --** TBS_EDUA: μ–΄μ œ μ§μ ‘λ§Œλ“  ν…Œμ΄λΈ”μŠ€νŽ˜μ΄μŠ€λ‘œ μ§€μ •
    
    --β—‹ TBL_EXAMPLE1 κ³Ό TBL_EXAMPLE2 ν…Œμ΄λΈ”μ΄
    --    각각 μ–΄λ–€ ν…Œμ΄λΈ” μŠ€νŽ˜μ΄μŠ€μ— μ €μž₯λ˜μ–΄ μžˆλŠ”μ§€ 쑰회
    SELECT TABLE_NAME, TABLESPACE_NAME
    FROM USER_TABLES;
    --==>>
    /*
    DEPT	        USERS
    EMP	            USERS
    BONUS	        USERS
    SALGRADE	    USERS
    TBL_EXAMPLE1	USERS
    TBL_EXAMPLE2	TBS_EDUA
    */
    
    -------------------------------------------------------------------------------
    --β– β– β–  κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€(RDBMS) β– β– β– --
    
    --각각의 데이터λ₯Ό ν…Œμ΄λΈ”μ˜ ν˜•νƒœλ‘œ μ—°κ²°μ‹œμΌœ μ €μž₯해놓은 ꡬ쑰
    --그리고 이듀 κ°κ°€μ˜ ν…Œμ΄λΈ” κ°„μ˜ 관계λ₯Ό μ„€μ •ν•˜μ—¬ μ—°κ²°μ‹œμΌœ 놓은 ꡬ쑰
    
    /*=====================================
     β€» SELECT 문의 처리(PARSING) μˆœμ„œ
    
        SELECT      컬럼λͺ…     -- β‘€ ┐
        FROM        ν…Œμ΄λΈ”λͺ…   -- β‘  β”˜
        WHERE       쑰건절     -- β‘‘ +
        GROUP BY    절         -- β‘’ +
        HAVING      쑰건절     -- β‘£ +
        ORDER BY    절         -- β‘€ +
    =====================================*/
    --** ν…Œμ΄λΈ” μŠ€νŽ˜μ΄μŠ€μ—μ„œ FROM을 κ°€μž₯ λ¨Όμ € 찾음
    --** FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY
    --** 1,5λŠ” λ°˜λ“œμ‹œ μžˆμ–΄μ•Όν•¨
    --** +λŠ” λ‹¨λ…μœΌλ‘œ μ‘΄μž¬κ°€λŠ₯
    -------------------------------------------------------------------------------
    
    --β—‹ SCOTT μ†Œμœ μ˜ ν…Œμ΄λΈ” 쑰회
    SELECT *
    FROM TAB;
    --==>>
    /*
    BONUS	        TABLE	-- λ³΄λ„ˆμŠ€(BONUS) 데이터 ν…Œμ΄λΈ”
    DEPT	        TABLE	-- λΆ€μ„œ(DEPARTMENTS) 데이터 ν…Œμ΄λΈ”
    EMP	            TABLE	-- 사원(EMPLOYEES) 데이터 ν…Œμ΄λΈ”
    SALGRADE	    TABLE	-- κΈ‰μ—¬(SAL) 데이터 ν…Œμ΄λΈ”
    
    TBL_EXAMPLE1	TABLE	
    TBL_EXAMPLE2	TABLE	
    */
    
    --β—‹ 각 ν…Œμ΄λΈ”μ˜ 데이터 쑰회
    SELECT *
    FROM BONUS;
    --==>> 쑰회 κ²°κ³Ό μ—†μŒ(쑰회된 데이터가 μ‘΄μž¬ν•˜μ§€ μ•ŠμŒ)
    
    
    SELECT *
    FROM DEPT;
    --==>>
    /*
    10	ACCOUNTING	NEW YORK
    20	RESEARCH	DALLAS
    30	SALES	    CHICAGO
    40	OPERATIONS	BOSTON
    */
    
    
    
    SELECT *
    FROM EMP;
    --==>>
    /*
    EMPNO      ENAME    JOB     MGR     HIGEDATE    SAL COMMI   DEPTNO
    μ‚¬μ›λ²ˆν˜Έ 이름     직업     κ΄€λ¦¬μž  μž…μ‚¬μΌ     κΈ‰μ—¬     μˆ˜λ‹Ή   λΆ€μ„œλ²ˆν˜Έ
    7369	SMITH	CLERK	    7902	80/12/17	800		        20
    7499	ALLEN	SALESMAN	7698	81/02/20	1600	300	    30
    7521	WARD	SALESMAN	7698	81/02/22	1250	500	    30
    7566	JONES	MANAGER 	7839	81/04/02	2975		    20
    7654	MARTIN	SALESMAN	7698	81/09/28	1250	1400	30
    7698	BLAKE	MANAGER	    7839	81/05/01	2850		    30
    7782	CLARK	MANAGER	    7839	81/06/09	2450		    10
    7788	SCOTT	ANALYST	    7566	87/07/13	3000		    20
    7839	KING	PRESIDENT		    81/11/17	5000		    10
    7844	TURNER	SALESMAN	7698	81/09/08	1500	0	    30
    7876	ADAMS	CLERK	    7788	87/07/13	1100		    20
    7900	JAMES	CLERK	    7698	81/12/03	950		        30
    7902	FORD	ANALYST	    7566	81/12/03	3000		    20
    7934	MILLER	CLERK	    7782	82/01/23	1300		    10
    */
    
    SELECT *
    FROM SALGRADE;
    --==>>
    /*
    2	1201	1400
    3	1401	2000
    4	2001	3000
    1	700	    1200
    2	1201	1400
    3	1401	2000
    4	2001	3000
    5	3001	9999
    */
    
    SELECT *
    FROM TBL_EXAMPLE1;
    --==>> 쑰회 κ²°κ³Ό μ—†μŒ(쑰회된 데이터가 μ‘΄μž¬ν•˜μ§€ μ•ŠμŒ)
    
    SELECT *
    FROM TBL_EXAMPLE2;
    --==>> 쑰회 κ²°κ³Ό μ—†μŒ(쑰회된 데이터가 μ‘΄μž¬ν•˜μ§€ μ•ŠμŒ)
    
    SELECT *
    FROM SALGRADE;
    --==>> 
    /*
    1	700	    1200
    2	1201	1400
    3	1401	2000
    4	2001	3000
    5	3001	9999
    */
    
    
    --β—‹ DEPT ν…Œμ΄λΈ”μ— μ‘΄μž¬ν•˜λŠ” 컬럼의 ꡬ쑰 확인
    DESCRIBE DEPT;
    --==>>
    /*
    이름     널?       μœ ν˜•       --** 널? : NULL μƒνƒœ 수용 μ»¬λŸΌμΈμ§€    
    ------ -------- ------------ 
    DEPTNO NOT NULL NUMBER(2)    
    DNAME           VARCHAR2(14) 
    LOC             VARCHAR2(13) 
    */
    
    -- DEPTNO   DNAME  LOC
    -- λΆ€μ„œλ²ˆν˜Έ λΆ€μ„œλͺ… λΆ€μ„œμœ„μΉ˜
    ----------------------------
    -- 10       인사뢀   μ„œμšΈ    -> 데이터 μž…λ ₯ κ°€λŠ₯
    -- 20                λŒ€μ „    -> 데이터 μž…λ ₯ κ°€λŠ₯
    --          κ°œλ°œλΆ€   κ²½κΈ°    -> 데이터 μž…λ ₯ λΆˆκ°€~!!!
    
    --------------------------------------------------------------------------------
    --β– β– β–  였라클의 μ£Όμš” μžλ£Œν˜•(DATA TYPE) β– β– β– --
    /*
    cf) MSSQL μ„œλ²„μ˜ μ •μˆ˜ ν‘œν˜„ νƒ€μž…
        tinyint     0 ~ 255             1byte
        smallint    -32.768 ~ 32.767    2byte
        int         -21μ–΅ ~ 21μ–΅        4byte
        bigint      엄청큼              8byte
        
        MSSQL μ„œλ²„μ˜ μ‹€μˆ˜ ν‘œν˜„ νƒ€μž…
        float, real
        
        MSSQL μ„œλ²„μ˜ 숫자 ν‘œν˜„ νƒ€μž…
        decimal, numeric
        
        MSSQL μ„œλ²„μ˜ 문자 ν‘œν˜„ νƒ€μž…
        char, varchar, Nvarchar
        
    β€» ORACLE 은 숫자 ν‘œν˜„ νƒ€μž…μ΄ ν•œ κ°€μ§€λ‘œ ν†΅μΌλ˜μ–΄ μžˆλ‹€.
    
    1. μˆ«μžν˜• NUMBER       -> -10의 38승-1 ~ 10의 38승
              NUMBER(3)    -> -999  ~ 999       --** 길이λ₯Ό λͺ…μ‹œν•΄μ•Ό λ©”λͺ¨λ¦¬ λ‚­λΉ„κ°€ 적음
              NUMBER(4)    -> -9999 ~ 9999
              NUMBER(4,1)  -> -999.9 ~ 999.9    --** λ‘λ²ˆμ§Έ 자리: μ†Œμˆ˜μ  μ΄ν•˜ 자리
              
    β€» ORACLE 의 문자 ν‘œν˜„ νƒ€μž…
    
    2. λ¬Έμžν˜• CHAR         -> κ³ μ •ν˜• 크기
                              (무쑰건 μ§€μ •λœ 크기 μ†Œλͺ¨)
                              
              CHAR(10)     <-γ…‘- 'κ°•μ˜μž₯'       6Byte μ΄μ§€λ§Œ 10Byte λ₯Ό μ†Œλͺ¨      --** 10λ°”μ΄νŠΈλ₯Ό 담을 수 μžˆλŠ” λ¬Έμžμ—΄ μ§€μ •                
              CHAR(10)     <---- 'μž λ“ ν™κΈΈλ™'   10Byte
              CHAR(10)     <---- 'μ˜€μž κΉ¬ν™κΈΈλ™' 10Byte λ₯Ό μ΄ˆκ³Όν•˜λ―€λ‘œ μž…λ ₯ λΆˆκ°€
              
                              
              VARCHAR2     -> κ°€λ³€ν˜• 크기
                              (상황에 따라 크기가 λ³€κ²½)
              VARCHAR2(10)  <-γ…‘- 'κ°•μ˜μž₯'       6Byte
              VARCHAR2(10)  <---- 'μž λ“ ν™κΈΈλ™'   10Byte
              VARCHAR2(10)  <---- 'μ˜€μž κΉ¬ν™κΈΈλ™' 10Byte λ₯Ό μ΄ˆκ³Όν•˜λ―€λ‘œ μž…λ ₯ λΆˆκ°€
              
              //** CHARκ°€ VARCHAR2보닀 νš¨μœ¨μ μž„ -> 데이터외에 데이터에 λŒ€ν•œ 정보가 VARCHAR2κ°€ 더 큼
              
              NCHAR        -> μœ λ‹ˆμ½”λ“œ 기반 κ³ μ •ν˜• 크기(κΈ€μžμˆ˜)
              NCHAR(10)     <---- 10κΈ€μž
              
              NVARCHAR2    -> μœ λ‹ˆμ½”λ“œ 기반 κ°€λ³€ν˜• 크기(κΈ€μžμˆ˜)
              NVARCHAR2(10) <---- 10κΈ€μž
              
    3. λ‚ μ§œν˜• DATE
    
    
    
              
              
    */
    SELECT HIREDATE
    FROM EMP;
    --==>>
    /*
    1980-12-17
    */
    
    --ALTER SESSION SET NLS_DATE_FORMAT='MM/DD';
    ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD';
    --==>> Session이(κ°€) λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    --** 23/10/18 11:47:20
    -- μžλ°”μ™€ 툴이 λ‹€λ₯΄λ‹ˆκΉŒ μ˜€λΌν΄μ—μ„œ ν™˜κ²½μ…‹νŒ… ν–ˆλ‹€κ³  ν•˜λ”λΌλ„ 
    -- λ‚ μ§œ 포멧이 λ‹€λ₯΄κ²Œ λ‚˜μ˜¬ 수 있음
    
    --DESCRIBE EMP; --단좕 DESCRIBE = DESC
    DESC EMP;
    /*
    이름       널?       μœ ν˜•           
    -------- -------- ------------ 
    EMPNO    NOT NULL NUMBER(4)    
    ENAME             VARCHAR2(10) 
    JOB               VARCHAR2(9)  
    MGR               NUMBER(4)    
    HIREDATE          DATE         
    SAL               NUMBER(7,2)  
    COMM              NUMBER(7,2)  
    DEPTNO            NUMBER(2) 
    */
    
    SELECT SYSDATE
    FROM DUAL;
    --==>> 2023-10-18
    --** Oracle λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ ν˜„μž¬ λ‚ μ§œμ™€ μ‹œκ°„μ„ λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜
    
    ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH:MI:SS';
    --==>> Session이(κ°€) λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    SELECT SYSDATE
    FROM DUAL;
    --==>> 2023-10-18 12:05:20
    
    ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
    --==>> Session이(κ°€) λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    --** 24μ‹œλ₯Ό κΈ°μ€€μœΌλ‘œ μ‹œκ°„ 섀정됨 EX. μ˜€ν›„ 1μ‹œ ->13
    
    SELECT SYSDATE
    FROM DUAL;
    --==>> 2023-10-18 12:05:20
    --==>>2023-10-18 14:05:55
    
    --β—‹ EMP ν…Œμ΄λΈ”μ—μ„œ μ‚¬μ›λ²ˆν˜Έ, 사원λͺ…, κΈ‰μ—¬, μ»€λ―Έμ…˜ λ°μ΄ν„°λ§Œ μ‘°νšŒν•œλ‹€.
    SELECT EMPNO, ENAME, SAL, COMM
    FROM EMP;
    --==>> 
    /*
    7369	SMITH	800	
    7499	ALLEN	1600	300
    7521	WARD	1250	500
    7566	JONES	2975	
    7654	MARTIN	1250	1400
    7698	BLAKE	2850	
    7782	CLARK	2450	
    7788	SCOTT	3000	
    7839	KING	5000	
    7844	TURNER	1500	0
    7876	ADAMS	1100	
    7900	JAMES	950	
    7902	FORD	3000	
    7934	MILLER	1300	
    */
    
    /* 1-문제 & ν•¨κ»˜ν‘Ό λ‚΄μš© ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
    --β—‹ EMP ν…Œμ΄λΈ”μ—μ„œ λΆ€μ„œλ²ˆν˜Έκ°€ 20인 μ§μ›λ“€μ˜ 데이터듀 쀑
    --μ‚¬μ›λ²ˆν˜Έ, 사원λͺ…, 직쒅, κΈ‰μ—¬, λΆ€μ„œλ²ˆν˜Έ 쑰회
    SELECT μ‚¬μ›λ²ˆν˜Έ, 사원λͺ…, 직쒅, κΈ‰μ—¬, λΆ€μ„œλ²ˆν˜Έ
    FROM EMP
    WHERE λΆ€μ„œλ²ˆν˜Έκ°€ 20;
    
    SELECT EMPNO, ENAME, JOB, SAL, DEPTNO
    FROM EMP
    WHERE DEPTNOκ°€ 20;
    
    --SELECT EMPNO, ENAME, JOB, SAL, DEPTNO
    --FROM EMP
    --WHERE DEPTNO == 20;
    --==>> μ—λŸ¬λ°œμƒ
    
    SELECT EMPNO, ENAME, JOB, SAL, DEPTNO
    FROM EMP
    WHERE DEPTNO = 20;
    --==>>
    /*
    7369	SMITH	CLERK	800	20
    7566	JONES	MANAGER	2975	20
    7788	SCOTT	ANALYST	3000	20
    7876	ADAMS	CLERK	1100	20
    7902	FORD	ANALYST	3000	20
    */
    
    SELECT EMPNO AS "μ‚¬μ›λ²ˆν˜Έ", ENAME "사원λͺ…" , JOB 직쒅λͺ…, SAL "κΈ‰   μ—¬", DEPTNO "λΆ€μ„œ 번호" 
    FROM EMP;
    --β€» ν…Œμ΄λΈ”μ„ μ‘°νšŒν•˜λŠ” κ³Όμ •μ—μ„œ
    --각 컬럼의 μ΄λ¦„μ—λŠ” 별칭(ALIAS)을 λΆ€μ—¬ν•  수 μžˆλ‹€.
    --κΈ°λ³Έ ꡬ문의 ν˜•μ‹μ€ γ€Žμ»¬λŸΌλͺ… AS "별칭이름"γ€μ˜ ν˜•νƒœλ‘œ μž‘μ„±λ˜λ©°
    --이 λ•Œ, γ€ŽASγ€λŠ” μƒλž΅μ΄ κ°€λŠ₯ν•˜λ‹€.
    --λ˜ν•œ, 별칭 이름을 κ°μ‹ΈλŠ” γ€Ž""』도 μƒλž΅μ΄ κ°€λŠ₯ν•˜μ§€λ§Œ
    --γ€Ž""』 λ₯Ό μƒλž΅ν•  경우 별칭 λ‚΄μ—μ„œ 곡백은 μ‚¬μš©ν•  수 μ—†λ‹€.
    --곡백의 λ“±μž₯은 ν•΄λ‹Ή 컬럼의 ν‘œν˜„μ— λŒ€ν•œ 쒅결을 μ˜λ―Έν•˜λ―€λ‘œ
    --λ³„μΉ­μ˜ 이름 내뢀에 곡백을 μ‚¬μš©ν•΄μ•Ό ν•  경우
    --γ€Ž""』 λ₯Ό μ‚¬μš©ν•˜μ—¬ 별칭을 λΆ€μ—¬ν•  수 μžˆλ„λ‘ ν•œλ‹€.
    
    /* EMPNO AS "μ‚¬μ›λ²ˆν˜Έ" : SQLμ—μ„œλŠ” λ¬Έμžμ—΄μ€ '(μž‘μ€λ”°μ˜΄ν‘œ)μ΄μ§€λ§Œ, AS(별칭)을 μ§€μ„λ•ŒλŠ” "(ν°λ”°μ˜΄ν‘œ)
                          'μΌμ‹œ μ—λŸ¬λ°œμƒ(ORA-00923: FROM keyword not found where expected)
     ENAME "사원λͺ…"      : AS μƒλž΅ κ°€λŠ₯
     JOB 직쒅λͺ…          : " μƒλž΅ κ°€λŠ₯
     SAL "κΈ‰   μ—¬"       : λ³„μΉ­μ•ˆμ— 곡백이 μžˆμ„ μ‹œ " μƒλž΅λΆˆκ°€*/
    
    
    --β—‹ EMP ν…Œμ΄λΈ”μ—μ„œ λΆ€μ„œλ²ˆν˜Έκ°€ 20번과 30번 μ§μ›λ“€μ˜ 데이터듀 쀑
    --μ‚¬μ›λ²ˆν˜Έ, 사원λͺ…, 직쒅λͺ…, κΈ‰μ—¬, λΆ€μ„œλ²ˆν˜Έ ν•­λͺ©μ„ μ‘°νšŒν•œλ‹€.
    --단, 별칭(ALIAS)을 μ‚¬μš©ν•œλ‹€.
    /*
    EMP ν…Œμ΄λΈ”μ—μ„œ                           -> FROM EMP
    λΆ€μ„œλ²ˆν˜Έκ°€ 20번과 30번                   -> 쑰건
    μ‚¬μ›λ²ˆν˜Έ, 사원λͺ…, 직쒅λͺ…, κΈ‰μ—¬, λΆ€μ„œλ²ˆν˜Έ -> SELECT 컬럼λͺ…
    */
    SELECT μ‚¬μ›λ²ˆν˜Έ, 사원λͺ…, 직쒅λͺ…, κΈ‰μ—¬, λΆ€μ„œλ²ˆν˜Έ
    FROM EMP
    WHERE λΆ€μ„œλ²ˆν˜Έκ°€ 20번과 30번;
    
    SELECT EMPNO "μ‚¬μ›λ²ˆν˜Έ", ENAME "사원λͺ…", JOB "직쒅λͺ…", SAL "κΈ‰μ—¬", DEPTNO "λΆ€μ„œλ²ˆν˜Έ"
    FROM EMP
    WHERE DEPTNOκ°€ 20 DEPTNOκ°€ 30;
    
    SELECT EMPNO "μ‚¬μ›λ²ˆν˜Έ", ENAME "사원λͺ…", JOB "직쒅λͺ…", SAL "κΈ‰μ—¬", DEPTNO "λΆ€μ„œλ²ˆν˜Έ"
    FROM EMP
    WHERE DEPTNO=20 || DEPTNO=30;
    --==>> μ—λŸ¬λ°œμƒ
    
    SELECT EMPNO μ‚¬μ›λ²ˆν˜Έ, ENAME 사원λͺ…, JOB 직쒅λͺ…, SAL κΈ‰μ—¬, DEPTNO λΆ€μ„œλ²ˆν˜Έ
    FROM EMP
    WHERE DEPTNO = 20 OR DEPTNO = 30;
    --==>>
    /*
    7369	SMITH	CLERK	    800	    20
    7499	ALLEN	SALESMAN	1600	30
    7521	WARD	SALESMAN	1250	30
    7566	JONES	MANAGER	    2975	20
    7654	MARTIN	SALESMAN	1250	30
    7698	BLAKE	MANAGER	    2850	30
    7788	SCOTT	ANALYST	    3000	20
    7844	TURNER	SALESMAN	1500	30
    7876	ADAMS	CLERK	    1100	20
    7900	JAMES	CLERK	    950	    30
    7902	FORD	ANALYST	    3000	20
    */
    
    --β€» μœ„μ˜ ꡬ문은 IN μ—°μ‚°μžλ₯Ό ν™œμš©ν•˜μ—¬
    --   λ‹€μŒκ³Ό 같이 μ²˜λ¦¬ν•  수 있으며
    --   μœ„ ꡬ문의 μ²˜λ¦¬κ²°κ³Όμ™€ 같은 κ²°κ³Όλ₯Ό λ°˜ν™˜ν•œλ‹€.
    
    SELECT EMPNO "μ‚¬μ›λ²ˆν˜Έ", ENAME "사원λͺ…", JOB "직쒅λͺ…", SAL "κΈ‰μ—¬", DEPTNO "λΆ€μ„œλ²ˆν˜Έ"
    FROM EMP
    WHERE DEPTNO IN (20,30);
    --==>>
    /*
    7369	SMITH	CLERK	    800	    20
    7499	ALLEN	SALESMAN	1600	30
    7521	WARD	SALESMAN	1250	30
    7566	JONES	MANAGER	    2975	20
    7654	MARTIN	SALESMAN	1250	30
    7698	BLAKE	MANAGER	    2850	30
    7788	SCOTT	ANALYST	    3000	20
    7844	TURNER	SALESMAN	1500	30
    7876	ADAMS	CLERK	    1100	20
    7900	JAMES	CLERK	    950	    30
    7902	FORD	ANALYST	    3000	20
    */
    
    /* 2-문제 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
    --β—‹ EMP ν…Œμ΄λΈ”μ—μ„œ 직쒅이 CLERK 인 μ‚¬μ›λ“€μ˜ 데이터λ₯Ό λͺ¨λ‘ μ‘°νšŒν•œλ‹€.
    SELECT *
    FROM EMP
    WHERE JOB = 'CLERK';
    --==>>
    /*
    7369	SMITH	CLERK	7902	1980-12-17 00:00:00	800		    20
    7876	ADAMS	CLERK	7788	1987-07-13 00:00:00	1100		20
    7900	JAMES	CLERK	7698	1981-12-03 00:00:00	950		    30
    7934	MILLER	CLERK	7782	1982-01-23 00:00:00	1300		10
    */
    
    /* 2-ν•¨κ»˜ ν‘Ό λ‚΄μš© ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
    SELECT *
    FROM EMP
    WHERE JOB IN ('CLERK');
    --==>>
    /*
    7369	SMITH	CLERK	7902	1980-12-17 00:00:00	800		    20
    7876	ADAMS	CLERK	7788	1987-07-13 00:00:00	1100		20
    7900	JAMES	CLERK	7698	1981-12-03 00:00:00	950		    30
    7934	MILLER	CLERK	7782	1982-01-23 00:00:00	1300		10
    */
    
    SELECT *
    FROM EMP
    WHERE JOB IN ('clerk');
    --==>> 쑰회 κ²°κ³Ό μ—†μŒ
    
    --β€» μ˜€λΌν΄μ—μ„œ... μž…λ ₯된 λ°μ΄ν„°μ˜ κ°’ λ§ŒνΌμ€...
    --  반.λ“œ.μ‹œ λŒ€μ†Œλ¬Έμž ꡬ뢄을 ν•œλ‹€.
    
    --β—‹ EMP ν…Œμ΄λΈ”μ—μ„œ 직쒅이 CLERK 인 사원듀 쀑
    --    20번 λΆ€μ„œμ— κ·Όλ¬΄ν•˜λŠ” μ‚¬μ›λ“€μ˜
    --    μ‚¬μ›λ²ˆν˜Έ, 사원λͺ…, 직쒅λͺ…, κΈ‰μ—¬, λΆ€μ„œλ²ˆν˜Έ ν•­λͺ©μ„ μ‘°νšŒν•œλ‹€.
    --    ALIAS μ‚¬μš©~!!!
    SELECT EMPNO "μ‚¬μ›λ²ˆν˜Έ", ENAME "사원λͺ…", JOB "직쒅λͺ…", SAL "κΈ‰μ—¬", DEPTNO "λΆ€μ„œλ²ˆν˜Έ"
    FROM EMP
    WHERE JOB = 'CLERK' AND DEPTNO = 20;
    --==>>
    /*
    7369	SMITH	CLERK	800	    20
    7876	ADAMS	CLERK	1100	20
    */
    
    /* 3-문제 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
    --β—‹ EMP ν…Œμ΄λΈ”μ˜ ꡬ쑰와 데이터λ₯Ό ν™•μΈν•΄μ„œ
    --    이와 λ˜‘κ°™μ€ 데이터가 λ“€μ–΄μžˆλŠ” ν…Œμ΄λΈ”μ˜ ꡬ쑰λ₯Ό μƒμ„±ν•œλ‹€.
    --    (νŒ€λ³„λ‘œ... EMP1, EMP2, EMP3, EMP4)
    --**μΆ”κ°€ μ½”λ©˜νŠΈ) ν•œ ν…Œμ΄λΈ”μ— λŒ€ν•΄ μ—¬λŸ¬ 처리λ₯Ό ν•˜κ²Œ 되면 lock κ±Έλ¦Ό
    
    CREATE TABLE EMP4
    ( EMPNO NUMBER(4)
    , ENAME VARCHAR2(10)
    , JOB VARCHAR2(9)
    , MGR NUMBER(4)
    , HIREDATE DATE
    , SAL NUMBER(7,2)
    , COMM NUMBER(7,2)
    , DEPTNO NUMBER(2)
    );
    --==>> Table EMP4이(κ°€) μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    INSERT INTO EMP4 VALUES
    (7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20);
    INSERT INTO EMP4 VALUES
    (7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);
    INSERT INTO EMP4 VALUES
    (7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30);
    --==>> 1 ν–‰ 이(κ°€) μ‚½μž…λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    SELECT *
    FROM EMP4;
    
    DROP TABLE EMP4;
    
    INSERT INTO EMP4 VALUES
    (7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20);
    INSERT INTO EMP4 VALUES
    (7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);
    INSERT INTO EMP4 VALUES
    (7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);
    INSERT INTO EMP4 VALUES
    (7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20);
    INSERT INTO EMP4 VALUES
    (7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);
    INSERT INTO EMP4 VALUES
    (7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30);
    INSERT INTO EMP4 VALUES
    (7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10);
    INSERT INTO EMP4 VALUES
    (7788,'SCOTT','ANALYST',7566,to_date('13-7-1987','dd-mm-yyyy'),3000,NULL,20);
    INSERT INTO EMP4 VALUES
    (7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10);
    INSERT INTO EMP4 VALUES
    (7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30);
    INSERT INTO EMP4 VALUES
    (7876,'ADAMS','CLERK',7788,to_date('13-7-1987','dd-mm-yyyy'),1100,NULL,20);
    INSERT INTO EMP4 VALUES
    (7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30);
    INSERT INTO EMP4 VALUES
    (7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20);
    INSERT INTO EMP4 VALUES
    (7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10);
    
    COMMIT;
    
    
    
    /* 3-ν•¨κ»˜ ν‘Ό λ‚΄μš© ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
    --1. 볡사할 λŒ€μƒ ν…Œμ΄λΈ” ꡬ쑰 확인
    DESCRIBE EMP;
    DESC EMP;
    /*
    이름       널?       μœ ν˜•           
    -------- -------- ------------ 
    EMPNO    NOT NULL NUMBER(4)    
    ENAME             VARCHAR2(10) 
    JOB               VARCHAR2(9)  
    MGR               NUMBER(4)    
    HIREDATE          DATE         
    SAL               NUMBER(7,2)  
    COMM              NUMBER(7,2)  
    DEPTNO            NUMBER(2)
    */
    
    -- 2. λŒ€μƒ ν…Œμ΄λΈ”μ˜ ꡬ쑰에 따라 μƒˆλ‘œμš΄ ν…Œμ΄λΈ” 생성
    CREATE TABLE EMP5
    ( EMPNO     NUMBER(4)
    , ENAME     VARCHAR2(10)
    , JOB       VARCHAR2(9)
    , MGR       NUMBER(4)
    , HIGEDATE  DATE
    , SAL       NUMBER(7,2)
    , COMM      NUMBER(7,2)
    , DEPTNO    NUMBER(2)
    );
    
    --3. λŒ€μƒ ν…Œμ΄λΈ”μ˜ 데이터 쑰회
    SELECT *
    FROM EMP;
    --==>>
    /*
    7369	SMITH	CLERK	7902	1980-12-17	800		20
    7499	ALLEN	SALESMAN	7698	1981-02-20	1600	300	30
    7521	WARD	SALESMAN	7698	1981-02-22	1250	500	30
    7566	JONES	MANAGER	7839	1981-04-02	2975		20
    7654	MARTIN	SALESMAN	7698	1981-09-28	1250	1400	30
    7698	BLAKE	MANAGER	7839	1981-05-01	2850		30
    7782	CLARK	MANAGER	7839	1981-06-09	2450		10
    7788	SCOTT	ANALYST	7566	1987-07-13	3000		20
    7839	KING	PRESIDENT		1981-11-17	5000		10
    7844	TURNER	SALESMAN	7698	1981-09-08	1500	0	30
    7876	ADAMS	CLERK	7788	1987-07-13	1100		20
    7900	JAMES	CLERK	7698	1981-12-03	950		30
    7902	FORD	ANALYST	7566	1981-12-03	3000		20
    7934	MILLER	CLERK	7782	1982-01-23	1300		10
    */
    
    --4. λŒ€μƒ ν…Œμ΄λΈ”μ˜ 데이터λ₯Ό 볡사할 데이블에 μž…λ ₯
    INSERT INTO EMP5 VALUES
    (7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20);
    INSERT INTO EMP5 VALUES
    (7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);
    INSERT INTO EMP5 VALUES
    (7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);
    INSERT INTO EMP5 VALUES
    (7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20);
    INSERT INTO EMP5 VALUES
    (7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);
    INSERT INTO EMP5 VALUES
    (7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30);
    INSERT INTO EMP5 VALUES
    (7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10);
    INSERT INTO EMP5 VALUES
    (7788,'SCOTT','ANALYST',7566,to_date('13-7-1987','dd-mm-yyyy'),3000,NULL,20);
    INSERT INTO EMP5 VALUES
    (7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10);
    INSERT INTO EMP5 VALUES
    (7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30);
    INSERT INTO EMP5 VALUES
    (7876,'ADAMS','CLERK',7788,to_date('13-7-1987','dd-mm-yyyy'),1100,NULL,20);
    INSERT INTO EMP5 VALUES
    (7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30);
    INSERT INTO EMP5 VALUES
    (7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20);
    INSERT INTO EMP5 VALUES
    (7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10);
    
    --5. 확인
    SELECT *
    FROM EMP5;
    
    --6. 컀밋
    COMMIT;
    --==>> 컀밋 μ™„λ£Œ.
    
    --β€» λ‚ μ§œ κ΄€λ ¨ μ„Έμ…˜ μ„€μ • λ³€κ²½
    ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';
    
    
    --β—‹ λŒ€μƒ ν…Œμ΄λΈ”μ˜ λ‚΄μš©μ— 따라 ν…Œμ΄λΈ” 생성(TBL_EMP)
    CREATE TABLE TBL_EMP
    AS
    SELECT *
    FROM EMP;
    --==>> Table TBL_EMP이(κ°€) μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    --β—‹ λ³΅μ‚¬ν•œ ν…Œμ΄λΈ” 데이터 쑰회
    SELECT *
    FROM TBL_EMP;
    
    
    /* 4-문제 & ν•¨κ»˜ ν‘Ό λ‚΄μš© ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
    --β—‹ DEPT ν…Œμ΄λΈ”μ„ λ³΅μ‚¬ν•˜μ—¬ μœ„μ™€ 같은 TBL_DEPT ν…Œμ΄λΈ”μ„ μƒμ„±ν•œλ‹€.
    CREATE TABLE TBL_DEPT
    AS
    SELECT *
    FROM DEPT;
    --==>> Table TBL_DEPT이(κ°€) μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    --β—‹ λ³΅μ‚¬ν•œ ν…Œμ΄λΈ” 확인
    SELECT *
    FROM TBL_DEPT;
    /*
    10	ACCOUNTING	NEW YORK
    20	RESEARCH	DALLAS
    30	SALES	    CHICAGO
    40	OPERATIONS	BOSTON
    */
    
    --β—‹ ν…Œμ΄λΈ”μ˜ 컀멘트 정보 확인
    SELECT *
    FROM USER_TAB_COMMENTS;
    /*
    DEPT	        TABLE	
    EMP	            TABLE	
    BONUS	        TABLE	
    TBL_EMP	        TABLE	
    TBL_EXAMPLE1	TABLE	
    TBL_EXAMPLE2	TABLE	
    SALGRADE	    TABLE	
    EMP4	        TABLE	
    TBL_DEPT	    TABLE	
    EMP5	        TABLE	
    */
    
    --β—‹ ν…Œμ΄λΈ” 레벨의 컀멘트 정보 μž…λ ₯
    COMMENT ON TABLE TBL_EMP IS '사원 정보';
    --==>> Comment이(κ°€) μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    --β—‹ 컀멘트 정보 μž…λ ₯ ν›„ λ‹€μ‹œ 확인
    SELECT *
    FROM USER_TAB_COMMENTS;
    --** 컀멘트λ₯Ό μ•ˆλ‹¬μ•„λ„ 크게 μƒκ³Όμ—†μ§€λ§Œ, 같이 μΌν•˜κΈ° μ’‹μ€μ‚¬λžŒμ΄ 될 수 있고 λ‚΄κ°€ κ΄€λ¦¬ν•˜κΈ°μ—λ„ μ’‹λ‹€.
    --==>>
    /*
    EMP5	        TABLE	
    TBL_DEPT	    TABLE	
    EMP4	        TABLE	
    SALGRADE	    TABLE	
    TBL_EXAMPLE2	TABLE	
    TBL_EXAMPLE1	TABLE	
    TBL_EMP	        TABLE	사원 정보
    BONUS	        TABLE	
    EMP	            TABLE	
    DEPT	        TABLE	
    */
    
    --β—‹ TBL_DEPT ν…Œμ΄λΈ”μ„ λŒ€μƒμœΌλ‘œ ν…Œμ΄λΈ” 레벨의 컀멘트 데이터 μž…λ ₯
    -- -> λΆ€μ„œ 정보
    COMMENT ON TABLE TBL_DEPT IS 'λΆ€μ„œ 정보';
    
    --β—‹ 컀멘트 데이터 μž…λ ₯ ν›„ 확인
    SELECT *
    FROM USER_TAB_COMMENTS;
    /*
    EMP5	        TABLE	
    TBL_DEPT	    TABLE	λΆ€μ„œ 정보
    EMP4	        TABLE	
    SALGRADE	    TABLE	
    TBL_EXAMPLE2	TABLE	
    TBL_EXAMPLE1	TABLE	
    TBL_EMP	        TABLE	사원 정보
    BONUS	        TABLE	
    EMP	            TABLE	
    DEPT	        TABLE	
    */
    
    --β—‹ νœ΄μ§€ν†΅ λΉ„μš°κΈ°
    PURGE RECYCLEBIN;
    
    --β—‹ 컬럼(COLUMN) 레벨의 컀멘트 데이터 μž…λ ₯
    SELECT *
    FROM USER_COL_COMMENTS;
    
    /*
    TBL_EMP	    HIREDATE	
    EMP4	    EMPNO	
    SALGRADE	HISAL	
    DEPT	    LOC	
    BONUS	    COMM	
    TBL_EMP	    ENAME	
    BIN$IhHBS6pBRP627poXcYfBUA==$0	DEPTNO	
    EMP4	    COMM	
    EMP5	    ENAME	
    EMP5	    JOB	
    EMP	        DEPTNO	
    TBL_DEPT	LOC	
    TBL_DEPT	DNAME	
    EMP	EMPNO	
    BIN$LrMQjHLGTNOvSHA+mwIy/Q==$0	MGR	
    DEPT	    DEPTNO	
    DEPT	    DNAME	
    TBL_EMP	    DEPTNO	
    TBL_EMP	    EMPNO	
    TBL_EMP	    JOB	
    TBL_EXAMPLE2	NO	
    TBL_EMP 	MGR	
    BONUS	    JOB	
    TBL_EXAMPLE1	NO	
    EMP5	    DEPTNO	
    EMP4	    DEPTNO	
    EMP5	    MGR	
    EMP	        ENAME	
    BIN$LrMQjHLGTNOvSHA+mwIy/Q==$0	ENAME	
    BIN$IhHBS6pBRP627poXcYfBUA==$0	HIREDATE	
    BIN$LrMQjHLGTNOvSHA+mwIy/Q==$0	EMPNO	
    EMP5	    COMM	
    EMP	        JOB	
    TBL_EXAMPLE2	NAME	
    BONUS	    SAL	
    EMP	        SAL	
    BIN$LrMQjHLGTNOvSHA+mwIy/Q==$0	HIREDATE	
    TBL_EMP	    SAL	
    EMP4	    ENAME	
    SALGRADE	GRADE	
    EMP5	    SAL	
    EMP5	    EMPNO	
    TBL_DEPT	DEPTNO	
    SALGRADE	LOSAL	
    BIN$IhHBS6pBRP627poXcYfBUA==$0	COMM	
    TBL_EXAMPLE1	NAME	
    EMP4	    SAL	
    TBL_EMP	    COMM	
    EMP4	HIREDATE	
    BIN$IhHBS6pBRP627poXcYfBUA==$0	JOB	
    BIN$LrMQjHLGTNOvSHA+mwIy/Q==$0	JOB	
    EMP	COMM	
    EMP4	JOB	
    BIN$IhHBS6pBRP627poXcYfBUA==$0	EMPNO	
    TBL_EXAMPLE1	ADDR	
    EMP4	MGR	
    TBL_EXAMPLE2	ADDR	
    EMP	HIREDATE	
    BIN$LrMQjHLGTNOvSHA+mwIy/Q==$0	SAL	
    EMP	MGR	
    BIN$LrMQjHLGTNOvSHA+mwIy/Q==$0	COMM	
    BIN$IhHBS6pBRP627poXcYfBUA==$0	ENAME	
    BIN$IhHBS6pBRP627poXcYfBUA==$0	MGR	
    BIN$LrMQjHLGTNOvSHA+mwIy/Q==$0	DEPTNO	
    EMP5	HIGEDATE	
    BONUS	ENAME	
    BIN$IhHBS6pBRP627poXcYfBUA==$0	SAL	
    */
    
    SELECT *
    FROM TAB;
    
    DROP TABLE TBL_EXAMPLE1;
    --==>> Table TBL_EXAMPLE1이(κ°€) μ‚­μ œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    SELECT *
    FROM TAB;
    /*
    BIN$tv4dttSlRmKaJ8c/NyW9qg==$0	TABLE	
    BONUS	TABLE	
    DEPT	TABLE	
    EMP	    TABLE	
    EMP4	TABLE	
    EMP5	TABLE	
    SALGRADE	TABLE	
    TBL_DEPT	TABLE	
    TBL_EMP	    TABLE	
    TBL_EXAMPLE2	TABLE	
    */
    
    -- νœ΄μ§€ν†΅ λΉ„μš°κΈ°
    PURGE RECYCLEBIN;
    --==>> RECYCLEBIN이(κ°€) λΉ„μ›Œμ‘ŒμŠ΅λ‹ˆλ‹€.
    
    SELECT *
    FROM TAB;
    
    --β—‹ 컬럼(COLUMN) 레벨의 컀멘트 데이터 확인(TBL_DEPT ν…Œμ΄λΈ”μ— μ†Œμ†λœ μ»¬λŸΌλ“€λ§Œ 쑰회)
    SELECT *
    FROM USER_COL_COMMENTS
    WHERE TABLE_NAME = 'TBl_DEPT';  -- 쑰건좔가
    --==>>
    /*
    TBL_DEPT	DEPTNO	
    TBL_DEPT	DNAME	
    TBL_DEPT	LOC	
    */
    
    --COMMENT μž‘μ„±ν˜•μ‹1) COMMENT ON TABLE ν…Œμ΄λΈ”λͺ… IS '컀멘트';
    
    --β—‹ ν…Œμ΄λΈ”μ— μ†Œμ†λœ μ»¬λŸΌμ— λŒ€ν•œ 컀멘트 데이터 μž…λ ₯
    COMMENT ON COLUMN TBl_DEPT.DEPTNO IS 'λΆ€μ„œ 번호';
    --==>> Comment이(κ°€) μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    COMMENT ON COLUMN TBl_DEPT.DNAME IS 'λΆ€μ„œ 이름';
    --==>> Comment이(κ°€) μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    COMMENT ON COLUMN TBL_DEPT.LOC IS 'λΆ€μ„œ μœ„μΉ˜';
    --==>> Comment이(κ°€) μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    --β—‹ 확인
    SELECT *
    FROM USER_COL_COMMENTS
    WHERE TABLE_NAME='TBL_DEPT';
    /*
    TBL_DEPT	DEPTNO	λΆ€μ„œ 번호
    TBL_DEPT	DNAME	λΆ€μ„œ 이름
    TBL_DEPT	LOC	λΆ€μ„œ μœ„μΉ˜
    */
    
    /* 5-문제 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
    --β—‹ TBL_EMP ν…Œμ΄λΈ”μ„ λŒ€μƒμœΌλ‘œ
    --    ν…Œμ΄λΈ”μ— μ†Œμ†λœ(ν¬ν•¨λœ) μ»¬λŸΌμ— λŒ€ν•œμ»€λ©˜νŠΈ 데이터 μž…λ ₯(μ„€μ •)
    DESC TBL_EMP;
    --사원 번호, 사원 이름, 직쒅 이름, κ΄€λ¦¬μž μ‚¬μ›λ²ˆν˜Έ, μž…μ‚¬μΌ, κΈ‰μ—¬, μˆ˜λ‹Ή, λΆ€μ„œ 번호
    COMMENT ON COLUMN TBL_EMP.EMPNO IS '사원 번호';
    COMMENT ON COLUMN TBL_EMP.ENAME IS '사원 이름';
    COMMENT ON COLUMN TBL_EMP.JOB IS '직쒅 이름';
    COMMENT ON COLUMN TBL_EMP.MGR IS 'κ΄€λ¦¬μž μ‚¬μ›λ²ˆν˜Έ';
    COMMENT ON COLUMN TBL_EMP.HIREDATE IS 'μž…μ‚¬μΌ';
    COMMENT ON COLUMN TBL_EMP.SAL IS 'κΈ‰μ—¬';
    COMMENT ON COLUMN TBL_EMP.COMM IS 'μˆ˜λ‹Ή';
    COMMENT ON COLUMN TBL_EMP.DEPTNO IS 'λΆ€μ„œλ²ˆν˜Έ';
    
    SELECT *
    FROM USER_COL_COMMENTS
    WHERE TABLE_NAME='TBL_EMP';
    /*
    TBL_EMP	EMPNO	사원 번호
    TBL_EMP	ENAME	사원 이름
    TBL_EMP	JOB	직쒅 이름
    TBL_EMP	MGR	κ΄€λ¦¬μž μ‚¬μ›λ²ˆν˜Έ
    TBL_EMP	HIREDATE	μž…μ‚¬μΌ
    TBL_EMP	SAL	κΈ‰μ—¬
    TBL_EMP	COMM	μˆ˜λ‹Ή
    TBL_EMP	DEPTNO	λΆ€μ„œλ²ˆν˜Έ
    */
    
    
    --β– β– β–  컬럼 ꡬ쑰의 μΆ”κ°€ 및 제거 β– β– β– --
    
    SELECT *
    FROM TBL_EMP;
    
    --β—‹ TBL_EMP ν…Œμ΄λΈ”μ— μ£Όλ―Όλ“±λ‘λ²ˆν˜Έ 데이터λ₯Ό 담을 수 μžˆλŠ” 컬럼 μΆ”κ°€
    --** ν…Œμ΄λΈ”μ˜ ꡬ쑰가 λ°”λ€ŒκΈ° λ•Œλ¬Έμ— ALTER
    ALTER TABLE TBL_EMP
    ADD SSN CHAR(13);
    --==>> Table TBL_EMP이(κ°€) λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    SELECT '01012341234'
    FROM DUAL;
    --==>> 01012341234
    --** λ¬Έμžνƒ€μž…
    
    SELECT 01012341234
    FROM DUAL;
    --==>> 1012341234
    --** μˆ«μžνƒ€μž…
    
    --β—‹ TBL_EMP ν…Œμ΄λΈ”μ˜ ꡬ쑰 확인
    DESC TBL_EMP;
    /*
    이름       널? μœ ν˜•           
    -------- -- ------------ 
    EMPNO       NUMBER(4)    
    ENAME       VARCHAR2(10) 
    JOB         VARCHAR2(9)  
    MGR         NUMBER(4)    
    HIREDATE    DATE         
    SAL         NUMBER(7,2)  
    COMM        NUMBER(7,2)  
    DEPTNO      NUMBER(2)    
    SSN         CHAR(13)
    */
    --> SSN(μ£Όλ―Όλ“±λ‘λ²ˆν˜Έ) 컬럼이 μ •μƒμ μœΌλ‘œ 포함(μΆ”κ°€)된 사항을 확인
    
    --β€» ν…Œμ΄λΈ” λ‚΄μ—μ„œ 컬럼의 μˆœμ„œλŠ” ꡬ쑰적으둜 의미 μ—†μŒ.
    --** μ–Όλ§ˆλ“ μ§€ SELECT둜 μ›ν•˜λŠ” λͺ¨μ–‘μœΌλ‘œ λ§Œλ“€ 수 있기 λ•Œλ¬Έμ—
    
    SELECT *
    FROM TBL_EMP;
    
    SELECT EMPNO, ENAME, SSN
    FROM TBL_EMP;
    
    --β—‹ TBL_EMP ν…Œμ΄λΈ”μ— μΆ”κ°€ν•œ SSN(주민번호) 컬럼 제거
    --** 컬럼이 μ‚­μ œλ˜λŠ” 것은 λ§žμœΌλ‚˜, ν…Œμ΄λΈ”μ˜ μž…μž₯μ—μ„œλŠ” λ³€κ²½λ˜λŠ” 것
    ALTER TABLE TBL_EMP
    DROP COLUMN SSN;
    --==>> Table TBL_EMP이(κ°€) λ³€κ²½λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    -- 확인
    DESC TBL_EMP;
    
    SELECT *
    FROM TBL_EMP;
    --> SSN(μ£Όλ―Όλ“±λ‘λ²ˆν˜Έ) 컬럼이 μ •μƒμ μœΌλ‘œ μ‚­μ œ(제거)λ˜μ—ˆμŒμ„ 확인.
    
    --** ꡬ쑰적으둜 생성 CREATE
    --**            λ³€κ²½ ALTER
    --**            μ‚­μ œ DROP
    --
    --** 데이터     생성 INSERT
    --**            λ³€κ²½
    --**            μ‚­μ œ DELETE
    
    DELETE TBL_EMP;
    --==>> 14개 ν–‰ 이(κ°€) μ‚­μ œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    SELECT *
    FROM TBL_EMP;
    --> ν…Œμ΄λΈ”μ˜ ꡬ쑰(λΌˆλŒ€, ν‹€)λŠ” κ·ΈλŒ€λ‘œ λ‚¨μ•„μžˆλŠ” μƒνƒœμ—μ„œ
    --    λ°μ΄ν„°λ§Œ λͺ¨λ‘ μ†Œμ‹€(μ‚­μ œ)된 μƒν™©μž„μ„ 확인
    
    DROP TABLE TBL_EMP;
    --==>> Table TBL_EMP이(κ°€) μ‚­μ œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    SELECT *
    FROM TBL_EMP;
    --==>> μ—λŸ¬λ°œμƒ
    --    (ORA-00942: table or view does not exist)
    --> ν…Œμ΄λΈ” μžμ²΄κ°€ 제거된 상황
    
    --β—‹ ν…Œμ΄λΈ” λ‹€μ‹œ 볡사(생성)
    CREATE TABLE TBL_EMP
    AS
    SELECT *
    FROM EMP;
    --==>> Table TBL_EMP이(κ°€) μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    
    --β—‹ NULL 의 처리
    SELECT 10, 10+2, 10-2, 10*2, 10/2
    FROM DUAL;
    --==>> 10	12	8	20	5
    
    --SELECT NULL, NULL+2, NULL-2, NULL*2, NULL/2
    --FROM DUAL;
    --==>> (NULL) (NULL) (NULL-2), (NULL/2)				
    --** μ‹€μ œλ‘œ 값이 보이지 μ•ŠμŒ
    
    --β€» κ΄€μ°° κ²°κ³Ό
    --    NULL은 μƒνƒœμ˜ 값을 μ˜λ―Έν•˜λ©°... μ‹€μ œ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” 값이기 λ•Œλ¬Έμ—
    --    이 NULL 이 연산에 포함될 경우...
    --    κ·Έ κ²°κ³ΌλŠ” 무쑰건 NULL
    --** μ—„λ°€νžˆ λ§ν•˜λ©΄, NULL은 μƒνƒœμ˜ κ°’
    
    /* 6-문제 & 같이 ν‘Ό λ‚΄μš© ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
    --β—‹ TBL_EMP ν…Œμ΄λΈ”μ—μ„œ μ»€λ―Έμ…˜(COMM, μˆ˜λ‹Ή)이 NULL 인 μ§μ›μ˜ 
    --    사원λͺ…, 직쒅λͺ…, κΈ‰μ—¬, μ»€λ―Έμ…˜ ν•­λͺ©μ„ μ‘°νšŒν•œλ‹€.
    SELECT ENAME, JOB, SAL, COMM
    FROM TBL_EMP
    WHERE COMM = NULL;
    --==>> 쑰회 κ²°κ³Ό μ—†μŒ
    
    SELECT ENAME, JOB, SAL, COMM
    FROM TBL_EMP
    WHERE COMM = 'NULL';
    --==>> μ—λŸ¬
    --      (ORA-01722: invalid number) --** μˆ«μžν˜•νƒ€μž…λ§Œ 올 수 μžˆλŠ”λ° λ¬Έμžκ°€ μ™”μŒ
    
    SELECT ENAME, JOB, SAL, COMM
    FROM TBL_EMP
    WHERE COMM = (NULL);
    --==>> 쑰회 κ²°κ³Ό μ—†μŒ
    
    --β€» NULL은 μ‹€μ œ μ‘΄μž¬ν•˜λŠ” 값이 μ•„λ‹ˆκΈ° λ•Œλ¬Έμ—
    --    일반적인 μ—°μ‚°μžλ₯Ό ν™œμš©ν•˜μ—¬ 비ꡐ할 수 μ—†λ‹€.
    --    NULL 을 λŒ€μƒμœΌλ‘œ μ‚¬μš©ν•  수 μ—†λŠ” μ—°μ‚°μžλ“€...
    --    >=, <=, =, >, <,
    --    κ°™μ§€ μ•Šλ‹€(3κ°€μ§€): !=, <>, ^=
    
    SELECT ENAME, JOB, SAL, COMM
    FROM TBL_EMP
    WHERE COMM IS NULL;
    --==>>
    /*
    --** (NULL)은 사싀 λ‚˜μ˜€μ§€ μ•ŠμŒ. μ‹œκ°μ μœΌλ‘œ ν‘œν˜„ν•΄μ€€ 것
    SMITH	CLERK	    800	    (NULL)
    JONES	MANAGER	    2975    (NULL)	
    BLAKE	MANAGER	    2850	(NULL)
    CLARK	MANAGER	    2450	(NULL)
    SCOTT	ANALYST	    3000	(NULL)
    KING	PRESIDENT	5000	(NULL)
    ADAMS	CLERK	    1100	(NULL)
    JAMES	CLERK	    950	    (NULL)
    FORD	ANALYST	    3000	(NULL)
    MILLER	CLERK	    1300	(NULL)
    */
    
    /* 7-문제 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
    --β—‹ TBL_EMP ν…Œμ΄λΈ”μ—μ„œ 20번 λΆ€μ„œμ— κ·Όλ¬΄ν•˜μ§€ μ•ŠλŠ” μ§μ›λ“€μ˜
    --    사원λͺ…, 직쒅λͺ…, λΆ€μ„œλ²ˆν˜Έ ν•­λͺ©μ„ μ‘°νšŒν•œλ‹€.
    DESC TBL_EMP;
    
    SELECT EMPNO, JOB, DEPTNO
    FROM TBL_EMP
    WHERE DEPTNO != 20;
        
    SELECT EMPNO, JOB, DEPTNO
    FROM TBL_EMP
    WHERE DEPTNO <> 20;
    
    SELECT EMPNO, JOB, DEPTNO
    FROM TBL_EMP
    WHERE DEPTNO ^= 20;
    --==>>
    /*
    7499	SALESMAN	30
    7521	SALESMAN	30
    7654	SALESMAN	30
    7698	MANAGER	30
    7782	MANAGER	10
    7839	PRESIDENT	10
    7844	SALESMAN	30
    7900	CLERK	30
    7934	CLERK	10
    */