본문 바로가기
  • 개발자를 꿈꾸는 중

SQL5

inner join과 left outer join의 차이 인생 처음 면접날 위의 제목에 해당하는 질문을 받았고 이런 기초적인 것에 준비를 못한게 분해서 이시간에 글을 올린다.... JOIN에는 대표적으로 Inner Join과 Outer Join이 있다. 우선 Inner Join 이란 데이터의 교집합으로써 아래 왼쪽 사진처럼 표현할 수 있다. Inner Join의 특징으로는 두테이블의 교집합으로써 매칭되는 값으로만 새 테이블이 생성되므로 NULL 값이 존재하지 않는다. Outer Join 두 테이블의 합집합이고 오른쪽 그림과 같이 표현된다. 이 Outer Join은 또다시 크게 3 종류로 나뉜다. - Left Join - Right Join - Full Outer Join 여기서 내가 다뤄볼 내용은 Left Join 이다. 사물의 이름을 저장하고 있는 table.. 2022. 10. 5.
그룹화 관련 함수 ROLLUP 설명보다 코드와 결과값부터 보겠다. 코드 자체는 어려움이 없다. GROUP BY 옆에 ROLLUP을 적고 ()안에 해당 열을 입력해주면 된다, ROLLUP 함수는 안에 입력한 열들을 소그룹부터 대그룹 순으로 각 그룹별 결과를 출력하고 마지막에 총 데이터 결과를 출력해준다. ROLLUP(DEPTNO, JOB)과 ROLLUP(JOB, DEPTNO)의 차이는 위의 결과값을 비교해 보자. CUBE CUBE 함수는 ROLLUP 함수와 비슷하다. 차이점은 명시하는 열의 N 개수에 따라 N^2개의 모든 조합을 출력한다는 것이다. 즉, CUBE(A,B,C)일 경우 1. A,B,C 해당하는 결과 출력 2. A, B 그룹의 결과 출력 3. B, C 그룹의 결과 출력 4. A, C 그룹의 결과 출력 5. A 결.. 2022. 6. 9.
데이터 그룹화 다중행 함수를 사용해 간단하게 데이터를 가공하여 하나의 결과 값을 출력해줄 수 있습니다. 더보기 다중행 함수란 지정 데이터를 가공하여 하나의 결과 값만 출력하는 함수입니다. 예를들어 AVG(), SUM(), COUNT() 등이 있습니다. 하지만 열(raw)의 값 별로 결과값을 출력하고자 할때는 번거롭다. 예를 들어 우리에게 회사사원 데이터를 가진 테이블이 있고 그곳에 부서 번호(DEPTNO), 급여(SAL), 직업(JOB)이 포함되어있습니다. 부서 10의 평균 급여: 위의 코드를 부서 20, 30도 하면 3 부서의 평균 급여를 알 수 있다. 이렇게 각각 출력하는 것은 대기업의 상황에서는 매우 비효율적이다. 데이터 그룹화는 특정 열 값별로 출력해줄 수 있어 이 문제를 아주 효율적으로 해결한다. 그룹화된 결.. 2022. 6. 9.
집합 연산자 집합 연산자는 SELECT 쿼리의 결과값들로 연산을 하는 연산자이다. 즉, 여러개의 SELECT 문을 하나의 쿼리로 만든다. 종류 UNION UNIONALL INTERSECT MINUS 예를 들어 지은이와 범수가 있다고 가정하고 아래와 같은 차를 가지고 있다. 표가 데이터 출력값이라고 생각하자 car name BMW 지은 AUDI 지은 VW 지은 Hyundai 지은 PORSCHE 범수 BMW 범수 AUDI 범수 UNION (합집합) - 두명이 가진 차 목록전체를 조회하려할 경우 UNION/UNIONALL을 사용한다. SELECT car FROM cartable WHERE name = '지은' UNION SELECT car FROM cartable WHERE name = '범수'; 결과물: car BMW .. 2022. 6. 8.
반응형