전체 글
-
SQL 고득점 킷 JOIN자료구조와 알고리즘/문제풀기 2023. 9. 1. 12:49
1. 주문량이 많은 아이스크림 구하기 - 내 코드 -- -- 코드를 입력하세요 -- 토탈 오더 더한 거 TOP -N 구해야함 -- FIRST_HALF 기본기 : 맛 , 외래키 SHIPMENT_ID -- JULY 기본기 SHIPMENT_ID 외래키 맛 -- => JULY를 맛 별로 그룹해서 일단 맛별 토탈 오더 구하고 -- > FIRST_HALF와 맛별로 조인 + 토탈 오더를 더한다. 이를 정렬한다. -- > 여기서 ROWNUM 3까지 구함 WITH JY as (SELECT SUM(TOTAL_ORDER) TOTAL_ORDER ,FLAVOR FROM JULY GROUP BY FLAVOR) SELECT FLAVOR FROM (SELECT jy.FLAVOR, jy.TOTAL_ORDER + fh.TOTAL_ORD..
-
오라클 sql - 인라인 뷰를 사용한 TOP-N SQLDataBase/Oracle 2023. 9. 1. 09:08
- CREATE문 외에 SQL문을 사용하여 일회성으로 만드는 뷰를 인라인 뷰라고 함 (서브쿼리) - WITH절에 미리 이름을 정의해두고 사용하는 SELECT문이 이에 해당함 - 인라인 뷰와 ROWNUM을 사용하면 ORDER BY절을 사용해 최상위 데이터 몇개만 추출 가능 SELECT ROWNUM, E.* FROM EMP E; -> ROWNUM이란 의사열이라는 특수열이다. 실제 테이블에 존재하지 않지만, 특정 목적을 위해 사용되는 열 -> ROWNUM은 테이블에 저장된 행이 조회된 순서대로 매겨지는 일련번호이다. SELECT ROUWNUM,E.* FROM EMP E ORDER BY SAL DESC; -> SAL을 기준으로 ORDER BY 해도 그냥 SELECT문의 행 번호와 같은 번호로 매겨짐 -> ROW..
-
SQL 레벨업 (1) DBMS 아키텍처DataBase/Oracle 2023. 8. 31. 22:55
학습목표: RDB 내부적인 동작 모델 이해 (데이터 캐시, 워킹 메모리,저장소 구조 등) 실행 계획과 옵티마이저 알아보기 1.DBMS 아키텍처 개요 - RDB별 아키텍처는 조금씩 다르긴하지만, 기본 구조는 모두 동일하다. - 이러한 공통구조를 이해한다면, DBMS가 가지는 특징도 쉽게 이해할 수 있을 것 - 사용자로부터 전달된 SQL은 DBMS에서 다양한 처리를 거치고, 저장 장치(SSD,HDD)에 있는 데이터에 접근해서 데이터를 읽고 쓴다. > 쿼리 평가 엔진: 계획을 세우고 실행하는 DBMS 핵심 기능 담당 모듈 SQL 분석, 실행계획 수립 * 실행계획을 기반으로 데이터에 접근하는 방법을 접근 메서드라고 부른다. * 성능 향상 관점에서 매우 중요하다. > 버퍼매니저 : DBMS는 버퍼라는 특별한 용도..
-
오라클 - 객체 종류DataBase/Oracle 2023. 8. 31. 16:57
- 오라클 데이터 베이스는 데이터 보관 및 관리를 위한 여러 기능 과 저장 공간을 객체를 통해 제공함 - 테이블은 SQL문과 더불어 오라클에서 가장 많이 사용하는 객체 중 하나 - 테이블 외 데이터 사전, 인덱스, 뷰, 시퀀스, 동의어 등 사용빈도가 높은 객체를 살펴보자 1. 데이터 사전 (테이블 객체) - 오라클에서 테이블은 사용자 테이블과 데이터 사전으로 나뉜다. - 데이터 사전은 데이터베이스를 구성하고 운영하는 데 필요한 모든 정보를 저장하는 특수 테이블 데이터베이스가 생성되는 시점에 자동으로 만들어 진다. - 데이터 사전에는 메모리,성능,사용자,권한,객체 등 운영에 중요한 데이터가 보관되어 있다. - 데이터 사전 뷰를 통해 정보를 열람해 보자 * 열람할 수 있는 데이터 사전 보기 SELECT * ..
-
SQL - 서브쿼리DataBase/Oracle 2023. 8. 31. 12:46
1. 서브쿼리란? - 서브쿼리는 SQL문을 실행하는 데 필요한 데이터를 추가로 조회하기 위해 SQL문 내부에서 사용하는 SELECT문이다. - 서브쿼리 값을 사용하여 기능을 수행하는 영역은 메인쿼리라고 부릅니다. SELECT 조회할 열 FROM 조회할 테이블 WHERE 조건식 (SELECT 조회할 열 FROM 조회할 테이블 WHERE 조건식) -- 가장 빈번하게 사용되는 패턴 ex) 'JONES'의 최고 급여가 2975일때 이것보다 더 높은 급여를 받는 사원 정보 출력 SELECT ENAME, SAL FROM EMP WHERE SAL > (SELECT SAL FROM EMP WHERE ENAME = 'JONES') *중요한 것은 필요한 조건을 어떤 서브쿼리(SELECT)를 통해 나누어 처리할 지를 결정하..
-
SQL - 조인DataBase/Oracle 2023. 8. 30. 17:27
1. 조인 - 집합연산자와 차이점: 집합 연산자는 SELECT의 결과를 세로로 연결한 것, 조인은 두 개 이상의 테이블을 가로로 연결 - 여러 테이블을 사용할 때 from절: - FROM절에는 여러 테이블을 지정하는 것이 가능하다 .(,로구분) (크로스조인, 카테시안곱) - 정확히는 열과 행으로 구성된 데이터 집합이면, 모두 FROM절에 지정가능(뷰,시퀀스) - 조인 조건이 없는 경우 문제점: - 결과로 나올 수 있는 모든 행을 조합함 ( A: 1,2 행 B: 1,2 행 > (11,12,21,22) ) - 따라서 정확한 데이터 함께 출력됨 - 조인할 테이블이 많아질 수록 정확한 데이터 뽑아내기 위해 고민을 많이 하자 (WHERE가 많은 역할을 해준다!) --크로스 조인 where 조건절 SELECT * ..
-
SQL - 다중행 함수DataBase/Oracle 2023. 8. 30. 16:13
1. 하나의 열에 출력 결과를 담는 다중행 함수 > 그룹 함수 또는 복수행 함수로 불림 > 여러행을 가지고 계산한 결과를 하나의 행으로 return > 다중행 함수를 사용한 SELECT절에는 기본적으로 여러 행이 결과로 나올 수 있는 열을 함께 사용 불가 * MYSQL과 MARIADB에선 가능 -> 가장 위에 있는 값 그냥 붙여줌 - SUM,COUNT,MAX,MIN,AVG > SUM: null값 제외 DISTINCT 중복 제외 > COUNT: *(null포함 행의 수 ), 특정 열(null제외), DISTINCT > MAX,MIN: 날짜데이터에서 날짜가 최근에 가까울 수록 큼 > AVG : 평균 DISTINCT 가능 *NULL값을 제외하는 특징이 있음으로, sum이나 AVG 구할 때 null처리 해야함에..
-
오라클 SQL - 단일행함수DataBase/Oracle 2023. 8. 30. 12:30
함수의 종류는 내장함수와 사용자 정의함수로 나눌 수 있다. 내장 함수 : 단일행함수: 데이터가 한 행씩 입력되고, 한 행당 결과가 하나씩 나옴 다중행함수: 여러 행이 입력되어 하나의 행으로 결과가 반환되는 함수 -> 다루는 자료형에 따라 조금 세분화된다. 1. 단일행 함수들 1.1 문자함수: UPPER,LOWER,INITCAP(첫글자만 대문자) SELECT ENAME, UPPER(ENAME), LOWER(ENAME), INITCAP(ENAME) FROM EMP; *SQL문은 대소문자 구분하지 않지만, 데이터는 대소문자를 구분한다. - 문자열길이 LENGTH ,LENGTHB(바이너리 크기 반환) - 문자열 일부 추출: SUBSTR (문자열데이터, 시작위치,추출길이) - 특정 문자 위치 검색(INDEX OF..