Oracle
[SQL] 프로그래머스 특정 물고기를 잡은 총 수 구하기 - 조인 & 상관중첩질의
프로그래머스 Lv1 다음 문제를 풀어보자. FISH_INFO와 그리고 FISH_NAME_INFO 두 개의 테이블이 존재하고, join을 활용하면 쉽게 풀리는 문제이다. 하지만 단순하게 하나의 SQL 방법에 의존하게 되면, 향후 복잡한 쿼리를 사용할 때 제한적인 생각에 갇힐 수도 있다. 따라서 상관 중첩 질의를 이용해서도 풀이를 작성해놨다. (상관 중첩 질의 내용 포스팅은 여기로) Join 문을 이용한 코드 SELECT count(*) AS FISH_COUNT FROM fish_info as f INNER JOIN fish_name_info as n ON f.fish_type = n.fish_type WHERE n.fish_name in ('BASS', 'SNAPPER') ; 위 코드는 단순하게 전체 결과..
[SQL] 검색 - 목록 검색 연산자와 중첩 질의 Nested Query (2)
SQL에서 목록 검색 연산자라고 하면 IN과 NOT IN이 있다. IN 연산자는 일반적으로 주 질의의 WHERE 절에서 하나의 컬럼 값이 하위 질의가 반환한 결과 목록에 포함되는지 확인을 하는 역할을 한다. 지난 첫번째 중첩질의 포스팅에서도 다뤘지만, 하위 질의는 테이블(뷰) 형태를 반환할 수 있기 때문에 두개 이상의 값을 취할 수 있다. 주 질의는 WHERE 절의 컬럼 값이 하위 질의의 결과 목록에 포함되면 True를 반환한다고 이해하면 된다. 예시를 들어보자. 다음과 같은 3개의 테이블(emplyee, department, dependent) 이 존재한다고 가정해보자. 예제 1) 관리자인 사원의 정보를 검색 중첩질의를 활용해 이 문제를 해결해보자면 다음과 같이 SQL을 만들어서 원하는 답을 구할 수..
[SQL] 검색 - 비교 연산자와 중첩 질의 Nested Query (1)
어느 정도 데이터베이스 입문을 끝냈을 때 (ER 모델, RDB와 논리적 설계, 관계대수와 관계해석 파트까지), 드디어 실무에서 가장 많이 쓰일 수 있다고 생각되는 SQL 내용이 등장하기 시작한다. 많은 SQL 영역 중에서도 검색 분야의 중첩 질의에 대해 다뤄보고자 한다. 중첩 질의 중첩 질의는 다음과 같은 의미로 사용된다. SELECT문 (주 질의)의 WHERE 절 내에 새로운 SELECT문 (하위 질의)를 포함하는 질의 하위 질의는 주 질의의 WHERE절에서 레코드 검색 조건과 함께 사용된다. 간단하게 예를 살펴보자 예) 'Research' 부서의 사원 수 검색 이때 부서의 사원수를 검색하기 위해서 where 절에 하위 질의로 또다른 SELECT문이 등장하여 조건을 충족시켰다. 물론 join으로도 ..
[SQL] 조건에 부합하는 중고거래 댓글 조회 (프로그래머스)
프로그래머스 SQL LV1 문제중 가장 질문 게시판이 핫한 문제중 하나를 들고 와봤다. 이 문제는 두 테이블 (게시판 & 댓글)을 활용하여 쿼리를 작성하는 전형적인 join 과 관련된 문제이다. 이 문제는 DATE 형태만 제대로 작성하면 문제없이 원하는 결과물을 만들 수 있다. 올바른 DATE 포맷 사용하기 -> DATE_FORMAT() 함수 활용 SELECT b.TITLE, b.BOARD_ID, r.REPLY_ID, r.WRITER_ID, r.CONTENTS, DATE_FORMAT(r.CREATED_DATE, '%Y-%m-%d') AS CREATED_DATE FROM USED_GOODS_BOARD b INNER JOIN USED_GOODS_REPLY r ON b.BOARD_ID = r.BOARD_ID ..