배운 것
1. WHERE Operator
IN, NOT IN
- WHERE book_id in (3, 4) -> WHERE book_id = 3 OR book_id = 4 와 같다.
- WHERE book_id not in (3, 4) -> book_id 가 3, 4 가 아닌 그 외 아이디
LIKE, NOT LIKE(문자열 매칭할 때 사용한다.)
- LIKE : 대소문자 구별 없이 문자열 매칭 기능을 제공해준다.
- WHERE book LIKE 'G%' -> 'G*' (G로 시작하는 레코드를 찾아준다.)
- WHERE book LIKE '%o%' -> '*o*'(o가 들어간 레코드를 찾아준다.)
- WHERE book NOT LIKE 'G%' -> 'G*' (G로 시작하는 레코드를 제외하고 찾아준다.)
BETWEEN
- 날짜 범위에 사용 가능하다.
IN / LIKE / BETWEEN 오퍼레이터들은 CSE WHEN 사이에서도 사용 가능하다.
2. MySQL NULL
- 오름차순 정렬할 경우 NULL은 처음에 위치한다.
- 내림차순 정렬할 경우 NULL은 마지막에 위치한다.
3. 여러개 필드를 사용해서 정렬하려면
- ORDER BY 1 DESC, 2, 3
4. 시간 변환
DATE Conversion
- NOW
- 타임존 관련 변환 -> CONVERT_TZ(now(), 'GMT', 'Asia/Seoul')
- DATE, WEEK, MONTH, YEAR, HOUR, MINUTE, SECOND, QUARTER, MONTHNAME
- DATEDIFF
- DATE_ADD
STR_TO_DATE, DATE_FORMAT
5. Type Casting
cast(category as float), convert(expression, float) 함수 사용
- SELECT cast('100.0' as float), convert('100.0' float);
6. COUNT
SELECTCOUNT(1) FROM ~; -> 전체 카운트
SELECTCOUNT(0) FROM ~; -> 전체 카운트
SELECTCOUNT(NULL) FROM ~; -> NULL 카운트
SELECTCOUNT(value) FROM ~; -> NULL 제외하고 카운트
SELECTCOUNT(DISTINCT value) FROM ~; -> NULL, 중복 value 제외하고 카운트
느낀 점
db는 지금까지 깊게 사용해본적이 없어서 손으로 익히고 체화하기까지 많은 시간이 필요할 것 같다.
'TIL > 2021' 카테고리의 다른 글
[TIL] 0813 Database 이것저것5 (0) | 2021.08.13 |
---|---|
[TIL] 0812 Database 이것저것4 (0) | 2021.08.12 |
[TIL] 0810 Database 이것저것2 (0) | 2021.08.10 |
[TIL] 0809 Database 이것저것1 (0) | 2021.08.09 |
[TIL] 0806 Java 이것저것 (0) | 2021.08.06 |