자청의 유튜브 추출기

유튜브 영상의 자막과 AI요약을 추출해보세요

AI 채팅

BETA

2시간 만에 합격! SQLD 핵심 요약으로 시험 완벽 대비하기

게시일: 작성자: 자청의 유튜브 추출기

SQL 핵심 정리 (중학생 눈높이)

1. 관계형 데이터베이스? 집합이랑 비슷해!

  • 우리가 쓰는 오라클, MySQL 같은 데이터베이스는 '관계형 데이터베이스'라고 해.
  • 이건 수학의 '집합'이랑 비슷해서, 합집합, 교집합, 차집합 같은 개념을 써.
  • 데이터베이스에서는 이걸 '조인'이라는 걸로 구현해서 쓸 수 있어.
  • 셀렉트(SELECT) 문은 원하는 데이터만 골라오는 건데,
    • 행(Row)만 골라오는 걸 '선택 연산'
    • 속성(Column)만 골라오는 걸 '투영 연산'이라고 불러.

2. SQL 명령어 종류 (중요!)

SQL 명령어는 크게 4가지로 나눌 수 있어.

  • DDL (Data Definition Language): 데이터베이스의 '그릇' 자체를 만들거나, 모양을 바꾸거나, 없애는 명령어.
    • CREATE (만들기), DROP (없애기), ALTER (수정하기), TRUNCATE (안에 데이터만 싹 비우기)
  • DML (Data Manipulation Language): 그릇 안에 있는 '음식' (데이터)을 추가하거나, 빼거나, 수정하는 명령어.
    • SELECT (조회), INSERT (추가), UPDATE (수정), DELETE (삭제)
  • DCL (Data Control Language): 누가 데이터베이스를 쓸 수 있는지, 어떤 권한을 줄지 관리하는 명령어.
    • GRANT (권한 주기), REVOKE (권한 뺏기)
  • TCL (Transaction Control Language): 데이터베이스에 명령을 내리는 행위 자체를 제어하는 명령어.
    • COMMIT (저장), ROLLBACK (되돌리기), SAVEPOINT (임시 저장)

3. 트랜잭션 특징 (시험에 잘 나옴!)

트랜잭션은 여러 작업을 하나로 묶어서 처리하는 건데, 이런 특징이 있어.

  • 원자성 (Atomicity): 모든 작업을 하거나, 아예 안 하거나 둘 중 하나만 해야 해. 중간에 멈추면 안 돼.
  • 일관성 (Consistency): 데이터베이스 상태가 항상 일관성을 유지해야 해.
  • 고립성 (Isolation): 여러 트랜잭션이 동시에 실행될 때 서로 방해하면 안 돼.
  • 영속성 (Durability): 한번 완료된 트랜잭션은 데이터베이스에 영원히 저장되어야 해.

4. SQL 실행 순서

SQL 문은 이렇게 4단계를 거쳐서 실행돼.

  1. 파싱 (Parsing): 문법이 맞는지 확인하는 단계. 틀리면 에러가 나.
  2. 실행 계획 (Execution Plan): 어떻게 데이터를 가져올지 계획을 세워.
  3. 실행 (Execution): 계획대로 데이터를 가져와.
  4. 인출 (Fetch): 가져온 데이터를 우리한테 보여줘.

5. SELECT 문 제대로 쓰기

  • SELECT * FROM 테이블명; : 테이블에 있는 모든 컬럼(속성)을 다 보여줘.
  • SELECT 컬럼1, 컬럼2 FROM 테이블명; : 원하는 컬럼만 골라서 보여줘.
  • SELECT ... FROM 테이블명 WHERE 조건; : 특정 조건을 만족하는 데이터만 보여줘.
    • = (같다), != 또는 <> (다르다), > (크다), < (작다), >= (크거나 같다), <= (작거나 같다)
    • LIKE : 특정 문자가 포함된 걸 찾을 때 써. %는 아무 문자나 올 수 있다는 뜻.
    • IN : 여러 값 중에 하나라도 같으면 보여줘.
    • BETWEEN A AND B : A와 B 사이의 값을 보여줘.
    • IS NULL / IS NOT NULL : 값이 비어있는지 아닌지 확인할 때 써.
  • ORDER BY 컬럼명 [ASC|DESC]; : 결과를 특정 컬럼 기준으로 정렬해줘.
    • ASC (오름차순, 기본값), DESC (내림차순)
    • ORDER BY는 자원을 많이 사용하니까 주의해야 해.
  • DISTINCT : 중복된 값을 제거하고 유일한 값만 보여줘.
  • AS (Alias) : 컬럼 이름이나 테이블 이름을 잠시 다른 이름으로 바꿔서 쓸 수 있어. (생략 가능)

