1. VIEW(뷰)

   (1) 테이블이 다른 사용자가 봐서는 안되는 컬럼이 있을 때, 컬럼 가리고 보여주고 싶을 때

   (2) 복잡하고 자주 Join을 할 때

   (3) 날리는 쿼리의 길이가 짧으니 Network 트래픽에 도움을 준다.


-> 권한이 안주어져 있는 계정이라면 SYS 계정으로 권한을 부여해야 한다.

    (ORACLE에서 지원하는 연습계정은 권한이 부여 되어 있는듯?)

       HR>CONN / AS SYSDBA;

       SYS>GRANT CREATE VIEW TO HR;


   [EX] CREATE OR REPLACE VIEW [V_원하는 명칭]

         AS

             SELECT ... FROM ... WHERE ... ;

         

         -> 삭제는 DROP VIEW [V_원하는 명칭];


   * Inline VIEW(1회용 뷰) : FROM절에 서브쿼리를 써줌

        [EX] SELECT ... 

              FROM SELECT ...

                         FROM ...

                         WHERE ... )

              WHERE ... ;



2. SEQUENCE(시퀀스) : 자동증가(넘버링)

   -> 동시 접속이 생기는 상황에서 유용할듯?


   [EX] CREATE SEQUENCE [SEQ_원하는 명칭]

         INCREMENT BY 1 -- 증가값

         MINVALUE 1       -- 최소값

         START WITH 1     -- 시작번호(기본값 1)

         ;

        -> 조건을 더 다양하게 줄 수 있지만 머리 아프니깐 생략!


        INSERT INTO [생성되어 있는 테이블명]

   VALUES ( [SEQ_원하는 명칭].NEXTVAL, 'ORACLE 기초', '기초학습자', '20161221' );


         -> 삭제는 DROP SEQUENCE [SEQ_원하는 명칭];


1. Cartesian Product(카티션 곱)

   : Join 조건이 없이 그대로 붙이는 것 (참조되는 테이블의 행 수의 곱이 결과값이 된다.) <- 그래서 카티션 곱인듯ㅋ



2. Equip Join 

   : 흔히 쓰는 Join (동일한 값으로 Join 걸어 줄 때)



3. Non-Equip Join 

   : 잘 안쓰일듯한 Join (범위로 Join 걸어 줄 때)  [ex] BETWEEN A AND B



4. Outer Join (덱스가 있어도 Full Scan을 하므로 속도가 너무 느려짐!! 안쓰길 권장!!!)

   (1) LEFT OUTER JOIN (왼쪽에 있는 테이블을 다 보고 싶을 때)  

      [ex] 왼쪽 테이블에 Join으로 엮이는 컬럼이 null 값이 있다던지..

   (2) RIGHT OUTER JOIN (오른쪽에 있는 테이블을 다 보고 싶을 때)

   


5. Self Join

   : 동일한 테이블을 두개를 쓰고 Alias를 달리 해서 지지고 볶는 일.

    [EX] ... FROM EMPLOYEE A JOIN EMPLOYEE B ON A.MANAGER_ID = B.EMPLOYEE_ID ...



6. Sub Query (참고로 Sub Query는 데이터가 적을 때 빠른긴 함) 

   (1) 두 번 조건을 줘야할 때 유용하게 쓸 수 있는데, Join이 빠를지 얘가 빠를지를 고민해서 쓰도록 합시다!

   (2) 밑에 EX에서 괄호 사이의 쿼리가 다중행 리턴 시, 사용하는 것들 - IN , >ANY , <ANY , <ALL , >ALL (잘 안쓰일듯..)

   [EX] ... FROM EMPLOYEE WHERE MANAGER_ID = (SELECT EMPLOYEE_ID ...) ...


날짜를 String 형태로 그냥 보여주는 형태로만 나타내면 좋을텐데..

 

날짜 연산이 들어가면 DateTime을 써야되더라고요.. 그래서 간략하게 DateTime에 대해서 정리해보겠습니다.

 

 

 

1. 현재시간을 출력해보겠습니다.

 

  DateTime now;              // 날짜 변수 선언(어차피 현재시간 넣을것이니 임의로 now..)

  now = DateTime.Now;    // 현재시간

 

  Console.WriteLine(now);  // 현재시간을 표현해줍니다.

 

 

2. 현재 시간을 DateTime 변수에 넣어서 년, 월, 일 등으로 분리 해보겠습니다.

   (비주얼 스튜디오에서는 "now."까지 입력하면 아래와 같은 리스트가 나올 것입니다.)

 

  [ex] now.Year  ,  now.Month  ,  now.Day.... 등등

 

 .Year   

현재 년도

 .Month

현재가 몇 월

 .Day    

현재가 몇 일

 .DayOfWeek

현재가 몇 주인지

 .DayOfYear

1년 중 몇 일째인지

 .TimeOfDay

금일 자정부터 현재까지 몇시간째인지

 .Hour

현재 시

 .Minute

현재 분

 .Second

현재 초

 

 

3. 시간을 연산해보겠습니다.

 

  3-1. 연단위 연산     [EX] now = DateTime.Now.AddYears(7);       // 7년을 더함

 

  3-2. 월 단위 연산    [EX] now = DateTime.Now.AddMonths(7);    // 7개월을 더함

 

  3-3. 일 단위 연산    [EX] now = DateTime.Now.AddDays(7);       // 7일을 더함 

 

  3-4. 시간 단위 연산 [EX] now = DateTime.Now.AddHours(7);      // 7시간을 더함

 

  3-5. 분 단위 연산    [EX] now = DateTime.Now.AddMinutes(7);   // 7분을 더함

 

  3-6. 초 단위 연산    [EX] now = DateTime.Now.AddSeconds(7);  // 7초를 더함

 

 

 

이상입니다^^

+ Recent posts