교육 (Today I Learned)/Hanaro

[Hanaro] 43일차 / SQL (SELECT문, 연산자)

Bay Im 2024. 3. 22. 11:20

SQL로 데이터베이스 다루기

01 RDBMS 이해

  • 데이터 (Data)
    • 관찰, 측정, 연구, 분석 등을 통하여 수집된 정보
  • 데이터의 형태
    • 정형 데이터 (Structured Data)
      • 미리 정해진 형식과 구조에 따라 저장된 데이터
      • 데이터 검색, 삽입, 수정, 삭제 연산 손쉽게 가능
      • 주로 정형화된 업무나 서비스에 사용
      • 엑셀의 스프레드 시트, 관계형 데이터베이스 테이블
    • 반정형 데이터 (Semi-Structured Data)
      • 구조화되어 있지 않아 연산 불가
      • 데이터 내부의 데이터 구조에 대한 메타 정보를 함께 제공하는 파일 형식의 데이터
      • HTML, XML, JSON, 웹 로그, 센서 데이터 등
    • 비정형 데이터 (Unstructured Data)
      • 정해진 구조나 규칙이 없고 연산에 사용할 수 없는 형태의 데이터
      • 소셜 데이터, 워드, PDF, 이미지, 영상 등
  • 데이터베이스 (Database)
    • 여러 사람이 공유 및 운영할 수 있는 통합적인 정보의 집합
    • 컴퓨터 시스템에 전자적으로 저장되는 구조화된 데이터 모음
    • DBMS에 의해 관리된다.
  • DBMS
    • Database Management System으로 사용자 또는 응용 프로그램이 데이터베이스에 접근할 수 있는 인터페이스
  • 데이터베이스 유형
    • 관계형 데이터베이스
      • 행과 열이 있는 테이블 집합으로 구성되며 가장 효율적이고 유연한 방법 제공
    • 객체 지향 데이터베이스
      • 객체 지향 프로그래밍부터 영향을 받아 생성된 데이터베이스로 정보를 객체의 형태로 표현
    • 분산 데이터베이스
      • 물리적으로 떨어진 데이터베이스를 네트워크로 연결하여 단일 데이터베이스 이미지를 보여준다.
    • 데이터 웨어하우스
      • 다양한 정보를 집계하고 저장하는 시스템으로 최종 사용자의 의사결정 도움
    • NoSQL 데이터베이스
      • 관계형 의외의 형식으로 대량의 분산된 데이터 저장 및 조회
    • 클라우드 데이터베이스
      • 클라우드 플랫폼을 통해 구축 및 접근할 수 있는 데이터베이스
    • 자율 운영 데이터베이스
      • 클라우드를 기반으로 머신러닝을 사용하여 자동화된 데이터베이스
  • 테이블
    • 릴레이션(Relation)이라고도 한다.
    • 동일한 주제의 데이터 집합
    • 데이터베이스 내에서 유일한 이름을 가져야 한다.
  • 열 (Column)
    • 속성(Attribute), 필드(Filed)라고도 한다.
    • 더 이상 분리되지 않는 최소의 데이터 단위
    • 한 테이블 내에서 유일한 이름을 가져야 한다.
    • 각 열마다 자신만의 데이터 타입을 가진다.
  • 행 (Row)
    • 튜플(Tuple), 레코드(Record)라고도 한다.
    • 관련 있는 열의 묶음
  • 관계 (Relationship)
    • 두 테이블 간의 서로 연결되는 방식
    • 데이터의 종속성을 표현한다.
  • 기본키 (Primary Key)
    • 주 식별자
    • 한 테이블 내에서 행을 구별할 수 있는 열 또는 열의 묶음
  • SQL문 종류
    • 데이터 정의어(DDL)
      • CREATE
      • ALTER
      • DROP
        • 테이블 삭제
      • TRUNCATE
        • 테이블에 있는 데이터만 모두 삭제
    • 데이터 조작어(DML)
      • SELECT
      • INSERT
      • UPDATE
      • DELETE
    • 데이터 제어어(DCL)
      • GRANT
        • 권한 부여
      • REBOKE
        • 권한 철회
    • 트랜잭션 제어어(TC)
      • COMMIT
        • 작업 내용 영구 저장
      • ROLLBACK
        • 변경 사항 취소

 

02 SELECT문과 연산자 이해 및 실습

  • 기본 SELECT 문
    • SELECT 컬럼명 [AS 별칭]
      FROM 테이블명
      [WHERE 조건문]
      [ORDER BY 컬럼 ASC|DESC]
      [LIMIT n];
  • ORDER BY
    • 레코드 정렬
    • 오름차순(ASC), 내림차순(DESC) 정렬 가능
  • LIMIT n
    • 반환되는 레코드의 개수 지정 (1~n개)
    • 상위 또는 하위 n개의 레코드 조회 가능
  • DISTINCT
    • 중복 데이터 제거
    • SELECT 줄 위치에 작성 (SELECT DISTINCT 컬럼명)
  • 산술 연산자
    • +, -, *, /, %
    • DIV 연산자
      • 나누기에서 정수 결과를 얻을 때 사용
    • % 또는 MOD 연산자
      • 나머지 구하기
  • 비교 연산자
    • 0(True), 1(False)로 값 반환
    • ≥, ≤, >, <, =
    • !=, <>
      • 같지 않다
  • 논리 연산자
    • AND, OR, NOT
    • 논리 연산자를 교집합, 합집합, 여집합으로 대응 가능
  • 집합 연산자
    • UNION
      • 합집합 연산자
    • UNION ALL
      • 중복된 레코드까지 모두 출력하는 합집합 연산자
    • UNION 사용 시 각 SELECT문의 컬럼 수는 동일해야 하고, 같은 위치에 존재하는 컬럼의 데이터 타입이 동일하거나 상호 호환이 가능해야 한다.
  • NULL 연산자
    • IS NULL
      • NULL 값인지 True/False로 반환
  • IN, BETWEEN 연산자
    • IN
      • 동일한 컬럼에 대해서 OR을 수행할 경우 사용
      • IN (’값1’, ‘값2’, …) 형태
        • 예시
          • SELECT 고객번호, 담당자명, 담당자직위
            FROM 고객
            WHERE 담당자직위 IN ('영업 과장', '마케팅 과장');
    • BETWEEN
      • 동일한 컬럼에 대해서 ~이상 ~이하의 조건이 있는 경우 사용
      • BETWEEN 값1 AND 값2 형태
        • 예시
          • SELECT 담당자명, 마일리지
            FROM 고객
            WHERE 마일리지 BETWEEN 100000 AND 200000;
  • LIKE 연산자
    • 특정 문자열이 지정된 패턴과 일치하는지 확인
    • 와일드카드 문자(%, _)를 사용하여 확인
      • %: 0개 이상의 문자를 가진 문자열 포함
      • _: 정확히 한 개의 문자열 포함
    • 컬렴명 LIKE ‘%찾을문자%’ 의 형태
  • 조건의 우선순위
    • WHERE 절에서 조건의 우선 순위를 지정할 떄 소괄호를 사용한다.