본문 바로가기
반응형

Data Analysis/SQL19

[SQL] 11. SQL에서의 결합(CROSS/INNER/OUTER JOIN) SQL 결합(JOIN) 의 종류 SQL에는 기능적 관점으로 분류되는 결합의 종류로 크로스 결합 (CROSS JOIN), 내부 결합 (INNER JOIN), 외부 결합 (OUTER JOIN)이 존재한다. 위의 세가지 결합에 대해서 하나씩 예를 들어가며 설명해보려 한다. - 크로스 결합 (CROSS JOIN) 우선, 크로스 결합은 실무에서는 거의 사용하지 않는 결합이다. 하지만 크로스 결합은 모든 결합 연산의 모체이기 때문에 훑고 가는 것이 좋다. 크로스 결합 예시에서는 단순히 결합이 어느 역할을 하는 연산인지 이해하는 데에 초점을 두어 설명하겠다. 결합을 설명하기 위해 아래와 같은 두 테이블(EMP : 사원 정보 / DEPT : 부서 정보)을 만들었다. 두 테이블에서는 dept_id 라는 필드를 동시에 가.. 2019. 7. 18.
[SQL] 10. SQL에서의 반복 (응용 - 재귀 쿼리) SQL에서의 '반복'(반복문X) - 재귀 쿼리(Recursive Union) 앞선 포스팅에 이어 SQL에서의 반복에 관한 세번째 예시를 소개하려 한다. 이번 예시에서는 재귀 쿼리(Recursive Union)라는 여태까지의 SELECT 구문과는 색다른 구문이 등장한다. [ Example 3 - 우편번호 이력 테이블 ] 이사 이력이 있는 사람들의 우편번호 기록이 적재되어 있는 PostalHistory 테이블을 생성하였다. new_pcode는 name에 해당하는 사람이 이사한 곳의 우편번호를 뜻하며, pcode는 과거 거주한 집의 우편번호를 뜻한다. 만일 new_pcode의 값이 NULL이라면, pcode가 name에 해당하는 사람의 최종 거주지 우편번호인 셈이다. - 포인터 체인 & 인접 리스트 모델 위의.. 2019. 7. 18.
[SQL] 09. SQL에서의 반복 (CASE&WINDOW함수 + 예시2) SQL에서의 '반복'(반복문X) - CASE & WINDOW 함수 활용2 앞선 포스팅에 이어 SQL에서의 반복에 관한 두번째 예시를 소개하려 한다. [ Example 2 - 인접한 우편 번호 찾기 ] 다음은 PosatlCode 테이블에서 [4130033 - 시즈오카 아타미 아타미]와 가장 가까운 지역의 우편번호를 찾는 예시이다. 여기서 제시된 우편번호의 앞자리부터 순차적으로 똑같은 우편번호의 지역이 가까운 지역이라 할 수 있겠다. 절차 지향형 사고방식이라면 레코드 하나에 대해 7번의 비교를 반복을 하게 되며, 이는 레코드가 많아질수록 비효율적인 성능을 초래하게 된다. - CASE 함수의 활용 : (사용자 지정)순위 계산하기 이 예시의 경우는 제시된 [4130033 - 시즈오카 아타미 아타미]의 우편번호와.. 2019. 7. 18.
[SQL] 08. SQL에서의 반복 (개념 + CASE&WINDOW함수 + 예시1) SQL에서의 '반복'(반복문X) - CASE & WINDOW 함수 활용1 - SQL의 반복문? 간단하게 말하면, 기본적인 SQL에는 반복문이 없다. 자바나 C#에서 사용하는 절차형 프로그래밍(IF문, Loop문 등)의 개념을 기본 베이스로 알고있는 일반 개발자들에게는 이런 점에서 SQL이 매우 불편한 언어라고 생각된다. SQL을 활용한 절차적 데이터 베이스 언어이 PL/SQL을 쓰거나 다른 언어를 결합하여 사용하면 크게 문제는 없지만, 이 나름대로 불편한 점이 아닐 수 없을 것이다. - 반복계 코드 VS 포장계 코드 책에서 SQL에서의 반복이라는 개념을 설명할 때 '반복계 코드'와 '포장계 코드'라는 용어를 활용한다. 다음은 두 용어를 정리한 표이다. (책의 개념을 필자 나름대로 요약한 것인데, 이 부분.. 2019. 7. 18.
반응형