관리 메뉴

사과하는 제라스

5. SQL 2 본문

대학 전공 공부/데이터베이스1

5. SQL 2

Xerath(제라스) 2022. 4. 25. 20:11

목차

    728x90
    반응형

    기능 및 구문 측면에서 진보된 SQL

    1. 집계 함수(Aggregate Functions)

    - avg

    - min

    - max

    - sum

    - count

    Select count(*) from student; //count(값의 개수) 함수
    
    Select avg(salary), max(salary), min(salary) //avg(평균), max(최대), min(최소) 함수
    from professor
    where deptName='CS';
    
    Select count(distinct pID) //이런 식으로 distinct 효과를 주어 연산할 수도 있음.
    from teaches
    where semester='Spring' and year=2010;
    
    Select sum(salary) from professor; //sum(값의 합) 함수

    - group by 절

    : from-where절에서 선택된 영역에서 group 속성으로 그룹핑을 하는 구문

    Select deptName, count(*)
    from professor
    group by deptName;
    
    Select avg(salary)
    from professor
    group by deptName;

    - having 절 

    : group by 절에 의해 나뉜 상태에서 having 절 조건으로 필터링함.

    Select deptName, avg(salary)
    from professor
    group by deptName
    having avg(salary)>6900;

    - 널 값에 대한 집계 함수의 처리 방식

     

    → 집계함수는 기본적으로 널 값을 무시하고서 연산을 함.

    → 모든 값이 null이면 count 함수는 0을, 나머지 집계 함수들은 null을 반환함.

    → 널값은 null이라는 하나의 값으로 분별될 수 있음.

     

     

    2. 조인 테이블(Joined Relations)

     

    1) Inner join

    - inner join ~ on ~

    - inner join ~ using(A1, A2, ...)

    - natural join ~

     

    2) Outer join

    - left(right, full) outer join ~ on ~

    - left(right, full) outer join ~ using(A1, A2, ...)

    - natural left(right, full) outer join ~

     

    3. 중첩 서브질의(Nested Subqueries)

     

    - 단일 로우 서브질의(Single-row Subquery)

    : where 절에 단일 tuple을 반환하는 서브질의를 사용함.

     

    - IN 연산자

    : 단일 값이 다수 값에 속하는지를 검사함.

    - Get names and salaries of professor who has ID with 10 or 21 or 22.
    
    Select name, salary
    from professor
    where pID in (10,21,22);
    
    또는
    
    Select name, salary
    from professor
    where pID=10 or pID=21 or pID=22;

    - SOME(ANY) 연산자

    (5 < some {0, 5, 6}) = true

    (5 < some {0, 5}) = false

    (5 = some {0, 5}) = true

    (5 ≠ some {0, 5, 6}) = true

     

    (= some) ≡ in

    (≠ some) ≢ not in

     

    - ALL 연산자

    (5 < all {0, 5, 6}) = false

    (5 < all {6, 7}) = true

    (5 = all {4, 5}) = false

    (5 ≠ all {6, 7}) = true

     

    (≠ all) ≡ not in

    (= all) ≢ in

    3-2. 상관 서브질의(Correlated Subquery)

     

    unique는 tuple의 속성 중 하나라도 null 값을 가지면 동일하지 않다고 판별함.

     

    unique {<1, 2>, <1, 2>} :false

    unique {<1, 2>, <1, 3>} :true

    unique {<1, 2>, <1, null>} :true

    unique {<1, null>, <1, null>} :true

     

    4. 랭킹(Ranking)

    5. 기타 기능(More Features)

     

    728x90
    반응형

    '대학 전공 공부 > 데이터베이스1' 카테고리의 다른 글

    6. 데이터베이스 시스템 주요 기능  (0) 2022.06.13
    8. 응용 개발  (0) 2022.05.16
    SQL Examples  (0) 2022.04.25
    3. SQL 1 - DML  (0) 2022.04.25
    3. SQL 1 - DDL  (0) 2022.04.25