MySQL의 사용 - SELECT와 GROUP BY

김재현·2022년 7월 17일
0

Programmers

목록 보기
26/28
post-custom-banner

명령어

SELECT

  • 테이블(들)에서 레코드(들, 혹은 레코드 수)를 읽어오는데 사용.
  • WHERE을 사용해 조건을 추가해줄 수 있음.
  • SELECT 필드이름 1;

FROM

  • 데이터의 위치 표시.
  • FROM 테이블이름;

WHERE

  • 추출할 데이터의 조건.
    모든 레코드를 읽는 것이 아닌, 관심 있는 레코드만 찾아올 수 있음.
    예. 시기, 특정 페이지의 세션.
  • FROM 절 바로 뒤에 위치.
  • GROUP BY 앞에 위치해야 함.
    같이 쓸 수 있는 명령어.
    • IN : 조건에 해당하는 것들.
    • NOT IN : 해당 조건이 아닌 나머지.
    • LIKE '': 대소문자 구별 없이 문자열 매칭 기능 제공.
      WHERE channel LIKE ‘G%’ -> ‘G*’ : 알파벳 G로 시작하는 모든 채널을 탐색.
    • NOT LIKE '': ‘ ’만 안 들어가는 것 탐색.
    • BETWEEN A AND B : 조건의 A부터 B까지.
      주로 날짜, 시간 따위에 사용.
  • 위의 명령어들은 CASE WHEN에서도 사용 가능.

WHERE 과 HAVING 의 차이.

  • WHERE은 개별 행, HAVING은 전체 결과 대상으로 적용됨.
  • WHERE은 개별 행 필터링, HAVING은 그룹 전체의 필터링.
  • WHERE은 GROUP BY 전에 사용해야하며, HAVING은 후에 사용해야 함.

GROUP BY

  • 테이블의 레코드를 그룹핑하여 그룹별로 다양한 정보를 계산.
  • 두 단계로 나누어짐.
    1 그룹핑 할 필드를 결정하고 GROUP BY로 지정.
    필드는 하나 이상이 될 수 있고, 지정은 필드 이름을 사용하거나 필드 일련번호를 사용함.
    2 그룹별로 계산할 내용을 결정.
    Aggregate함수 사용 (COUNT, SUM, AVG, MIN, MAX, GROUP_CONCAT ~~~)

ORDER BY

  • 출력 시 데이터를 정렬해줌.
  • 디폴트 순서는 오름차순. (작은 값이 먼저 나옴)
    ASC - 오름차순 / DESC - 내림차순
  • 여러 필드를 사용해서 정렬하려면

    ORDER BY 1 DESC 2, 3,;

DISTINCT

  • 중복되지 않은 값을 알고 싶을 때 사용.

COUNT

  • 데이터의 개수를 셀 때 사용.
  • COUNT 함수는 인자에 따라 달라짐. NULL이 아닌 경우 1씩 카운트, NULL인 경우 카운트를 하지 않음.

    VALUE : NULL이 아닌 경우를 카운트.
    DISTINCT VALUE : NULL이 아닌 값 중 중복되지 않은 경우를 카운트.

CASE WHEN

  • 필드 값의 변환을 위해 사용.
  • 여러 조건을 사용하여 변환하는 것도 가능.

    CASE
    WHNE 조건 1 THEN (조건1이 참일 때) 값
    WHEN 조건 2 THEN (조건 2가 참일 때) 값
    ELSE (조건이 거짓일 때) 값
    END 필드 이름;

NULL

  • 값이 존재하지 않음을 나타내는 상수.
  • 0이나 " "과는 다름.
  • 필드 지정 시 값이 없는 경우 NULL로 지정 가능.
    테이블 정의 시 디폴트 값으로도 지정 가능.
  • 어떤 필드의 값이 NULL인지 아닌지 비교는 특수한 문법으로 함.
    field1 is NULL 혹은 field is NOT NULL
  • NULL이 사칙연산에 사용되면 그 결과는?
    NULL이 나옴.

타입 변환

  • DATE 관련
  • DATE, WEEK, MONTH, YEAR, HOUR, MINUTE, SECOND, QUARTER, MONTHNAME 등..
  • DATEDIFF : 두 개의 타임스탬프 사이에 얼마나 차이가 있는지 구함.
  • DATE_ADD : 날짜의 합 계산.
  • STR_TO_DATE : 타임 스탬프가 문자열이면 DATE 타입으로 변환.
  • DATE_FORMAT : 날짜를 지정 형식으로 출력.
    DATE_FORMAT(날짜, 형식)
    DATE_FORMAT 참고

Alias(AS)

  • 테이블 뒤에 붙여서 테이블 지칭명을 바꿔줌.
  • 생략 가능.
post-custom-banner

0개의 댓글