ABCD

SQL 1회독 정리장 본문

STUDY HARD/SQL STUDY

SQL 1회독 정리장

카메사마 2024. 7. 26. 00:44

🐢 데이터베이스(DB, DataBase)

    모인 테이블을 한 곳에 담아놓는 공간

 

🐢 데이터베이스와 유사한 개념들

    - 데이터웨어하우스: 회사 전반의 여러 데이터 소스들을 저장하기 위한 거대한 저장소 개념

    - 데이터마트: 데이터웨어하우스보다는 좀 더 작은 개념으로 데이터들을 특정 주제 및 조직에 따라 필요한 부분만 가공하여 모아둔 저장소

 

🐢 SQL(Structured Query Language)

    데이터와 테이블을 활용하기 위한 구조화된 질의 언어 

(SQL 문을 작성하다 == 쿼리를 입력 및 실행하다)

 

🐢 SQL 문법 종류

문법 종류 설명 명령어
데이터 정의어
DDL(Data Definition Language)
테이블 구조와 관련된 문법, 데이터를 어떤 항목들로 쌓을지 기준을 정해 구조를 수정하거나 삭제 CREATE, ALTER, DROP, RENAME
데이터 조작어
DML(Data Manipulation Language)
테이터와 관련된 문법 SELECT, INSERT, DELETE, UPDATE
데이터 제어어
DCL(Data Control Language)
테이터 제어와 관련된 문법
(사용 권한 관리)
GRANT, REVOKE
트랜잭션 제어어
TCL(Transaction Control Language)
잘못되었다고 판단되면 이전 상태로 되돌린다.
COMMIT: 발생한 작업을 저장 및 확정
ROLLBACK: 잘못되었다고 판단되어 이전 상태로 되돌림
BEGIN TRAN, COMMIT, ROLLBACK

 

🐢 SELECT문

    - SELECT절: 칼럼들의 이름

    - FROM절: 적재된 테이블의 이름

    - WHERE절: 필터링하기 위한 조건

    - GROUP BY절: 그룹화를 진행할 특정 기준

    - HAVING절: 그룹화 이후 필터링

    - ORDER BY절: 정렬할 기준

 

🐢 SELECT문의 처리 순서

    테이블 확인 --> 필터링 --> 그룹화 --> 그룹화 후 필터링 --> 내가 조회할 칼럼 확인 --> 정렬

 

🐢 SELECT절 표현식

    - ALIAS(AS) (칼럼의 별칭) --> 별명 같은 거!!

    조회될 때 별칭으로 출력된다.

 

    -  DISTINCT

    중복되는 정보를 제거한다.


    -   *

    모든 칼럼을 보여달라!

 

🐢 SQL 함수

- 문자열 함수

- 숫자 함수

ROUND: (1) 반올림하여 (2) 지정한 소수점 자리까지 출력

ceiling - 올림, floor - 내림

** MS-SQL에서만 절삭처리를 ROUND 함수로 한다. (다른 DBMS에서는 TRUNK 함수 쓰기)

- 날짜 함수

- 순위 함수

윈도우 함수: 전체 데이터를 참조해 각 행의 결괏값을 출력

PARTITION BY: 특정 범위를 기준으로 적용하겠다는 의미

ORDER BY: 특정 기준으로 정렬해 적용하겠다는 의미

DESC: 내림차순

ASC: 오름차순 (적지 않으면 기본으로 오름차)

🐢 CASE문

 

🐢 WHERE절

    - 비교연산자

    부등호

    BETWEEN

    IN: 조건과 하나라도 일치하는 행을 필터링할 때 사용

    LIKE: 값의 일부분이라도 조건과 일치하는 행을 필터링할 때 사용

        LIKE('%김')

    IS NULL: 값이 NULL 값인 행을 필터링할 때 사용

    - SQL연산자

    - 논리연산자

    AND: 여러 가지 조건을 모두 만족하는 행을 필터링 (모두 만족하는 행만)

        WHERE절에 AND연산자를 사용

    OR: 여러 조건 중에서 하나 이상의 조건을 만족하는 행 (하나라도 만족하는 행만)

    - 부정연산자

    NOT IN: 조건과 일치하지 않는 행을 필터링할 때 사용하는 연산자

    IS NOT NULL

** 각각의 처리 순서

괄호 --> 부정연산자 --> 비교연산자 --> 논리연산자AND --> 논리연산자OR

 

🐢 GROUP BY절

    데이터를 그룹화할 때 사용

    - 집계함수: 다양한 데이터 값을 한곳에 모아 계산하는 것을 의미하는 함수

    COUNT: 행의 개수 세기

        COUNT(칼럼명): 칼럼의 값 중에서 NOT NULL값의 행의 개수를 세기

        COUNT(*): 모든 행의 개수를 세기

        COUNT(DISTINCT 칼럼명): 칼럼의 값 중에서 중복 값을 제외하고 NOT NULL값의 행의 개수를 세기

    SUM: 합계를 내기

    AVG

    MIN

    MAX

    --> 집계함수는 SELECT절에 작성되며 대부분 GROUP BY절과 함께 사용된다.

 

🐢 HAVING절

    그룹화 이후 필터링 조건을 작성하는 절

    ! 반드시 GROUP BY절로 데이터가 묶인 다음 진행되어 그룹화 결과에 따라 필터링한다.

 

🐢 ORDER BY절

    특정 기준으로 데이터를 정렬하고 싶을 때 (정렬은 행에 대한 정렬을 의미한다.)

 

🐢 서브쿼리

    쿼리문에 포함된 또 다른 쿼리문을 의미

    ** 서브쿼리 분류

    SELECT절 서브쿼리

    FROM절 서브쿼리: 서브쿼리 결괏값이 하나의 테이블로 기능

    ! 하나의 임시 테이블로 사용되어 실무에서도 1차 가공한 결과물을 FROM절에서 서브쿼리로 사용하고 이를 2차로 가공해 쿼리문을 작성하는 경우가 많다.

    WHERE절 서브쿼리

 

🐢 테이블 + 테이블

    RDB(Relational Database): 관계형 데이터베이스

    ERD(Entity-Relationship Diagram): 개체 관계 모델

        Entity(엔터티): 테이블

        Relationship(관계): 테이블 관계

        Diagram(모델): 점과 선으로 구성된 테이블 간의 구조

 

🐢 JOIN

    결합

    ON절: 어떤 조건으로 결합할지에 대한 조건

    LEFT JOIN: 왼쪽을 기준으로 테이블을 결합하는 것

    RIGHT JOIN: 오른쪽을 기준으로 테이블을 결합하는 것

    OUTER JOIN: 양쪽을 기준으로 테이블을 결합하는 것

    INNER JOIN: 양쪽 공통을 기준으로 테이블을 결합하는

 

🐢 UNION

    둘 이상의 테이블을 단일 테이블로 데이터를 통합하기 위해 작성 (아래 방향으로 결합)

    UNION: 중복을 모두 제거

    UNION ALL: 중복을 제거하지 않은 채 (모두)