oracle(16)
-
[SQLD] SQL 활용 - 서브쿼리(Subquery)
서브쿼리 서브 쿼리란 하나의 SQL문 안에 또 다른 SQL문을 말한다. 즉 SELECT문 내에 다시 SELECT문 사용하는 형태의 SQL문이다. 서브쿼리 밖에 있는 SELECT문은 메인 쿼리라고 한다. 서브쿼리 형태 일반적인 서브 쿼리 - WHERE절 스칼라 서브 쿼리 - SELECT 절 인라인 뷰 - FROM 절 서브 쿼리 특징 괄호로 감싸서 사용한다. 단일 행 또는 복수 행 비교 연산자와 함께 사용 가능하다. 단일 행 비교 연산자 : =, ≥, ≤, >, 서브 쿼리 안의 출력 컬럼은 반드시 단일 컬럼이어야 한다 다중 컬럼 서브 쿼리 SELECT * FROM EMPLOYEES e WHERE (MANAGER_ID, JOB_TITLE) IN ( ('9', 'Accountant'), ('4', 'Progra..
2023.03.17 -
[SQLD] SQL 활용 - 계층형 쿼리
계층형 조회(CONNECT BY) 계층형 조회는 ORACLE 데이터베이스에서 지원하는 것으로 계층형으로 데이터를 조회할 수 있다. CONNECT BY는 트리 형태의 구조로 질의를 수행하는데 START WITH구는 시작 조건을 의미하고 CONNECT BY PRIOR는 조인 조건이다. Root 노드로 부터 하위 노드의 질의를 실행한다. 키워드 설명 START WITH 조건 계층 전개의 시작 위치 지정 PRIOR 자식 = 부모 부모에서 자식 방향으로 검색을 수행하는 순방향 전개 PRIOR 부모 = 자식 자식에서 부모 방향으로 검색을 수행하는 역방향 전개 NOCYCLE 데이터 전개시 이미 조회된 데이터를 다시조회할때 생기는 CYCLE 방지 ORDER SIBLINGS BY 컬럼 동일한 LEVEL인 형제노드 사이에..
2023.03.17 -
[SQLD] SQL 활용 - JOIN
JOIN SQL에서 두 개 이상의 릴레이션을 연결 또는 결합하여 데이터를 출력하는 연산이다. EQUI(등가) JOIN JOIN의 가장 기본은 교집합을 만드는 것으로 두 개의 테이블 간 일치하는 것을 JOIN한다. "=" 제외한 조인의 형태는 NON-EUQI 비등가 조인이라고 한다. INNER JOIN ANSI 표준 등가 조인 SELECT * FROM EMP e INNER JOIN DEPT d ON E.DEPTNO = d.DEPTNO 결과로 뽑을 컬럼명은 항상 붙여주는 것이 좋음 ALIAS NAME 꼭 사용할 것 USING절을 사용한 JOIN SELECT * --E.DEPTNO는 에러남 FROM EMP E INNER JOIN DEPT D USING(DEPTNO) USING절 사용 시 컬럼은 as생략 ORA..
2023.03.17 -
[SQLD] 데이터 모델링의 이해 -4
데이터 모델링 성능 데이터 모델링 데이터베이스 성능 향상을 목적으로 설계단계의 데이터 모델링 때부터 성능과 관련된 사항이 데이터 모델링에 반영 될 수 있도록 하는 것을 의미하며 모델링을 중심으로 튜닝한다. 성능 데이터 모델링 절차 데이터 모델링을 할 때 정규화를 정확하게 수행한다. 데이터베이스 용량산정을 수행한다. 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다. 용량과 트랜잭션의 유형에 따라 반정규화를 수행한다. 이력모델의 조정, PK/FK조정, 슈퍼타입/서브타입 조정 등을 수행한다. 성능관점에서 데이터 모델을 검증한다. 정규화 정규화란 데이터를 분해하는 과정이다. 데이터의 일관성을 유지하고 데이터 중복을 최소화하며 데이터의 유연성을 최대화 하기위해 수행한다. 정규화 절차 정규화 절차 설명 제 1정규..
2023.03.17 -
[Oracle] 조건에 맞는 사용자 정보 조회하기
문제 설명 다음은 중고 거래 게시판 정보를 담은 USED_GOODS_BOARD 테이블과 중고 거래 게시판 첨부파일 정보를 담은 USED_GOODS_FILE 테이블입니다. USED_GOODS_BOARD 테이블은 다음과 같으며 BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS는 게시글 ID, 작성자 ID, 게시글 제목, 게시글 내용, 가격, 작성일, 거래상태, 조회수를 의미합니다. Column name Type Nullable BOARD_ID VARCHAR(5) FALSE WRITER_ID VARCHAR(50) FALSE TITLE VARCHAR(100) FALSE CONTENTS VARCHAR(1000) FALSE PRICE ..
2023.03.15 -
[Oracle] 조건에 맞는 사용자와 총 거래금액 조회하기
문제 설명 다음은 중고 거래 게시판 정보를 담은 USED_GOODS_BOARD 테이블과 중고 거래 게시판 첨부파일 정보를 담은 USED_GOODS_FILE 테이블입니다. USED_GOODS_BOARD 테이블은 다음과 같으며 BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS는 게시글 ID, 작성자 ID, 게시글 제목, 게시글 내용, 가격, 작성일, 거래상태, 조회수를 의미합니다. Column name Type Nullable BOARD_ID VARCHAR(5) FALSE WRITER_ID VARCHAR(50) FALSE TITLE VARCHAR(100) FALSE CONTENTS VARCHAR(1000) FALSE PRICE ..
2023.03.15