SQL

신예환·2023년 2월 24일
0
post-thumbnail

Overview

Data language

  • DB를 정의, 조작, 제어 하기 위해 사용
  • DDL(스키마 정의)
    • create table, alter table, drop table
    • create view, drop view
      • virtual table -> 실제로 있는 것은 아니다. 허용가능한 가상 테이블, 보안성과 접근성
    • create index, drop index
      • storage 공간 고려해서 신중하게 결정, index tuning
  • DML(검색, 삽입, 삭제 갱신)
    • select from where
    • insert into
    • delete from
    • update set
  • DCL(회복, 병행제어, 무결성, 보안관리)
    • DBA, 응용프로그래머가 사용
    • 보안, 권한 부여 grant to, revoke from
    • 동시성 제어, lock, unlock(explicit lock, implicit lock -> DEAD LOCK)
    • 회복 commit, rollback

SQL

  • Structured Query Language
  • XML, object-oriented concepts
  • data sublanguage
  • GROUP_BY 로 묶은다음 GROUP_CONCAT 사용한다. HAVING
  • UNION ALL
  • LEFT JOIN
    • 벤다이어그램으로 이해
  • DISTINCT
    • 중복제거, Sorting -> 오히려 시간이 더 걸린다
  • WHERE 조건에서 문자일 때는 ' ' 써주는 것 잊지 말기!
    • AND, OR
    • WHERE BUYER IN (' ', ' ', ' ');
    • WHERE BUYER NOT IN (' ', ' ', ' ');
    • WHERE ExtendedPrice BETWEEN 100 AND 200;
    • WHERE ExtendedPrice >= 100 AND ExtendedPrice <= 200;
    • LIKE and Wildcards
      • _ = Exactly one character
      • % = Any set of zero or more characters
      • ? = Exactly one character
        • = Any set of zero or more characters
    • select * from SKU_DATA where Buyer LIKE 'Pete%';
    • select * from SKU_DATA where SKU_Description LIKE '%Tent%';
    • WHERE SKU LIKE '%2__';
      • 끝에서 3번째가 '2'로 나와야한다.
      • SKU : 100200, 101200
  • TRIM("문자열")
    • 문자열의 양쪽 공백을 제거한다.
  • RTRIM("문자열", '옵션')
    • 문자열의 오른쪽(우측) 공백 제거, 문자 왼쪽 반복적인 문자를 제거를 한다.
  • LTRIM("문자열", '옵션')
    • 문자열의 왼쪽(좌측) 공백 제거, 문자 왼쪽 반복적인 문자를 제거를 한다.
      -> 제거할 문자가 동일하다면 옵션의 문자 개수는 무관하다!
  • ORDER BY OrderNumber, Price;
    • 순서대로 1차, 2차
    • ORDER BY Price DESC, OrderNumber ASC ;
  • COUNT(), SUM(), AVG(), MIN(), MAX()

Examples

  • SELECT COUNT(DISTINCT Department) AS DeptCount
    FROM SKU_DATA;
  • SELECT Quantity * Price AS EP, ExtendedPrice
    FROM OREDER_ITEM;
  • SELECT DISTINCT RTRIM (Buyer) + ' in ' + RTRIM(Department) AS Sponsor
    From SKU_DATA;
    • RTRIM : 오른쪽 문자열 제거
  • 읽는 순서
    4.SELECT
    1.FROM
    2.[WHERE]
    3.[GROUP BY [HAVING]
    5.[ORDER BY]

Querying Multiple Tables : Subqueries, Joins

  • Subquries -> 최종 SELECT 조건이 하나의 테이블에서 나와야한다.
  • Joins
    • FROM절에 두개 이상의 테이블이 나올 때, 반드시 join 조건이 들어가야함.
    • 알고 싶은 column이, 테이블이 2개 이상이다.
    • 최종 select 조건이 여러 테이블에서 나와도 된다.

Subqueries vs Joins

  • 둘다 process multiple tables
  • A subquery can only be used to retrieve data from the top table
  • correlated subquery (join으로 표현 하기 어려운 내용 kroenke7장)

Cape Codd Retail Sales Structure

  • 운영 DB + 분석 DB

INDEX

  • 성능향상, 사용방법을 알아야함

profile
더디가도 함께가자

0개의 댓글