본문 바로가기
Database

SQL

by creatingeveryday 2023. 4. 22.

SQL

SQL 언어의 구성

  • 데이터 정의 언어(DDL)
  • 데이터 조작 언어(DML)
  • 무결성
  • 뷰 정의
  • 트랜잭션 제어
  • 내장 SQL
  • 권한 부여

SQL 질의 연산 순서

SELECT dept_name, avg(salary) as avg_salary
FROM instructor
GROUP BY dept_name
HAVING avg(salary) > 50000;
  1. from 절로 릴레이션을 조회
  2. where 절이 존재하면 where 절의 술어가 from 절의 결과 릴레이션에 적용
  3. where 절의 술어를 만족하는 튜플은 group by 절이 존재하면 group by 절에 의해 그룹화된다. group by 절이 없다면, where 절의 술어를 만족하는 전체 튜플 집합은 하나의 그룹으로 간주된다.
  4. having 절이 존재한다면 각각의 그룹에 적용된다. having 절의 술어를 만족하지 못하는 그룹은 제거된다.
  5. select 절은 남아있는 그룹을 사용하여 질의의 결과 튜플을 생성하는데, 이때 그룹별로 집계 연산을 적용하여 단일 결과 항을 만든다.

인덱스

  • 인덱스는 데이터베이스에서 데이터를 검색할 때 성능을 향상시키는 데 사용된다.
  • 인덱스는 데이터베이스에서 릴레이션 속성의 특정 값을 가지고 있는 튜플을 릴레이션의 모든 튜플을 살펴보지 않고도 효과적으로 찾을 수 있는 자료구조다.
  • 사용자가 인덱스를 통해 성능 이득을 볼 수 있는 질의문을 입력하면 SQL query processor 가 자동으로 인덱스를 사용한다.
    • WHERE 절에서 열(컬럼) 값을 비교
    • ORDER BY 절에서 열(컬럼) 값을 기준으로 정렬
    • GROUP BY 절에서 열(컬럼) 값을 기준으로 그룹화
    • JOIN 절에서 조인 대상 열(컬럼) 값을 비교

'Database' 카테고리의 다른 글

DBMS 버퍼 관리  (0) 2023.05.27
디스크 공간 관리 모듈  (0) 2023.05.08
DBMS 아키텍처  (0) 2023.05.06
데이터베이스 시스템  (0) 2023.04.15

댓글