본문 바로가기
SQL

SQL 3강. 문자열 패턴 & DATETIME 패턴

by 5soonglee 2021. 4. 10.
반응형

이 글을 보고 배우게 될 것

1) 문자를 원하는 패턴으로 데이터 조회

2) 시간별 패턴으로 데이터 조회

 

 

문자열 패턴

LIKE문 (문자열의 시작, 끝, 포함)

  • LIKE 'ABC%' → ABC로 시작하는
  • LIKE '%ABC' → ABC로 끝나는
  • LIKE '%ABC%' → ABC가 포함된

EX) '티셔츠' 제품만 조회 

!=, <> (문자열이 같지 않음)

  • !=, <> → 같지 않음
  • EX) WHERE gender !=(<>) male  --> 남성이 아닌 조건 조회

EX) gender가 "m" 제외

IN (~~가 포함된)

  • IN (20,30,40) → 20,30,40인
  • EX) WHERE age IN (20,30,40) --> 나이가 20,30,40살인 사람들

EX) age가 20, 27, 30 조회

'_' (한글자를 나타냄)

  • '_' 1개가 임의의 한 글자를 나타낸다
  • EX) WHERE email LIKE 'co____@%'(언더바 4개) --> [처음 c로시작 + 뒤에 아무거나 4글자 + @] 로 시작하는 것

EX) co+4글자+@로 시작 조회

 

 

DATETIME 타입별 조회

1. YEAR (DATETIME의 연도를 구함)

WHERE YEAR(birthday) =1992; --> birthday가 1992년생 조회

 

2. MONTH (DATETIME의 달(Month)를 구함)

WHERE MONTH(birthday) IN (2,3); --> birthday가 2,3월 조회

 

3. DAYOFMONTH (DATETIME의 일(DAY)를 구함)

WHERE DAYOFMONTH(sign_up_day) BETWEEN 15 AND 20; --> sign_up_day가 15~20일 사이 조회

 

 

5. CURDATE (DATETIME을 오늘날짜로 구함)

SELECT sign_up_day, CURDATE(), DATEDIFF(sign_up_day, CURDATE()); 

 

 

Q) 몇살때, Sign_up(가입)을 했을까??

A) 언제 가입을 했는지 data, 나의 생년월일 data가 있다면 구할 수 있을 것이다.

답: "sign_up_day 빼기(-) 나의생년월일"

이런식으로 말이다 "365로 나누는 이유는 년으로 계산하기위해서!"

 

날짜 더하기 빼기

간단히 날짜를 더하고 뺄 수도 있다 이건 너무 간단한 거라 예시는 생략하겠습니다.

 

1. DATEADD (날짜더하기)

SELECT sign_up_day, DATE_ADD(sign_up_day, INTERVAL 300 DAY)

FROM member;  --> sign_up_day에 300일을 더하기 

 

2. DATESUB (날짜빼기)

SELECT sign_up_day, DATE_SUB(sign_up_day, INTERVAL 300 DAY)

FROM member;  --> sign_up_day에 300일을 빼기

 

 

UNIX TIMESTAMP

UNIX Timestamp는 특정 날짜의 특정 시간을, 1970년 1월 1일을 기준으로, 총 몇 초가 지났는지로 나타낸 값

그래서 아래 그림과 같이 엄청난 숫자로 나타난다.

UNIX TIMESTAMP 예시

 

그러면 우리가 알아보기 쉽게는 못 바꿀까요??? 당연히 바꿀 수 있습니다.

어떻게? FROM_UNIXTIME을 사용 

FROM_UNIXTIME 으로 알아보기 쉽게 바꿈

반응형

'SQL' 카테고리의 다른 글

SQL 6강. 데이터 어디까지 추출? LIMIT  (0) 2021.04.17
SQL 5강. 대문자로만? 소문자로만? 바이너리(Binary)  (0) 2021.04.17
SQL 4강. 이스케이핑이란?  (0) 2021.04.17
SQL 2강. KEY  (0) 2021.04.10
SQL 1강. DBMS란? SQL란?  (0) 2021.04.10

댓글