MYSQL - SELECT문 관련 정리

DataBase

Posted by kwon on 2020-05-21

MYSQL - SELECT 문 정리

  • 모든 컬럼 조회
    1
    SELECT * FROM 테이블;
  • 특정 컬럼 조회
    1
    SELECT 컬럼1, 컬럼2 FROM 테이블;
  • 중복 제외 조회
    1
    SELECT DISTINCT 컬럼1, 컬럼2 FROM 테이블;

정렬 (ORDER BY)

  • 오름차순 정렬 조회

    1
    SELECT * FROM 테이블 ORDER BY 컬럼1 ASC(생략가능);
  • 내림차순 정렬 조회

    1
    SELECT * FROM 테이블 ORDER BY 컬럼1 DESC;

조건 (WHERE)

  • 조건에 맞는 행 조회

    1
    SELECT 컬럼 FROM 테이블 WHERE 조건;
  • 조건 중 하나라도 만족하는 행 조회

    1
    2
    SELECT * FROM 테이블 WHERE 조건1 OR 조건2;
    SELECT * FROM 테이블 WHERE 컬럼 IN (조건1, 조건2, ..);

개수 구하기 (COUNT)

  • 전체 행 개수 조회

    1
    SELECT COUNT (*) FROM 테이블;
  • 중복을 제외하고 카운트

    1
    SELECT COUNT (DISTINCT 컬럼1) FROM 테이블;

특정 문자 포함 검색 (LIKE)

  • 특정 문자로 시작하는 데이터 검색

    1
    SELECT 컬럼1 FROM 테이블 WHERE 컬럼1 LIKE "%특정문자열";
  • 특정 문자로 끝나는 데이터 검색

    1
    SELECT 컬럼1 FROM 테이블 WHERE 컬럼1 LIKE "특정문자열%";
  • 특정 문자 포함 데이터 검색

    1
    SELECT 컬럼1 FROM 테이블 WHERE 컬럼1 LIKE "%특정문자열%";

그룹화하기 (GROUP BY)

  • 컬럼 그룹화하기

    1
    SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼;
  • 조건 후에 그룹화

    1
    SELECT 컬럼 FROM 테이블 WHERE 조건식 GROUP BY 그룹화할 컬럼;
  • 그룹화 후에 조건

    1
    SELECT 컬럼 FROM 테이블 GROUP BY 그룹화할 컬럼 HAVING 조건식;

NULL 값 체크

  • NULL 인 것을 검색

    1
    2
    SELECT 컬럼 FROM 테이블 WHERE 컬럼 IS NULL;
    SELECT 컬럼 FROM 테이블 WHERE 컬럼 <=> NULL;
  • NULL 이 아닌 것을 검색

    1
    SELECT 컬럼 FROM 테이블 WHERE 컬럼 IS NOT NULL;

조건문 사용

  • IF 문

    1
    2
    3
    SELECT 컬럼, IF(조건식, 참일 때 값, 거짓일 때 값) FROM 테이블;
    // ex) name컬럼이 null 값인 경우 No name 이란 문자열 출력
    SELECT name, IF(NAME IS NULL, "No name", name) FROM 테이블;
  • CASE 문

    1
    2
    SELECT CASE WHEN 값 또는 조건식1 THEN '표시값' WHEN 값 또는 조건식2 THEN '표시값2' END FROM 테이블;
    SELECT CASE WHEN 값 또는 조건식1 THEN '표시값' WHEN 값 또는 조건식2 THEN '표시값2' ELSE '표시값3' END FROM 테이블;
  • IFNULL 문 : 컬럼의 값이 NULL 이면 표시값 출력, NULL 이 아니라면 컬럼의 값 출력

    1
    SELECT IFNULL(컬럼, '표시값') FROM 테이블;

날짜 데이터 일부 추출

  • YEAR() : 연도 추출
  • MONTH() : 월 추출
  • DAY() : 일 추출 (DAYOFMONTH와 같은 함수)
  • HOUR() : 시 추출
  • MINUTE() : 분 추출
  • SECOND() : 초 추출

날짜 형식 설정 - DATE_FORMAT

  • 현재 날짜 표시
    1
    SELECT DATE_FORMAT(NOW(),'%Y-%m-%d') FROM 테이블;
  • %Y : 4자리 년도
  • %y : 2자리 년도
  • %M : 긴 월 (영문)
  • %b : 짧은 월 (영문)
  • %m : 숫자 월 (두 자리)
  • %d : 일자 (두 자리)
  • %W : 긴 요일 이름 (영문)
  • %a : 짧은 요일 이름 (영문)
  • %i : 분
  • %S : 초
  • %T : hh:mm:SS
  • %r : hh:mm:ss AM,PM
  • %e : 일자 (한 자리는 한 자리로)
  • %c : 숫자 월 (한 자리는 한 자리로)
  • %H : 시간 (24시간)

참조
https://devjhs.tistory.com/89
https://doorbw.tistory.com/22
https://extbrain.tistory.com/51