6. 함수 활용하기

  • 문자 함수:
    • LOWER(), UPPER() : 소문자, 대문자로 바꿔줘.
    • LENGTH() : 글자 수를 세줘.
    • SUBSTRING() : 글자의 일부만 가져와.
    • INSTR() : 특정 문자가 몇 번째에 있는지 찾아줘.
    • LPAD(), RPAD() : 글자 앞이나 뒤에 특정 문자를 채워서 길이를 맞춰줘.
    • TRIM(), LTRIM(), RTRIM() : 앞뒤 공백을 없애줘.
    • REPLACE() : 특정 글자를 다른 글자로 바꿔줘.
  • 숫자 함수:
    • ROUND() : 반올림해줘.
    • TRUNC() : 버림해줘.
    • CEIL() : 올림해줘.
    • FLOOR() : 내림해줘.
    • POWER() : 제곱해줘.
  • 날짜 함수:
    • SYSDATE : 오늘 날짜와 시간을 보여줘.
    • ADD_MONTHS() : 몇 개월 뒤 날짜를 계산해줘.
    • NEXT_DAY() : 다음 특정 요일 날짜를 계산해줘.
    • 날짜에 숫자 더하기/빼기는 날짜 계산을 해줘. (예: SYSDATE + 1은 내일 날짜)
  • NULL 처리:
    • NVL(컬럼, 대체값) : 컬럼 값이 NULL이면 대체값으로 바꿔줘.
    • NVL2(컬럼, NULL아닐때값, NULL일때값) : NULL일 때와 아닐 때 다른 값을 보여줘.

7. 그룹화와 집계 (GROUP BY, HAVING)

  • GROUP BY: 특정 컬럼을 기준으로 데이터를 묶어줘.
    • COUNT() (개수 세기), SUM() (합계 구하기), AVG() (평균 구하기), MAX() (최대값 구하기), MIN() (최소값 구하기) 같은 '집계 함수'와 함께 써.
  • HAVING: GROUP BY로 묶은 결과에 조건을 걸 때 사용해. (WHERE는 묶기 전에, HAVING은 묶은 후에!)

8. 조인 (JOIN)

여러 테이블의 데이터를 합쳐서 보여줄 때 써.

  • CROSS JOIN: 두 테이블의 모든 데이터를 짝지어서 보여줘. (데이터가 엄청 많아질 수 있어!)
  • INNER JOIN: 두 테이블에서 같은 값을 가진 데이터끼리만 합쳐줘. (가장 많이 써!)
  • OUTER JOIN: 한쪽 테이블의 모든 데이터를 보여주고, 다른 테이블에서는 같은 값이 있으면 보여주고, 없으면 NULL로 채워줘.
    • LEFT OUTER JOIN (왼쪽 테이블 기준), RIGHT OUTER JOIN (오른쪽 테이블 기준), FULL OUTER JOIN (양쪽 다 기준)
    • 오라클에서는 (+) 기호를 사용하기도 해.
  • NATURAL JOIN: 두 테이블에서 이름이 같은 컬럼끼리 자동으로 조인해줘. (거의 안 써!)
  • JOIN 조건:
    • ON: 어떤 컬럼을 기준으로 조인할지 명확하게 지정해줘.
    • USING: 두 테이블에 같은 이름의 컬럼이 있을 때 사용해.

9. 서브쿼리 (Subquery)

하나의 SQL 문 안에 또 다른 SQL 문을 넣는 거야.

  • 단일행 서브쿼리: 결과가 한 행만 나와.
  • 다중행 서브쿼리: 결과가 여러 행이 나올 수 있어.
  • 스칼라 서브쿼리: SELECT 절에 들어가서 컬럼처럼 사용돼. (성능에 안 좋아!)
  • 인라인 뷰: FROM 절에 들어가서 임시 테이블처럼 사용돼.

10. 계층형 SQL (Hierarchical Query)

부모-자식 관계처럼 계층 구조로 데이터를 보여줄 때 써.

  • START WITH: 시작점을 지정해줘.
  • CONNECT BY PRIOR: 부모-자식 관계를 어떻게 따라갈지 지정해줘.
  • LEVEL: 계층의 깊이를 나타내줘.

11. 윈도우 함수 (Window Function)

GROUP BY처럼 데이터를 묶지 않고, 특정 범위의 데이터를 보면서 계산할 때 써.

  • ROW_NUMBER(), RANK(), DENSE_RANK() : 순위를 매겨줘.
  • SUM() OVER (ORDER BY ...) : 순차적으로 더해줘.

12. SQL 최적화

  • 옵티마이저: SQL 문을 가장 효율적으로 실행할 방법을 찾아주는 프로그램이야.
  • 인덱스: 데이터를 빠르게 찾기 위해 사용하는 거야. (책의 목차 같은 거지!)

이 내용들을 잘 기억하고, 직접 실습해보면 SQL 시험은 충분히 잘 볼 수 있을 거야! 파이팅!

최근 검색 기록