프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 다음은 식당 리뷰 사이트의 회원 정보를 담은 MEMBER_PROFILE 테이블입니다. MEMBER_PROFILE 테이블은 다음과 같으며 MEMBER_ID, MEMBER_NAME, TLNO, GENDER, DATE_OF_BIRTH는 회원 ID, 회원 이름, 회원 연락처, 성별, 생년월일을 의미합니다. Column name Type Nullable MEMBER_ID VARCHAR(100) FALSE MEMBER_NAME VARCHAR(50) FALSE TLNO VARCHAR(50) TRUE GENDER..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제설명 다음은 어느 의류 쇼핑몰에 가입한 회원 정보를 담은 USER_INFO 테이블입니다. USER_INFO 테이블은 아래와 같은 구조로 되어있으며, USER_ID, GENDER, AGE, JOINED는 각각 회원 ID, 성별, 나이, 가입일을 나타냅니다. Column name Type Nullable USER_ID INTEGER FALSE GENDER TINYINT(1) TRUE AGE INTEGER TRUE JOINED DATE FALSE GENDER 컬럼은 비어있거나 0 또는 1의 값을 가지며 0인 경..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 다음은 식품공장의 정보를 담은 FOOD_FACTORY 테이블입니다. FOOD_FACTORY 테이블은 다음과 같으며 FACTORY_ID, FACTORY_NAME, ADDRESS, TLNO는 각각 공장 ID, 공장 이름, 주소, 전화번호를 의미합니다. COLUMN NAME TYPE NULLABLE FACTORY_ID VARCHAR(10) FALSE FACTORY_NAME VARCHAR(50) FALSE ADDRESS VARCHAR(100) FALSE TLNO VARCHAR(20) TRUE 문제 FOOD..
FLASHBACK QUERY 백업을 복구하지 않고 과거 시점의 데이터를 조회할 때 FLASHBACK QUERY를 사용한다. FLASHBACK은 최대 15분 전의 데이터를 조회할 수 있다. -- 테이블의 N분전 데이터 검색 SELECT * FROM TABLE_NAME AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL 'N' MINUTE) EX ) 사원 테이블의 5분 전 KING 데이터 -- KING의 현재 월급 조회 SELECT * FROM EMP WHERE ENAME = 'KING'; -- KING의 월급을 0으로 변경한다. UPDATE EMP SET SAL = 0 WHERE ENAME = 'KING'; COMMIT; SELECT * FROM EMP AS OF TIMESTAMP (..
1. WITH ~ AS 동일한 SQL이 반복되어 사용될 때 성능을 높이기 위해 WITH절을 사용한다. WITH TABLE_NAME AS () SELECT COL1, COL2, ... FROM TABLE_NAME ... 검색 시간이 오래걸리는 SQL이 하나의 SQL 내에서 반복되어 사용될 때 성능을 높이기 위한 방법으로 WITH절을 사용한다. WITH절 이후에 테이블 이름을 지정하고, AS 이후에 임시 저장영역(Temporary Tablespace)을 정의 해 저장한다 EX ) 직업과 직업별 토탈 월급을 출력하는데 직업별 토탈 월급들의 평균값보다 더 큰 값만 출력 -- WITH절 없이 조회 SELECT JOB, SUM(SAL) AS 월급총합 FROM EMP GROUP BY JOB HAVING SAL > (..
임시테이블 생성하기 - CREATE TEMPORARY TABLE 데이터를 임시로 보관하는 임시 테이블을 생성할 때 CREATE TEMPORARY TABLE문을 사용한다. CREATE GLOBAL TEMPORARY TABLE 테이블명 (COL1 DATATYPE, COL2 DATATYPE, ...) ON COMMIT DELETE ROWS / ON COMMIT PRESERVE ROWS; 임시 테이블 생성임을 나타내기 위해 CREATE와 TABLE 사이에 GLOBAL TEMPORARY를 기술한다. 임시 테이블은 데이터를 영구 저장하지 않는다. 데이터를 보관하는 주기를 결정하는 옵션을 기술한다. ON COMMIT DELETE ROWS : 임시 테이블에 데이터를 입력하고 COMMIT할 때까지 데이터를 보관 ON C..
1. 계층 순서로 출력하기 계층형 질의문(Hierachical Query)를 사용해 데이터를 선택하여 계층 순서로 결과를 출력한다. 계층형 질의문에서 쓰이는 용어 용어 설명 노드(node) 표시된 항목 레벨(level) 트리(tree) 구조에서 각각의 계층 루트(root) 트리(tree) 구조에서 최상위에 있는 노드 부모(parent) 트리(tree) 구조에서 상위에 있는 노드 자식(child) 트리(tree) 구조에서 하위에 있는 노드 계층형 질의문 형식 예시 SELECT LEVEL, COL1, COL2, ... FROM TABLE_NAME START WITH ROOT_NODE CONNECT BY PRIOR PARENT_NODE = CHILD_NODE 계층형 질의문의 키워드인 CONNECT BY와 ST..
1. 데이터 입력하기 INSERT () VALUES () 에서 VALUES절을 제외하고 서브쿼리를 사용하면 여러 개의 행을 한 번에 테이블에 입력할 수 있다. EX ) EMP 테이블의 구조를 그대로 복제한 EMP2테이블에 부서 번호가 10번인 사원들의 사원 번호, 이름, 월급, 부서 번호를 한번에 입력하라 -- EMP2 테이블 생성 (EMP 테이블 구조 복사) CREATE TABLE EMP2 AS SELECT * FROM EMP WHERE 1 = 2; INSERT INTO EMP2(EMPNO, ENAME, SAL, DEPTNO) SELECT EMPNO, ENAME, SAL, DEPTNO FROM EMP WHERE DEPTNO = 10; VALUES절에 VALUES 대신 입력하고자 하는 서브쿼리문을 기술한..