SQL - Point
·
📦 Database/SQL
Point POINT()는 MySQL에서 공간 데이터 타입인 POINT를 생성하는 함수입니다. POINT() 함수는 지리적 좌표를 나타내는 POINT 객체를 생성합니다. POINT() 함수는 두 개의 인자를 가지며, 각각 x 좌표와 y 좌표입니다. 일반적으로 경도(Longitude)와 위도(Latitude) 값을 사용하여 지리적 좌표를 표현합니다. 예를 들어, POINT(127.1234, 37.5678)은 경도가 127.1234이고 위도가 37.5678인 지점을 나타내는 POINT 객체를 생성합니다. 이를 통해 해당 레코드의 위치 정보를 POINT 객체로 저장하고 업데이트할 수 있습니다.
SQL DateDiff
·
📦 Database/SQL
Date Diff DATEDIFF 함수는 두 날짜 사이의 일 수 차이를 계산하는 SQL 함수입니다. 일반적으로 날짜 간의 차이를 계산할 때 사용됩니다. DATEDIFF 함수의 구문은 데이터베이스 시스템에 따라 다를 수 있지만, 대부분의 데이터베이스에서 유사한 방식으로 작동합니다. 아래는 일반적인 구문의 예입니다: DATEDIFF(end_date, start_date) end_date: 비교할 날짜의 종료일입니다. start_date: 비교할 날짜의 시작일입니다. DATEDIFF 함수는 end_date에서 start_date를 뺀 뒤, 그 결과로 두 날짜 사이의 일 수 차이를 반환합니다. 결과 값은 정수 형태로 반환되며, 음수 값일 수도 있습니다. 예를 들어, DATEDIFF 함수를 사용하여 2023년 5..
Query Builder - SubQuery Join - eq & goe
·
📦 Database/QueryDSL
SubQuery Join com.querydsl.jpa.JPAExpressions을 사용합니다. Subquery Join은 하위 쿼리를 사용하여 조인을 수행하는 방식입니다. Subquery Join을 사용하면 메인 쿼리와 서브쿼리 사이에 조인을 수행할 수 있습니다. 이를 통해 복잡한 조인 조건이나 필터링 작업을 수행할 수 있습니다. eq() /** @desc SubQuery Join - eq 사용 */ @Test fun subQueryJoin() { val m = QMember.member val sub = QMember("sub") val result = queryFactory .selectFrom(m) .where(m.age.eq(JPAExpressions .select(sub.age.max()) ...
Query Builder - Inner & Outer & Cross Join
·
📦 Database/QueryDSL
기본 Join 문법 조인의 기본 문법은 첫번째 파라미터에 조인 대상을 지정하고, 두번째 파라미터에 별칭(alias)으로 사용할 Q-Type을 지정하면 됩니다. join(조인대상, 조인 대상 테이블(Q-Type Entity)) join(), innerJoin() : 내부 조인 leftJoin() : left 외부 조인 (left outer join) rightJoin() : right 외부 조인 (right outer join) JPQL의 On과 성능 최적화를 위한 fetch join 제공 Inner Join Hibernate 5.1 부터 On을 사용해 서로 연관관계가 없는 필드로 외부조인 하는 기능이 추가되었습니다. 물론 내부 조인도 가능합니다. 주의할 점은 leftJoin() 부분에는 일반 조인과 다르..
Query Builder - Aggregation & Group By & Having
·
📦 Database/QueryDSL
집합 함수 JPQL이 제공하는 모든 집합 함수를 제공합니다. /** * COUNT(m) - 회원 수 * SUM(m.age) - 나이 합 * AVG(m.age) - 평균 나이 * MAX(m.age) - 최대 나이 * MIN(m.age) - 최소 나이 * @desc 집합 함수 */ @Test fun aggregation() { val m: QMember = QMember.member val result: MutableList? = queryFactory .select( m.count(), m.age.sum(), m.age.avg(), m.age.max(), m.age.min() ) .from(m) .fetch() val tuple = result?.get(0) assertThat(tuple?.get(m.co..