이 글을 보고 배우게 될 것
1) 문자를 원하는 패턴으로 데이터 조회
2) 시간별 패턴으로 데이터 조회
문자열 패턴
LIKE문 (문자열의 시작, 끝, 포함)
- LIKE 'ABC%' → ABC로 시작하는
- LIKE '%ABC' → ABC로 끝나는
- LIKE '%ABC%' → ABC가 포함된
!=, <> (문자열이 같지 않음)
- !=, <> → 같지 않음
- EX) WHERE gender !=(<>) male --> 남성이 아닌 조건 조회
IN (~~가 포함된)
- IN (20,30,40) → 20,30,40인
- EX) WHERE age IN (20,30,40) --> 나이가 20,30,40살인 사람들
'_' (한글자를 나타냄)
- '_' 1개가 임의의 한 글자를 나타낸다
- EX) WHERE email LIKE 'co____@%'(언더바 4개) --> [처음 c로시작 + 뒤에 아무거나 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 빼기(-) 나의생년월일"
날짜 더하기 빼기
간단히 날짜를 더하고 뺄 수도 있다 이건 너무 간단한 거라 예시는 생략하겠습니다.
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일을 기준으로, 총 몇 초가 지났는지로 나타낸 값
그래서 아래 그림과 같이 엄청난 숫자로 나타난다.
그러면 우리가 알아보기 쉽게는 못 바꿀까요??? 당연히 바꿀 수 있습니다.
어떻게? 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 |
댓글