우주먼지
Select Into & Insert Into Select
Database/SQL 2023. 3. 20. 12:36

💡 Select Into 한 테이블의 데이터를 새 테이블로 복사할 때 사용한다. 기본 형식 SELECT * INTO newtable [IN externaldb] FROM oldtable WHERE condition; 일부 열만 새 테이블에 복사 SELECT column1, column2, column3 ... INTO newtable [IN externaldb] FROM oldtable WHERE condition; 예시 Customer의 백업본 생성 SELECT * INTO CustomersBK FROM Customers; IN을 사용하여 데이블을 다른 데이터베이스의 새 테이블로 복사 SELECT * INTO CustomerBK IN 'Backup.mdb' FROM customers; 몇 개의 열만 새..

JPQL Fetch Join
Database/JPQL 2023. 3. 19. 13:29

💡 Fetch Join SQL 조인의 종류가 아니다. JPQL에서 성능 최적화를 위해 제공하는 기능이다. 연관된 Entity나 Collection을 SQL 한 번에 같이 조회하는 기능 (성능 최적화) 글로벌 Fetch Loading 전략보다 우선순위가 높다. 객체 그래프를 유지할 때 사용하면 효과적이다. 여러 테이블을 조인해서 엔티티가 가진 모양이 아닌 전혀 다른 결과를 내야하면, 일반 조인을 사용하고 필요한 데이터만 조회해서 DTO로 반환하는 것이 좋다. join fetch 명령어 사용 ::= [ LEFT [OUTER] | INNER ] join fetch 경로 Entity Fetch Join 엔티티를 조회하면서 연관된 엔티티까지 같이 한번의 쿼리로 조회한다. JPQL String query = "se..

JQPL 경로표현식
Database/JPQL 2023. 3. 19. 11:38

💡 JPQL 경로표현식 .(점)을 찍어 객체 그래프를 탐색하는 것 select m.username // 상태 필드 from Member m join m.team t // 단일 값 연관 필드 join m.orders o // 컬렉션 값 연관 필드 where t.name = 'teamA'; 상태 필드 단순히 값을 저장하기 위한 필드 연관 필드 연관관계를 위한 필드 단일 값 연관 필드 : 대상이 Entity이다. (N:1, 1:1) 컬렉션 값 연관 필드 : 대상이 Collection이다. (1:N, N:M) 특징 묵시적 내부 조인이 발생하는 단일 값 연관 경로, 컬렉션 값 연관 경로는 조심해서 사용해야 한다. 내부적으로 inner join문이 나가기 때문에 쿼리튜닝이 어렵기 때문에, 왠만하면 명시적 조인을 사..

Any & All
Database/SQL 2023. 3. 19. 07:41

💡 Any & All Any & All 함수는 주로 서브쿼리에서 사용하는 다중 행 연산자이다. Any는 조건을 만족하는 값이 하나라도 있다면 결과를 반환한다. All은 모든 조건을 만족하는 결과를 리턴한다. Sample Table Products 테이블 ProductID ProductName SupplierID CategoryID Unit Price 1 Chais 1 1 10 boxes x 20 bags 18 2 Chang 1 1 24 - 12 oz bottles 19 3 Aniseed Syrup 1 2 12 - 550 ml bottles 10 4 Chef Anton's Cajun Seasoning 2 2 48 - 6 oz jars 22 5 Chef Anton's Gumbo Mix 2 2 36 boxes..

Exists
Database/SQL 2023. 3. 19. 06:50

💡 Exists 하위 쿼리에 레코드가 있는지 테스트하는 데 사용된다. Exists 하위 쿼리가 하나 이상의 레코드를 반환하면 True를 반환한다. Sample Table Products 테이블 ProductID ProductName SupplierID CategoryID Unit Price 1 Chais 1 1 10 boxes x 20 bags 18 2 Chang 1 1 24 - 12 oz bottles 19 3 Aniseed Syrup 1 2 12 - 550 ml bottles 10 4 Chef Anton's Cajun Seasoning 2 2 48 - 6 oz jars 22 5 Chef Anton's Gumbo Mix 2 2 36 boxes 21.35 Suppliers 테이블 SupplierID Su..

Having
Database/SQL 2023. 3. 19. 06:40

💡 Having Where문에서 집계함수를 사용할 수 없어서 만들어졌다. 집계 함수를 가지고 조건비교를 할 때 사용되며 Group By와 함께 사용된다. Sample Table CustomerID CustomerName ContactName Address City PostalCode Country 1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany 2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico 3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 ..

Group By
Database/SQL 2023. 3. 19. 05:47

💡 Group By Group By는 보통 Count, Max Min Sum Avg 함수화 함께 사용되며, 결과 집합을 하나 이상의 열로 그룹화 한다. 즉, 데이터를 원하는 그릅으로 나눌 수 있다. 나누고자 하는 그룹의 컬럼명을 Select과 Group By 뒤에 추가하면 된다. 집계함수와 함께 사용되는 상수는 Group By문에 추가하지 않아도 된다. (중요) SELECT column_name(s) FROM table_name WHERE condition GROUP BY column_name(s) ORDER BY column_name(s) Group By 예시 각 국가의 고객 수를 반환한다. SELECT COUNT(CustomerID), Country FROM Customers GROUP BY Coun..

검색 태그