Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스프링 부트 핵심 가이드
- 스프링부트실전가이드
- 데이터베이스 연동
- Swagger
- 프로젝트 생성
- 개발자
- 제로베이스
- 리포지토리 인터페이스
- ORM
- validated
- DAO 설계
- JPA
- 백엔드스쿨
- 제로베이스 #백엔드 #Java #Spring #개발자 #백엔드공부 #백엔드 스쿨
- 인텔리제이
- spring
- auditing
- Java
- DAO 연동 컨트롤러 서비스 설계
- 엔티티 설계
- 백엔드
- 백엔드공부
- #devops #terraform #state
- 유효성검사
- MariaDB
Archives
- Today
- Total
JeongJin's Blog
일찍 알았어야 했지만 어떻게든 몰랐던 5가지 SQL 본문
1) WHERE vs HAVING
- 저자는 group by 사용하여 집계 조건을 사용 할 때 where를 사용할 수 없으므로 대신 having 을 사용하라고 권장.
SELECT gender, count(*)
FROM dogs
GROUP BY gender
HAVING count(*) >= 4;
- count(*) >= 4 이상 의 조건으로 WHERE 사용 불가하다.
2) Mapping values with CASE WHEN
- 아래와 같은 조건이 있다고 하자
- 나이가 3 이하는 young 으로 출력
- 나이가 4 이상 5이하는 medium으로 출력
- 나이가 6 이상은 older로 출력
SELECT
CASE
WHEN age <= 3 THEN 'young'
WHEN age >= 4 AND age <= 5 THEN 'medium' -- (X)
ELSE 'older'
END
FROM dogs;
SELECT
CASE
WHEN age <= 3 THEN 'young'
WHEN age <= 5 THEN 'medium' -- (O)
ELSE 'older'
END
FROM dogs;
- 4-5 인 경우 앞에 <= 3 조건이 있으므로 <= 5 만 해줘도 가능하다.
3) Combining strings with STRING_AGG
- group by 사용 시 문자열 join 시 사용한다.
SELECT gender, STRING_AGG(name, ',')
FROM dogs
GROUP BY gender;
-- result
gender | string_agg
-------------------
m | A,B,C,D
f | E,F,G
-------------------
4) Joining stuff using CONCAT
- group by 가 아닌 일반적으로 문자열을 join 하는 경우 CONCAT을 사용한다.
5) smallint vs int vs bigint
- Integer에는 3가지 타입이 존재
- SMALLINT ranging from -32768 to +32767
- INTEGER ranging from -2147483648 to +2147483647
- BIGINT ranging from -9223372036854775808 to +9223372036854775807
- 상황에 맞게 적절한 INTEGER 타입으로 선언하여 사용한다.