76. 서브쿼리6(FROM절) 쿼리의 결과로 새로운 결과 집합을 만들어보자 FROM의 서브 쿼리는 IN LINE VIEW라고 하는데 WHERE절에서는 분석함수를 사용할 수 없어 FROM 절에 서브 쿼리문을 사용해서 서브 쿼리문을 먼저 실행시키고, 출력된 결과를 WHERE로 검색한다. 아래 예시에서는 FROM절에서 모든 사원 이름, 월급, 월급 순위를 만들고 이중에서 순위가 1인 사원을 골라내게 된다. 코딩/SQL 2022.06.12
75. 서브쿼리5(HAVING) 그룹 함수로 검색된 데이터(GROUP BY절)는 WHERE절을 사용할 수 없어 HAVING 절을 이용한다. 다른 SELECT문의 절은 서브 쿼리 사용이 가능하니 걱정하지말자 - SELECT, FROM, WHERE, HAVING, ORDER BY - GROUP BY는 불가능 코딩/SQL 2022.06.12
74. 서브쿼리4(EXISTS, NOT EXISTS) 특정 테이블의 데이터가 다른 테이블에도 존재하는지 여부를 확인해보자 EXISTS, NOT EXISTS로 확인이 가능하다. DEPTNO가 10이 emp 테이블에 있는지 검색하고 가장 처음에 있는 값을 읽는다. 그 다음 dept테이블의 deptno인 20이 emp 테이블에도 있는지 확인하고 출력한다. 40은 없어서 출력하지않는다. 없는 것을 출력하는 방법은 NOT EXISTS를 사용해야한다. 코딩/SQL 2022.06.12
73. 서브쿼리3(NOT IN) 관리자가 아닌 사원들의 정보를 출력해보자 이거는 NOT IN을 사용한 서브쿼리로 풀어보았다. 서브쿼리에서 NOT NULL 인 것을 출력하고 empno에 해당 mgr이 있는지 확인하는 쿼리이다. 코딩/SQL 2022.06.11
72. 다중 행 서브쿼리 71에서는 하나의 값을 서브쿼리에서 불러왔다면 이번엔 여러 행을 한번에 서브쿼리에서 불러와서 활용해보자 직업이 salesman과 같은 봉급을 받는 사람의 이름, 봉급을 출력해보자 이번 쿼리는 내가 스스로 작성해보았다. salesman은 여러명이기 때문에 = 대신에 in으로 표현해야한다. 서브 쿼리 종류를 정리하고 마무리한다. 1. 단일 행 서브 쿼리 : 서브 쿼리에서 메인쿼리로 1개의 값이 반환됨 2. 다중 행 서브 쿼리 : 서브 쿼리에서 메인쿼리로 여러개의 값이 변환됨 3. 다중 컬럼 서브 쿼리 : 서브 쿼리에서 메인 쿼리로 여러 개의 컬럼 값이 변환됨 1 ,2는 진행했고 다중 컬럼 서브 쿼리는 차차 공부해보자 코딩/SQL 2022.06.11
71. 단일행 서브쿼리 특정 쿼리에서 검색한 값을 다른 쿼리에서 받아서 출력하는 방법을 배워보자 서브쿼리에서 검색한 뒤 다른 쿼리에서 이를 이용하면 된다. 아래 예시는 존스보다 더 많은 봉급을 받는 사람과 봉급을 출력하는 쿼리이다. 괄호 안에 존스의 봉급을 찾고 이 이상의 봉급을 받는 사람의 이름, 봉급을 출력한다. 다음은 스콧과 봉급이 동일한 사람의 정보를 출력해보자 만약 마지막 줄이 없다면 scott도 같이 출력될 것이다. 코딩/SQL 2022.06.11
70. 데이터 차이 출력(차집합, MINUS) 두 쿼리의 차집합을 출력해보자 교집합은 INTERSECT였다면 차집합은 MINUS를 포함하면된다. UNION, INTERSECTM, MINUS는 결과 데이터정렬, 중복제거를 해준다. 그러나 UNION ALL은 데이터 정려르 중복제러글 해주지않는다. 코딩/SQL 2022.06.10
69. 교집합 출력(INTERSECT) 두 쿼리에서 공통적으로 있는 데이터를 출력하는 쿼리를 작성하자 두 쿼리 사이에 INTERSECT를 작성해주면된다. 출력하는 변수가 동일해야 올바르게 출력한다. 아래 예시는 deptno가 20인 데이터만 출력해준다. 코딩/SQL 2022.06.10
68. 연결2(UNION) 연결1과 같이 부서별 월급, 토탈 월급을 한번에 출력해보자 연결1에선 UNION ALL이지만 여기선 UNION 으로 합친다. 다른점은 다음과 같다. 1. 중복된 데이터를 하나의 고유한 값으로 출력함 2. 첫번째 컬럼을 기준으로 내림차순으로 정렬하여 출력함 아래 예시를 보면 DEPTNO에서 내림차순으로 출력되는 것을 볼 수 있다. 또한, NULL을 숫자형으로 바꾸지않아도 정상적으로 출력해준다. 코딩/SQL 2022.06.10
67. 위아래 연결(UNION ALL) 위아래 쿼리 결과를 하나의 결과로 출력하는 집합 연산자이다. 아래 예시는 부서별 월급 총합과 전체 총합을 출력하는 방법이다. 집합 연산자를 사용할 때 다음의 주의사항이 있으니 꼭 알아두자 1. UNION ALL 위쪽쿼리와 아래쪽 쿼리의 컬럼 개수 및 데이터 타입이 동일해야한다. 2. 출력명은 위쪽 쿼리의 컬럼명으로 출력된다. 3. ORDER BY 절은 제일 아래쪽 쿼리에만 작성할 수 있다. 코딩/SQL 2022.06.09