ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SQLD]공부8일차_진짜문제풀이만해보기2_241115
    자격증/SQLD 2024. 11. 15. 01:21
    반응형

    # 최초 등록일 : 2024년 10월 15일 01:27
    # 최근 변경일 : 2024년 10월 15일 18: 54

    # 내용 : 2과목 문제풀이중

     

    7일차부터 계속 문제푸는중!!

     

    [SQLD]공부7일차_진짜문제풀이만해보기_241114

    # 최초 등록일 : 2024년 10월 14일 19:01# 최근 변경일 : 2024년 10월 15일 00:47# 내용 : 2과목 문제풀이중 6일차까지 이론정리를 했는데, 문제를 보니까 뭐지 싶어서 일단 문제풀이를 해본다.6일차는 아래

    doradorabean.tistory.com

     

     

    문제 풀면서 놓쳤던 이론과 방식 익숙해지는 중

     

    ------------------------------------------------------------------------------------------------------------------------------

    SQLD 문제 풀이------- 

    SQL 자격검정 실전문제

     

    문제: 98~127 / 36~99

    다시 풀어봐야하는 항목: 98, 100, 101, 106, 115, 116, 118, 121, 122 / 50, 52, 55, 58, 63, 65, 66, 68, 74, 78, 793, 80, 82, 95, 99, 109, 113, 116, 119

     

     

    SQL 자격검정 실전문제

     

    * GROUP BY 

     > GROUPING SET(A, B) == A B별 그룹 연산 결과 출력, 나열 순서 중요 X, 전체 합계 출력 X

      > ROLLUP(A, B) == A A,B별 전체 그룹 연산 결과 출력, 나열 순서가 중요, 전체 합계 출력 O

      > CUBE(A,B) : A, B, AB, 전체 그룹 연산 결과 출력, 나열 순서 중요 X, 전체 총계가 출력

    // rollup : 1차원 cube : 다차원 grouping set : 직접 그룹핑

    // grouping

     

    * 순위 관련 함수

      > RANK(순위) : RANK WITHIN GROUP : 특정값에 대한 순위 확인, 윈도우함수가 아닌 일반함수

      > RANK() OVER() : 전체 그룹 중 값의 순위 확인, ORDER BY 필수

      > DENSE_RANK : 누적순위, 동일한 순위 부여 후 다음 순위가 바로 이어지는 순위 부여 방식

      > ROW_NUMBER : 연속된 행 번호, 동일한 순위를 인정하지 않고 단순히 순서대로 나열한대로의 순서 값 리턴

      > LAG, LEAD : 행 순서대로 각각 이전 값(LAG), 이후값(LEAD) 가져오기, ORDER BY 필수

      > FIRST_VALUE, LAST_VALUE : 정렬순서대로 정해진 범위에서의 처음 값, 마지막 값 출력, 순서와 범위 정의에 따라 최솟값과 최댓값 리턴 가능, PARTITION BY, ORDER BY절 생략 가능

     

    * ROLE(): 권한의 묶음, SYSTEM 계정에서 ROLE 생성 가능

     

    * 권한 부여 옵션 : 중간관리자의 권한

      > WITH GRANT OPTION : 오브젝트 권한을 다른 사용자에게 부여, 중간관리자가 부여한 권한은 중간관리자만 회수 가능, 중간관리자에게 부여된 권한 회수 시 제 3자에게 부여된 권한도 함께 회수됨

      > WITH ADMIN OPTION : 시스템 권한/롤 권한은 다른 사용자에게 부여, 중간관리자를 거치지 않고 직접 회수 가능, 중간관리자 권한 회수시 제 3자에게 부여된 권한도 함께 회수X

     

    * 윈도우 함수 : 서로 다른 행의 비교나 연산을 위해 만든 함수, GROUP BY 하지 않고 그룹 연산 가능

      > PARTITION BY : 출력할 총 데이터 수 변화 없이 그룹 연산 수행할 GROUP BY 컬럼

      > ORDER BY // partition by ~ order by ~ 가 있으면 누적 합계를 표시함

      > ROWS|RANGE BETWEEN A AND B : 연산 범위 설정, ORDER BY 필수

     

    * 계층형 질의 : 하나의 테이블 내 각 행끼리 관계를 가질 때, 연결고리를 통해 행과 행 사이의 계층을 표현하는 기법

      > PRIOR의 위치에 따라 연결하는 데이터가 달라짐 > select where 절에도 사용 가능

      > START WITH : 데이터를 출력할 시작 지정하는 조건

      > CONNECT BY PRIOR : 행을 이어나갈 조건

      > NOCYCLE : 순환이 발생하면 무한 루프가 될 수 있기 때문에 이를 방지하고자 사용

     

    * 조인의 종류

      > 조건의 형태에 따라 EQUI JOIN(등가 JOIN) : JOIN 조건이 동등 조건인 경우, NON EQUI JOIN : JOIN 조건이 동등 조건이 아닌 경우

      > 조인 결과에 따라 INNER JOIN, OUTER JOIN(LEFT, RIGHT, FULL OUTER JOIN), NATURAL JOIN, CROSS JOIN, SELF JOIN

        > INNER JOIN : JOIN 조건에 성립하는 데이터만

        > OUTER JOIN : 성립하지 않는 데이터도

        > NATURAL JOIN : 조인 조건 생략 시 두 테이블에 같은 이름으로 자연 연결

        > CROSS JOIN : 조인 조건 생략 시 두 테이블의 발생 가능한 모든 행을 출력하는 조인, 카타시안곱으로 출력

        > SELF JOIN : 하나의 테이블을 두 번 이상 참조하여 연결하는 조인

          > ON : JOIN의 조건을 넣어서 조인 (cf. join ~ on ~)

          > USING : (cf. join ~ using (~)) -> using안에 있는 것이 join의 조건

     

    * PK (기본키) : 유일한 식별자, 중복 허용 X, NULL 허용  X (UNIQUE INDEX, NOT NULL)

    > ALTER TABLE PRODUCT ADD CONSTRAINT PRODUCT_PK PRIMARY KEY (PROD_ID)

     

    // 또틀림!!

    ** Delete(modify) action : Cascade, Set Null, Set Default, Restrict

    > Cascade : 부모삭제시 자식 같이 삭제

    > Set null : 부모 삭제시 자식  null

    > Set default : 부모 삭제시 자식 default

    > Restrict : 자식 테이블에 PK가 없는 경우만 부모 삭제 허용

    > No Action : 참조무결성을 위반 하는 삭제/수정 액션을 취하지 않음

     

    ** Insert action: automatic, set null. Set default, dependent

    > Automatic : 부모 테이블에 PK가 없는 경우 부모 PK를 생성 후 자식 입력

    > Set null : 부모 테이블에 PK가 없는 경우 자식 외부키 NULL 값으로 처리

    > Set default : 부모 테이블에 PK가 없는 경우 자식 외부키 Default값으로 처리

    > Dependent : 부모 테이블에 PK가 존재할 때만 자식 입력 허용

    반응형
Designed by Tistory.