2022년 3월 30일 TIL
SELECT
SELECT 필드이름1, 필드이름2
FROM 테이블이름
WHERE 선택조건
GROUP BY 필드이름1, 필드이름2
ORDER BY 필드이름 OR 필드번호 [ASC|DESC]
LIMIT N;
LIMIT
조회할 데이터 개수 지정
DISTINCT
중복된 데이터 제거하여 조회
COUNT
모든 레코드 수 카운트 = COUNT(0) = COUNT(1) = COUNT(*)
CASE WHEN
SELECT channel_id,
CASE
WHEN channel_id in (1, 5, 6) THEN 'Social-Media'
WHEN channel_id in (2, 4) THEN 'Search-Engine'
ELSE 'Something-Else'
END channel_type // 필드 이름
FROM session;
NULL
- 값이 존재하지 않음을 나타낸다.
- NULL과 함께한 연산의 결과는 항상 NULL이다.
SELECT 0 + NULL, 0 - NULL, 0 * NULL, 0 / NULL → NULL
COUNT(null) → 0 - 오름차순 일 경우(ASC) 처음에 위치한다.
- 내림차순 일 경우(DESC) 마지막에 위치한다.
NOT IN
- NOT IN
where에서 사용되며 포함이 되지 않았는지 확인한다.
NOT LIKE
- NOT LIKE
where에서 사용되며 문자열이 매칭되지 않아야 한다.
STRING Functions
LEFT(str, N) & RIGHT(str, N)
-
LEFT(str, N)
문자열 왼쪽에서부터 N개만 보여준다. -
RIGHT(str, N)
문자열 오른쪽에서부터 N개만 보여준다.
LPAD(필드이름, N, '-'), RPAD(필드이름, N, '-')
-
LPAD(필드_이름, N, '-')
필드에 해당하는 value를 N 길이 만큼만 보여준다. 만약 value의 길이가 N보다 작다면 작은 만큼 '-'을 왼쪽에 채원주다. ('-'은 다른 문자로 교체할 수 있다.)select LPAD(channel, 15, 'ㅁ') from channel limit 1; → ㅁㅁㅁㅁㅁㅁInstagram
-
RPAD(필드_이름, N, '-')
필드에 해당하는 value를 N 길이 만큼만 보여준다. 만약 value의 길이가 N보다 작다면 작은 만큼 '-'을 오른쪽에 채원주다. ('-'은 다른 문자로 교체할 수 있다.)select RPAD(channel, 15, 'ㅁ') from channel limit 1; → Instagramㅁㅁㅁㅁㅁㅁ
SUBSTR(str, pos), SUBSTR(str, pos, len)
-
SUBSTR(str, pos)
str에서 pos 번째 위치에서 모든 문자를 읽어들인다. -
SUBSTR(str, pos, len)
str에서 pos 번째 위치에서 len개의 문자를 읽어 들인다.
CONCAT
문자열을 합친다.
select concat(id, '. ', channel) from channel limit 1; → 1. Instagram
타입 변환
DATEDIFF, DATE_ADD
-
DATEDIFF(날짜1, 날짜2)
날짜1과 날짜2가 몇일 차이가 나는지 알려준다. -
DATEADD(기준날짜, INTERVAL)
- 기준 날짜에 입력된 기간만큼 더한다.
- INTERVAL에서 시간은 원하는 단위를 설정하면 된다.
SELECT DATE_ADD(NOW(), INTERVAL 1 HOUR); SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);
-
DATESUB(기준날짜, INTERVAL)
- 기준 날짜에 입력된 기간만큼 뺀다.
- INTERVAL에서 시간은 원하는 단위를 설정하면 된다.
SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR); SELECT DATE_SUB(NOW(), INTERVAL 1 DAY);
STR_TO_DATE, DATE_FORMAT
-
STR_TO_DATE
timestamp 문자열을 DATE 타입으로 변경 -
DATE_FORMAT
timestamp DATE 타입으로 문자열로 변경
cast(exp as type), convert(exp, type)
SELECT cast('100.0' as float), convert('100.0', float);
GROUP BY
테이블의 레코드를 그룹핑하여 다양한 정보를 계산한다.
SELECT channel_id, COUNT(1)
FROM session
GROUP BY 1; // 첫번째 필드(channel_id)를 기준으로 그룹화하라!
필드 이름 OR 필드의 일련 번호를 사용하여 그룹화한다.
Author And Source
이 문제에 관하여(2022년 3월 30일 TIL), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yshjft/2022년-3월-30일-TIL저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)