sql 103

76. 서브쿼리6(FROM절)

쿼리의 결과로 새로운 결과 집합을 만들어보자 FROM의 서브 쿼리는 IN LINE VIEW라고 하는데 WHERE절에서는 분석함수를 사용할 수 없어 FROM 절에 서브 쿼리문을 사용해서 서브 쿼리문을 먼저 실행시키고, 출력된 결과를 WHERE로 검색한다. 아래 예시에서는 FROM절에서 모든 사원 이름, 월급, 월급 순위를 만들고 이중에서 순위가 1인 사원을 골라내게 된다.

코딩/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

72. 다중 행 서브쿼리

71에서는 하나의 값을 서브쿼리에서 불러왔다면 이번엔 여러 행을 한번에 서브쿼리에서 불러와서 활용해보자 직업이 salesman과 같은 봉급을 받는 사람의 이름, 봉급을 출력해보자 이번 쿼리는 내가 스스로 작성해보았다. salesman은 여러명이기 때문에 = 대신에 in으로 표현해야한다. 서브 쿼리 종류를 정리하고 마무리한다. 1. 단일 행 서브 쿼리 : 서브 쿼리에서 메인쿼리로 1개의 값이 반환됨 2. 다중 행 서브 쿼리 : 서브 쿼리에서 메인쿼리로 여러개의 값이 변환됨 3. 다중 컬럼 서브 쿼리 : 서브 쿼리에서 메인 쿼리로 여러 개의 컬럼 값이 변환됨 1 ,2는 진행했고 다중 컬럼 서브 쿼리는 차차 공부해보자

코딩/SQL 2022.06.11

71. 단일행 서브쿼리

특정 쿼리에서 검색한 값을 다른 쿼리에서 받아서 출력하는 방법을 배워보자 서브쿼리에서 검색한 뒤 다른 쿼리에서 이를 이용하면 된다. 아래 예시는 존스보다 더 많은 봉급을 받는 사람과 봉급을 출력하는 쿼리이다. 괄호 안에 존스의 봉급을 찾고 이 이상의 봉급을 받는 사람의 이름, 봉급을 출력한다. 다음은 스콧과 봉급이 동일한 사람의 정보를 출력해보자 만약 마지막 줄이 없다면 scott도 같이 출력될 것이다.

코딩/SQL 2022.06.11

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