SQL 개발자(SQLD) 학습노트 - SQL 기본 및 활용 (3)

@JHSHIN·2023년 3월 16일
0
post-thumbnail

Part 2. SQL 기본 및 활용

Ch 1. SQL 기본


1. 데이터베이스

💡 데이터베이스는 조직이나 개인이 관리하는 데이터들의 집합이다.

각 데이터들은 구조적으로 컴퓨터 시스템에 저장되어, 검색, 추가, 수정 및 삭제 등의 기능을 제공한다. 또한 동시에 다수의 사용자가 데이터에 접근하고 동시에 변경할 수 있는 방법을 제공한다.

2. 관계형 데이터베이스(RDB)

💡 관계형 데이터 모델에 기초를 둔, 테이블로 구성된 데이터베이스이다.

RDBMS는 이러한 RDB를 관리, 감독하기 위한 시스템이며, Oracle, SQL Server, MySQL, MariaDB, PostgreSQL등이 있다.

3. TABLE

관계형 데이터베이스는 모든 데이터를 2차원 테이블 형태로 표현한다.

세로 열을 컬럼(Column)이라고 하고, 가로 행을 로우(Row)라고 한다. 테이블은 관계형 데이터베이스의 기본 단위이고, 데이터베이스는 여러 개의 테이블로 구성된다.

4. SQL(Structured Query Language)

💡 SQL은 관계형 데이터베이스에서 데이터를 다루기 위해 사용하는 언어이다.

  • SELECT 문
    • 저장되어 있는 데이터(Row)를 조회할 때 사용하는 명령어
  • 산술 연산자
    • (), *, /, +, - : 사칙연산 기능을 가진 연산자, NUMBER나 DATE유형의 데이터와 사용함
  • 합성 연산자
    • || : 문자와 문자를 연결할 때 사용하는 연산자
  • 함수
    • CHR, LOWER, UPPER, LTRIM, RTRIM, TRIM, SUBSTR, LENGTH 등
    • 명시적 형변환 vs 암시적 형변환
      • 명시적 형변환 : TO_NUMBER나 TO_CHAR처럼 형변환 함수를 사용하여 데이터 유형을 변환
      • 암시적 형변환 : 데이터베이스가 내부적으로 데이터 유형을 변환
  • WHERE 절
    • INSERT를 제외한 DML문을 수행할 때 조건을 추가할 수 있는 구문
  • GROUP BY, HAVING 절
    • GROUP BY : 데이터를 그룹별로 묶을 수 있게 해주는 절, GROUP BY 뒤에는 컬럼이 온다.
    • HAVING : WHERE 절처럼 사용하는 조건절, 데이터를 그룹핑한 후 특정 그룹을 고를 때 사용
  • ORDER BY 절
    • SELECT한 데이터를 정렬할 때 이용, 여러 컬럼이 올 수 있다. ASC(오름차순, 기본값)와 DESC(내림차순) 옵션이 있다.
  • JOIN : 각기 다른 테이블을 한 번에 보여줄 때 사용
    • EQUI JOIN : Equal(=) 조건으로 JOIN하는 것
    • Non EQUI JOIN : Equal(=) 조건이 아닌 다른 조건으로 JOIN하는 것
    • OUTER JOIN : JOIN 조건에 만족하지 않는 행도 출력되는 방식
    • INNER JOIN : JOIN 조건에 충족하는 데이터만 출력되는 방식

Ch 2. SQL 활용

1. 서브쿼리

💡 하나의 쿼리 안에 존재하는 또 다른 쿼리

서브쿼리는 위치에 따라 나눠진다.

  • 스칼라 서브쿼리 - 주로 SELECT 절에 위치, 컬럼이 올 수 있는 대부분 위치에 사용 가능
  • 인라인 뷰 - 주로 FROM 절에 위치, 테이블명이 올 수 있는 위치에 사용 가능
  • 중첩 서브쿼리 - WHERE, HAVING 절에 사용, 메인 쿼리와의 관계에 따라 나눠짐
    • 비연관 서브쿼리 : 서브쿼리 내에 메인 쿼리의 컬럼 없음
    • 연관 서브쿼리 : 서브쿼리 내에 메인 쿼리의 컬럼 존재
    • 반환하는 데이터 형태에 따라 단일 행 서브쿼리, 다중 행 서브쿼리, 다중 컬럼 서브쿼리로 나눠짐
      • 단일 행 서브쿼리 : 1건 이하의 행만 반환
      • 다중 행 서브쿼리 : 2건 이상의 행을 반환
      • 다중 컬럼 서브쿼리 : 여러 컬럼의 데이터를 반환

2. 뷰

💡 특정 SELECT 문에 이름을 붙여 재사용이 가능하도록 저장해놓은 가상 테이블

뷰는 가상테이블로서 실제 데이터를 저장하지는 않고, 데이터를 조회해오는 SELECT 문만 가지고 있다.

3. 집합 연산자

💡 각 쿼리의 결과 집합으로 연산하는 명령어

  • UNION ALL : 중복된 행을 그대로 출력하는 합집합
  • UNION : 중복된 행은 한 번만 출력하는 합집합
  • INTERSECT : 중복된 행은 한 번만 출력하는 교집합
  • MINUS/EXCEPT : 중복된 행은 한 번만 출력하는 차집합
profile
We Need Better UX

0개의 댓글