SQL문 정리

HyeonWoo·2021년 3월 11일
0

데이터베이스

목록 보기
7/7
post-thumbnail

SQL문의 실행 순서

FROM절 -> WHERE절 -> GROUP BY절 -> HAVING절 -> SELECT절 -> ORDER BY절


LIMIT

테이블 데이터 조회 시 한계를 지정할 수 있음.

EX)

SELECT A,B,C FROM TABLE_A LIMIT 10

--테이블에서 상위 10개의 데이터만 가져온다

EX)

SELECT A,B,C FROM TABLE_A LIMIT 10,10
--테이블의 11행부터 20행까지의 데이터를 가져온다 (시작행, 시작행으로부터 N개)

DISTINCT

중복을 제거하고자 하는 열 바로 옆에다가 붙혀줌

EX)

DISTINCT COUNT(NAME)    --X
COUNT(DISTINCT NAME)    --O
  • 컬럼 범주 조회
SELECT DISTINCT 컬럼 FROM 테이블
  • 조건 처리 후에 컬럼 범주 조회
SELECT DISTINCT 컬럼 FROM 테이블 WHERE 조건식;
  • 컬럼 범주 개수 조회
SELECT COUNT(DISTINCT 컬럼) FROM 테이블;

LIKE

LIKE '데이터%'  --데이터로 시작하는 문자열
LIKE '%데이터'  --데이터로 끝나는 문자열
LIKE '%데이터%'  --데이터가 포함된 문자열
LIKE '데이터___' --데이터로 시작하는 6자 길이의 문자열
LIKE '__한%'  --세 번째 글자가 '한'인 문자열

IFNULL

IFNULL(NAME, 'No name')
-- NAME 컬럼이 NULL이면 'No name' 출력
-- NOT NULL이면 NAME 출력

ORDER BY

오름차순 ASC(생략가능), 내림차순 DESC


집계함수

  • COUNT : 속성 값의 개수 (모든 데이터)
  • MAX : 속성 값의 최대값 (모든 데이터)
  • MIN : 속성 값의 최소 값 (모든 데이터)
  • SUM : 속성 값의 합계 (숫자 데이터)
  • AVG : 속성 값의 평균 (숫자 데이터)

*모든데이터 : 날짜 데이터도 가능.

*집계 함수는 NULL인 속성 값은 제외하고 계산.

*집계 함수는 WHERE절에 사용할 수 없고, SELECT절이나 HAVING절에서만 사용할 수 있다.


WHERE & HAVING

  • WHERE : 모든 필드를 조건, 집계함수 X
  • HAVING : 그룹화 되어진 새로운 테이블에 조건, 집계함수 O

CASE END

CASE
   WHEN 조건
   THEN '반환값'
   WHEN 조건2
   THEN '반환값2'
   ELSE
END

GROUP BY

테이블에서 특정 속성의 값이 같은 튜플을 모아 그룹을 만들고, 그룹별로 검색을 하기 위해 사용.

그룹별로 검색할 때는 집계함수나 GROUP BY절에 있는 속성 외의 속성은 SELECT절에 사용할 수 없다.


날짜 데이터에서 일부만 추출

YEAR('2017-01-02 12:30:45')
MONTH('2017-01-02 12:30:45')
DAY('2017-01-02 12:30:45')
HOUR('2017-01-02 12:30:45')
MINUTE('2017-01-02 12:30:45')
SECOND('2017-01-02 12:30:45')

DATE_FORMAT

DATE_FORMAT(DATETIME, '%Y-%m-%d')

시간을 원하는 형태로 반환하는 함수.


문자열 부분 가져오기

  • RIGHT(문자, 가져올 갯수);
SELECT RIGHT('abcdefg', 3);

결과 eft
  • LEFT(문자, 가져올 갯수);
SELECT LEFT('abcdefg', 3);

결과 abc
  • MID(문자, 시작 위치, 가져올 갯수);
    -- 또는 SUBSTR(문자, 시작 위치, 가져올 갯수);
    -- 또는 SUBSTRING(문자, 시작 위치, 가져올 갯수);
SELECT MID('abcdefg', 2, 4);
-- SELECT SUBSTR('abcdefg', 2, 4);
-- SELECT SUBSTRING('abcdefg', 2, 4);


결과 bcde

여러 문자열을 하나로 합치기

SELECT CONCAT('안녕하세요.', '감사해요.', '잘있어요.', '다시만나요.') AS hello;


 안녕하세요.감사해요.잘있어요.다시만나요.
profile
학습 정리, 자기 개발을 위한 블로그

0개의 댓글