데이터분석

11. SQL 과 RDB

장수우 2023. 12. 4. 18:49
학습주제
  • SQL과 RDB란 무엇인가
  • 데이터 조회 : SELECT, FROM, WHERE
  • 비교 연산자와 논리 연산자
  • 정렬과 집계
  • 기초 SQL 함수
  • DDL, DML
주요 메모 사항 소개

큰 틀입니다.

  • SQL을 사용하면 좋은 점 입니다.
    1. 원하는 형태로 데이터를 가져올 수 있다.
    2. 효율적으로 데이터를 가져올 수 있다.
    3. 간단한 데이터 분석을 수행할 수 있다.
  • RDBMS / SQL 개요입니다.

  • SQL (Structured Query Language) : 관계형 데이터베이스를 사용하기 위한 표준언어
  • 쿼리 : 기초 구문
  • Atomicity (원자성) : 전부 반영되거나 아무것도 반영되지 않아야 한다.
  • Consistency (일관성) : 입력 값의 commit 전 후가 동일해야한다.
  • Isolation (격리성) : 하나의 트랜잭션이 다른 트랜잭션을 방해할 수 없다.
  • Durability (지속성) : commit 된 데이터는 H/W 결함이 발생하거나, DB가 죽더라도 보존되어야 한다.

  • 실습환경 ( https://sqlfiddle.com/)에 접속하시면 웹으로 Database를 사용할 수 있습니다.
  • SQL 문의 실행순서
    FROM → WHERE  → GROUP BY → HAVING  → SELECT  → ORDER BY
  • FROM
    - 테이블 명(어디에서)
  • WHERE
    - 행 (어떤 조건에서)
    - 비교, 조건 연산자를 사용할 수 있다. (항상 참인 조건)
    - 그룹화 하기전 필터링
  • LIMIT(TOP, ROWNUM)
    - 상위 행 필터링
    - ex)LIMIT 2 = 상위 2개 행만 필터링
  • AS
    - 기존 테이블에 이름을 재정의
       ex) SELECT name AS name_v2
    - 기존 테이블에 새로운 문자열을 정의
       ex) SELECT name AS name_v2, 'programmers' as new_col1
  • 비교연산자
    - =, >, <, >=, <=, <> (같지 않음), !=
  • 논리연산자
    • AND, OR
    • NOT : 참 거짓을 뒤집는 연산자
        ex) AND NOT category = '키즈'  : '키즈'가 아닌 다른 카테고리 행
    • IN : 괄호안의 값을 참으로 반환
        ex) AND category IN ('스포츠', '디지털', '식품') : '스포츠', '디지털', '식품' 에 포함된 category 반환
    • NOT IN
    • LIKE : 문자열 필터링시 사용 ※ '_ ': 한개의 문자열, '%' : 모든 문자열
        ex) AND name LIKE '%보호%' : 보호가 포함된 데이터 반환
    • BETWEEN : 양쪽 끝값을 포함해 데이터 반환
        ex) AND purchase_date between '20231001' and '20231003'
    • IS NULL : NULL 값 출력
        ex) AND purchase_date Is NULL 
  • 정렬
    - ORDER BY : 정렬하고자 하는 칼럼으로 정렬(반환 순서)
      ※ ASC : 오름차순, DESC : 내림차순, 입력안할 시 자동으로 ASC
      ex) ORDER BY column DESC, column2 (ASC)  

  • 전체집계
    • count(*) : Null 값 포함하여 계산
    • count(column_name) : Null값 제외하고 계산
    • distinct : 중복제거한 유니크 값
    • GROUP BY : column 별로 그룹지어서 반환
      ex) GROUP BY 1, 2 : 여기서 1, 2는 SELECT절의 순서와 동일
    • HAVING : 그룹화 이후 필터링
  • 기초 SQL 함수
    • CONCAT
      - 여러 컬럼의 문자열 값을 하나의 컬럼으로 합치는 함수
      - 문자열 없이 공백도 가능 ( 이어줄 문자에 space)
      ex) CONCAT (column1, '이어줄 문자', column2) 
    • SUBSTRING
      - 문자열을 잘라서 부분반환
      ex) (column1, 시작위치, 위치부터 자를갯수) : 
    • LEFT, RIGHT
      - 맨 왼쪽, 오른쪽부터 갯수출력하여 출력
        ex) left(column_name, 2)
    • UPPER, LOWER
      - 대문자, 소문자로 변환하여 출력
      ex) UPPER('John')
    • CHAR_LENGTH
      - 문자열 길이 반환함수
      ex) SELECT CHAR_LENGTH(column_name)
    • ROUND
      - 반올림
      ex) ROUND(avg(price))
    • CELI, FLOOR, TRUNCATE
      -올림, 내림, 특정 자릿수 이하 잘라서 버림
    • ABS
      - 절댓값
      ex) ABS(-1.0)
    • MOD
      - 나머지를 구하는 함수, 특정숫자 배수 검색시 사용
      ex) MOD(pirce, product_id)
    • POW
      - 두 인자를 받아 x의 y제곱을 구함
    • GREATEST
      - 함수안의 인자들 중 최댓값
    • LEAST
      - 함수안의 인자들 중 최솟값
    • COALESCE
      - 칼럼안의 Null 값을 채우기 위해 사용

  • DDL (Data Definition Language) : 데이터베이스 구조를 정의하고 관리
    1. CREATE : 테이블 / 뷰 / 인덱스 생성
    2. ALTER : 테이블 / 뷰/ 인덱스 구조 변경
    3. DROP : 테이블 / 뷰/ 인덱스 삭제
  • DML (Data Manipulation Language) : 데이터를 쿼리하거나 조작
    1. SELECT : 질의
    2. INSERT : 삽입
    3. UPDATE : 수정
    4. DELETE : 삭제
  • CHAR / VARCHAR
    - 문자열을 정의, 스토리지를 얼마나 사용하는지 정의
    - CHAR ( ) : 고정된 문자열이다, 짧은 문자열도 뒤에 space로 채워준다.
    - VARCHAR ( ) : 데이터에 따라 차지하는 크기가 다르다.

 

공부하면서 어려웠던 내용
  • 막상 써보니 생각보다 어려웠다 SELECT, FROM ,WHERE을 기본으로 쓰고 WHERE 절에 AND를 붙혀 어려가지 구문을 사용해 봐야겠다 생각이 들었다.
반응형

'데이터분석' 카테고리의 다른 글

13. 데이터 타입  (1) 2023.12.06
12. SQL문  (1) 2023.12.05
10. 결측치란?  (0) 2023.12.01
9. 캐글 시작  (1) 2023.11.30
8. 엑셀(구글 시트) 기본 수식 사용  (0) 2023.11.29