SQL 기본 및 활용

SQL 종류

  • DML(Data Manipulation Language)
    • SELECT
    • INSERT
    • UPDATE
    • DELETE
  • DDL(Data Definition Language)
    • CREATE
    • ALTER
    • DROP
    • RENAME
  • DCL(Data Control Language)
    • GRANT
    • REVOKE
  • TCL(Transaction Control Language)
    • COMMIT
    • ROLLBACK

LTRIM

  • SQL SERVER에서 왼쪽 공백 제거
  • 오라클에서는 LTRIM(문자열,제거할 문자열) 사용된다.

GROUP BY 절과 HAVING 특징

  • GROUP BY 절을 통해 소그룹별 기준을 정한 후 SELECT 절에 집계 함수를 사용
  • 집계 함수의 통계 정보는 NULL 값을 가진 행을 제외하고 수행
  • GROUP BY 절에서는 SELECT 절과는 달리 ALIAS 사용 불가
  • 집계 함수는 WHERE 절에는 올 수 없다. 
  • WHERE 절은 전체 데이터를 GROUP으로 나누기 전에 행들을 미리 제거한다.
  • HAVING 절은 GROUP BY 절의 기준 항목이나 소그룹의 집계 함수를 이용한 조건을 표시할 수 있다. 
  • GROUP BY 절에 의한 소그룹별로 만들어진 집계 데이터 중 HAVING 절에서 제한 조건을 두어 조건을 만족하는 내용만 출력
  • HAVING 절은 일반적으로 GROUP BY 절 뒤에 위치한다.

Join

  • LEFT OUTER JOIN : 왼쪽 테이블은 무조건 포함, 오른쪽은 일치하는 것만 포함
  • RIGHT OUTER JOIN : 오른쪽 테이블은 무조건 포함, 왼쪽은 일치하는 것만 포함
  • FULL OUTER JOIN : 양쪽 테이블 모두 포함, 일치하지 않아도 포함
  • CROSS JOIN : 모든 행 조합을 출력
  • NATURAL JOIN : 같은 이름을 가진 컬럼이 있으면 자동으로 조인 
  • USING : 두 테이블에 이름이 같은 컬럼이 있을 때만 사용, 중복은 제거한다. 5

 

집합 연산자

UNION 전체 합집합 (중복 제거)
UNION ALL 전체 합집합 (중복 허용)
INTERSECT 공통된 행만 반환 (교집합)
EXCEPT 첫 쿼리 - 두 번째 쿼리 (차집합)

 

서브쿼리 종류

  • 서브쿼리는 단일 행(Single Row) 또는 복수 행(Multi Row) 비교 연산자와 함께 사용할 수 있다.
  • 서브쿼리는 SELECT, FROM, HAVING, ORDER BY 등에서 사용 가능하다. 
  • 연관 서브쿼리는 서브쿼리가 메인쿼리 칼럼을 포함하고 있는 형태의 서브쿼리이다. 
  • ORDER BY 절에는 서브쿼리를 사용할 수 없다. 메인쿼리의 마지막 문장에 위치해야 한다.
  • 다중 행 서브쿼리 비교 연산자는 단일 행 서브쿼리의 비교 연산자로도 사용할 수 있다. 
  • Single Row (단일 행 서브쿼리)
    • 서브쿼리의 실행 결과가 항상 1건 이하인 서브쿼리를 의미
    • 단일 행 비교 연산자와 함께 사용단일 행 비교 연산자에는 =, <, > 등이 있다.
  • Multi Row (다중 행 서브쿼리)
    • 서브쿼리의 실행 결과가 여러 건인 서브쿼리를 의미
    • 다중 행 비교 연산자와 함께 사용하고 비교 연산자는 IN, ALL, ANY, SOME, EXISTS 있다.
  • Single Column
  • Multi Column
    • 서브쿼리와 메인쿼리에서 비교하고자 하는 칼럼 개수와 칼럼의 위치가 동일해야 한다.

그룹화

  • GROUPING SETS
      • GROUP BY는 하나의 기준만 그룹화 가능하지만 GOUPING SETS는 다양한 그룸 조합을 한번에 보고 싶을 때 사용
  • ROLLUP
  • CUBE

START WITH

  • 부모-자식 관계를 가진 데이터를 위에서 아래로 따라가며 조회할 때 사용 

CONNECT BY PRIOR 

  • 부모-자식 관계를 조회하는 문법

ORDER SIBLINGS BY 

  • 같은 부모를 가진 행들끼리만 정렬 

'DB' 카테고리의 다른 글

NoSQL VS RDBMS 무엇이 다를까?  (0) 2025.05.27
SQLD 데이터 모델링의 이해  (1) 2025.05.22
데이터 모델링(Data Model)  (0) 2025.04.30
인덱스(Index)와 쿼리 속도는 어떤 관계일까.  (0) 2025.02.14
'DB' 카테고리의 다른 글
  • NoSQL VS RDBMS 무엇이 다를까?
  • SQLD 데이터 모델링의 이해
  • 데이터 모델링(Data Model)
  • 인덱스(Index)와 쿼리 속도는 어떤 관계일까.
memoryman
memoryman
memoryman 님의 블로그 입니다.
  • memoryman
    MEMORYMAN STACK
    memoryman
  • 전체
    오늘
    어제
    • 분류 전체보기 (55)
      • Dart (11)
      • Python (2)
      • C# (1)
      • DB (5)
      • Algorithm (1)
      • Project (4)
      • IT (12)
      • .NET (7)
      • Flutter (12)
  • 블로그 메뉴

    • 프로필
    • 방명록
    • 메모장
    • 자소서
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    D
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
memoryman
SQL 기본 및 활용
상단으로

티스토리툴바