• 순서
    1. where (출력할 레코드들)
    2. group by (레코드들 끼리 그룹을 짖기)
    3. having (group에대한 조건)
    4. order by (결과의 출력 순서)

COUNT

  • 형식: count( distinct <필드이름> )
  • 필드 이름 대신 *가 사용되면 레코드의 개수를 계산
  • distinct는 중복을 제거하고 숫자를 보여주라는 명령
    • 반대값은 all이 존재 (디폴트 값)

SUM

  • 형식: sum(<필드 이름>)
  • 필드값의 합계를 반

MIN, MAX

  • 형식: max(<필드 이름>), min(<필드 이름>)
  • 최대 최소 필드 값을 반
  • 필드와 집계함수는 같이 사용 할 수 없다.

GROUP BY

  • 형식: group by <필드 리스트>
  • select 절에 집계 함수가 사용될 경우 다른 필드는 select 절에 사용할 수가 없음
  • 그룹핑 후 집계함수 사용시 활용
  • group by 절의 필드명과 집계함수를 같이 사용 할 수 있게 됨

HAVING

  • 그룹에 대한 조건을 명시할 때 사용
  • 형식: having 집계함수 조건

널 처리

  • 널을 검색하는 방법
  • 형식: <필드 이름> is null, <필드 이름> is not null
    • where grade <> ‘A+’ → A+가 아닌 학생들을 검

중첩 질의

  • SQL문 안에 SQL문이 중첩되어 사용하는 질의
  • 내부질의, 부질의: 내부에 포함된 SQL문
  • 외부질의: 부 질의를 내부적으로 갖는 SQL문
  • 종류
    • in, not in
    • some, all
    • exists, not exists

  • 기존 테이블들로부터 생성되는 가상의 테이블
  • 기존의 테이블들을 조합하여 사용자에게 실제로 존재하는 테이블인 것처럼 보이게 함
    • 이렇게 만들어진 가상의 테이블을 사용하여 검색이 가능
  • 형식: create or replace view <뷰이름> as <select문> from 원본 테이블 이름 where 조건문
    • 마지막: with read only (검색 전용으로 만들기)
  • or replace를 생략해도 되나 추가하여 사용 할 경우 기존에 뷰 이름과 같은 뷰가 이미 존재하는 경우 기존 뷰를 지우고 새로 생성
  • 대부분의 DBMS에서 사용자 계정에는 뷰 생성 권한이 부여되지 않음
    • grand create view to <사용자 계정>: 권한 부여
  • 검색용으로만 사용하고 여기에 직접 데이터를 넣는건 바람직 하지 않다.
    • 여러 베이스 뷰의 요소가 짬뽕되어 있어 굉장히 위험하기 때문

'CS > DataBase' 카테고리의 다른 글

데이터베이스 보안  (0) 2023.04.09
무결성과 보안  (1) 2023.04.07
SQL 1  (0) 2023.03.24
관계 대수  (1) 2023.03.17
Key  (0) 2023.03.11

+ Recent posts