SQL 3

Spring Boot SQL 보기 옵션 총 정리

Spring Boot에서 query DSL을 사용하건 spring boot JPA를 사용하건, 쿼리를 튜닝할 때 SQL을 봐야할 때가 있다. 그럴 때 사용할 수 있는 몇 가지 옵션을 조사해 보았다. 환경 : Spring boot 2.* + hibernate 5.3.10 이상 sql 보기 Hibernate이 DB에 날리는 모든 쿼리(DDL, DML)를 보여준다 application.yml을 사용한다면, spring: jpa: properties: hibernate: show_sql: true application.properties를 사용한다면, spring.jpa.properties.hibernate.show_sql=true 추가된 로그 Hibernate: select user0_.id as id1_0_..

SQL group by와 having 이해하기

직원에 대한 테이블 emp가 있다고 하자 emp는 3가지 column을 가지고 있다. id : primary key dept : 근무 부서 번호 salary : 월급 이 테이블 안에는 다음과 같은 데이터들이 있다고 하자 (1, 1, 1000) // 1번 부서에서 1000원을 받고 일하는 사람 (2, 1, 2000) (3, 1, 3000) (4, 2, 4000) (5, 2, 5000) (6, 3, 6000) (7, 3, 7000) (8, 2, 8000) 이런 상황에서 내가 근무 부서 당 월급의 총합을 알고 싶다고 하자. group by를 모르는 상황에서는 이렇게 할 수 있다. 1. 우선 근무 부서 번호의 종류를 확인한다 SELECT DISTINCT(dept) FROM emp; 2. 그 다음 각 근무 부서 ..

SQL JOIN 이해하기

JOIN : 두 개 이상의 테이블이나 데이터베이스를 연결하여 검색하는 방법 보통 PK 또는 FK로 두 테이블을 연결함 Inner Join 교집합이라고 많이 설명한다. 여기서 교집합이라는 것은, 특정 조건에 맞는 행들만 포함시키고 그렇지 않은 행들은 제외시킨다는 뜻이다. 예를 들어, 두 테이블이 있다고 하자 유저(user) 테이블 id : PK name : 유저 이름 자동차(car) 테이블 id : PK user_Id : FK (유저 테이블) name : 자동차 이름 이 테이블에 다음과 같은 값들이 있다고 하자 유저(user) 테이블 (1, 김철수) (2, 홍길동) (3, 김영희) (4, 박상식) 자동차(car) 테이블 (1, 1, "SM3") (2, 1, "그렌져") (3, 2, "소나타") (4, 3,..