Computer Science/Database Design & Query Languages

[CS][데이터베이스 시스템 3판] Chapter05. SQL

y-seo 2023. 12. 7. 16:07

 

 
 

Pattern matching = LIKE Operator

  • 문자 패턴 부여 필요 → wild-card symbol 사용
    • % : 0개 이상의 arbitarary characters, 그 position에 아무거나 와도 되고 그 후로도 아무거나 올 수 있음
    • _ : under score, 1개 이상의 arbitarary characters, 그 position에 무언가 오긴 와야 하는데 아무거나 올 수 있음
    • _AB% : 1번째 글자가 오긴 오는데 아무거나 와도 좋고, 그 후에 AB 오고 (대소문자 구분 필요) 그 후에는 없거나 아무거나 와도 된다.

 

 
 

Set Operations

  • UNION : 합집합
  • INTERSECT : 교집합
  • MINUS : 차집합
  • (NOT) IN : membership, (안)나타나는지
  • op ANY : 하나의 record라도 만족하면
  • op ALL : 모든 record에 대해 만족하면
  • (NOT) EXISTS : record를 적어도 하나를 가지고 있는 table인지, 존재 (안)하는지

 

 
 

Nested Queries

  • 다른 query가 embedded 되어 있는 query
    • 그 embedded query를 subquery라고 부름
  • subquery는 또 다른 qubquery를 가질 수 있음
  • subquery는 전형적으로 WHERE 절 안에 나타난다.

 

 
 

Aggregate Operators

  • COUNT ([DISTINCT] A) : A열의 (유일한) 값들의 수
  • SUM ([DISTINCT] A) : A열의 모든 (유일한) 값들의 합
  • AVG ([DISTINCT] A) : A열의 모든 (유일한) 값들의 평균
  • MAX (A) : A열의 최댓값
  • MIN (A) : A열의 최솟값
  • MAX, MIN에 [DISTINCT]를 표시하는 것은 의미가 없다.

 

 
 

The GROUP BY and HAVING Clauses

  • GroupBy : 칼럼을 보고 같은 값끼리 grouping + 조건을 줄 수도 있다.
  • 관계가 있는 여러 행 그룹별로 aggregate operation을 적용하고자 한다.
  • group의 수는 사전에 알 수 없다.
  • Having : 그룹을 묶을 때 필요한 조건을 표시한다, 선택사항

 

 
 

NULL Values

  • row에 있는 column value에 unknown or inapplicable이 될 수 있음
    • unknown = 알려지지 않은, 모르는
    • inapplicable = 적용할/될 수 없는
  • 다른 값과 비교(=,<,>)할 수 없음
  • 값이 없다고 생각하면 됨
  • column constraints로 NOT NULL 작성 시 null 값이 안 들어오게 함
  • SQL은 특수 상황에 쓰는 null이라는 special column value가 제공됨
  • SQL은 IS NULL 이라는 column value가 null인지 테스트 하는 특별한 comparison operator을 제공함

 

 
 

Outer Join

  • Left outer join
    • 왼쪽의 table에서 오른쪽 table의 레코드와 join 될 것이 없어도 NULL과 조인하여 나온다.
    • 오른쪽 행과 부합하지 않는 왼쪽 행들이 결과에 나타난다.
  • Right outer join
    • 오른쪽 table에서 왼쪽 table의 레코드와 join 될 것이 없어도 NULL과 조인하여 나온다.
    • 왼쪽 행과 부합하지 않는 오른쪽 행들이 결과에 나타난다.
  • Full outer join
    • 왼쪽 table, 오른쪽 table 레코드 모두 서로와 join 될 것이 없어도 NULL과 조인하여 나온다.
    • Left outer join과 Right outer join을 union operate한 것
    • 양쪽에서 일치하지 않는 왼쪽, 오른쪽 행들을 모두 결과에 낱난다.

    •