본문 바로가기

SQL

(19)
[SQL] 원도우 함수(WINDOW FUNCTION)1 1. 원도우 함수 행과 행간의 관계를 정의하기 위해서 제공되는 함수 원도우 함수를 사용해서 순위, 합계, 평균, 행 위치 등을 조작할 수 있음. 윈도우 함수 구조 #구조 SELECT WINDOW_FUNCTION('인수') OVER (PARTITION BY '컬럼' ORDER BY '컬럼' WINDOWING 절) FROM 테이블명; ARGUMENTS(인수): 윈도우 함수에 따라 0 ~ N개의 인수를 설정 PARTITION BY: 전체 집합 기준에 의해 소그룹으로 분할 ORDER BY : 어떤 항목에 대해 순위를 지정할지 order by 절을 기술 WINDOWING: 행 기준의 범위를 지정 WINDOWING ROWS: 부분집합인 원도우의 크기를 물리적 단위로 행의 집합을 지정 RANGE: 논리적 주소에 의해..
[SQL] Part2 DECODE, CASE (IF문 ) - 초보자를 위한 SQL 200제의 문제를 바탕으로 작성되었습니다. DECODE(컬럼, 조건1, 결과1, 조건2, 결과2, 조건3, 결과3,..., default): 컬럼에 따른 조건i와 결과i을 출력. SQL 의미 DECODE(COL, A, X, Y) COL= A면 X 출력, COL ≠ A면 Y출력 DECODE(COL, A, X, B, Y , default) COL = A면 X출력, COL = B면 Y출력, 둘 다 아니면 default값 출력 (default는 생략 가능) CASE 함수: 특정 값을 원하는 방식으로 변환해서 표현 #형식 CASE 컬럼 WHEN 조건1 THEN 결과1 WHEN 조건2 THEN 결과2 ELSE 결과3 END; DECODE 함수와 CASE함수의 차이점은 DECODE의 경우 등..
[SQL] Part2 NVL, NVL2 (NULL 값 처리) - 초보자를 위한 SQL 200제의 문제를 바탕으로 작성되었습니다. NULL 값 대신에 다른 값을 출력하는 기능을 하는 NVL, NVL2 함수에 대해 정리합니다. NVL('특정 컬럼', '특정값' ): 특정 컬럼의 값이 NULL인 경우 특정값으로 출력하고 싶을때 사용. NVL2('NULL값이 있는 컬럼', 'NOT NULL인 경우', 'NULL인 경우' ): NULL값이 아닐 경우 특정값으로 출력하고 싶을때 사용. 1. NVL select ename, comm, nvl(comm, 0) from emp; comm이 null이 아닌 경우 자신의 comm이 출력되고 null인 경우 0이 출력됩니다. 실제 데이터가 0으로 변경되는 것은 아니고 출력되는 쿼리에만 0으로 보이는 것입니다. sal과 comm을 더한 ..
[SQL] 암시적 형 변환 - 초보자를 위한 SQL 200제의 문제를 바탕으로 작성되었습니다. 암시적 형 변환: 문자형 데이터를 숫자형 데이터로 암시적으로 형 변환하는 것을 의미. 암시적 형 변환을 이해하기 위해 sal(월급) 변수를 일부러 문자형으로 만들어 보겠습니다. #테이블 생성 CREATE TABLE ex( ename VARCHAR2(10), sal VARCHAR2(10)); #데이터 입력 INSERT INTO ex VALUES('SCOTT', '3000'); INSERT INTO ex VALUES('SMITH', '1200'); #데이터 조회 SELECT * FROM ex; 월급이 3000인 사람을 조회하고 싶을 경우 sal = '3000'인 문자형 = 문자형의 쿼리를 작성해야 합니다. SELECT ename, sal F..
[프로그래머스] SQL 고득점 Kit 문제 - SUM, MAX, MIN 해당 페이지는 프로그래머스의 SQL 문제에 대한 제 풀이 방법을 정리한 내용입니다. [문제1] 최댓값 구하기: 가장 최근에 들어온 동물 구하기 SELECT DATETIME FROM ANIMAL_INS WHERE DATETIME = (SELECT MAX(DATETIME) FROM ANIMAL_INS); [문제2] 최솟값 구하기: 가장 먼저 들어온 동물 구하기 SELECT DATETIME FROM ANIMAL_INS WHERE DATETIME = (SELECT MIN(DATETIME ) FROM ANIMAL_INS); [문제3] 동물 수 구하기: 동물 보호소에 동물이 몇 마리 들어왔는지 조회하기 SELECT COUNT(ANIMAL_TYPE) FROM ANIMAL_INS; [문제4] 중복 제거하기: 동물 이름..
[SQL] Part2 날짜형 데이터 - 초보자를 위한 SQL 200제의 문제를 바탕으로 작성되었습니다. 함수 기능 MONTHS_BETWEEN 날짜와 날짜 사이의 개월 수를 출력 ADD_MONTHS 특정 날자에서 개월 수를 더한 날짜 출력 NEXT_DAY 특정 날짜 다음에 돌아오는 날짜 출력 LAST_DAY 특정 날짜가 있는 달의 마지막 날짜 출력 TO_CHAR 날짜형, 숫자형 데이터를 문자형 데이터로 변환 TO_DATE 문자를 날짜형으로 변환 [예제26] 1. 이름을 출력하고 입사한 날짜부터 오늘까지 총 몇달을 근무했는지 출력 select ename, months_between(sysdate, hiredate) as 날짜 from emp; sysdate: 오늘 날짜 확인하는 함수 MONTHS_BETWEEN(최신 날짜, 예전 날짜)로 입력 ..
[프로그래머스] SQL 고득점 Kit 문제 - SELECT 해당 페이지는 프로그래머스의 SQL 문제에 대한 제 풀이 방법을 정리한 내용입니다. SQL 공부하면서 알게 된 페이지입니다! 주어진 SQL 문제에 대한 코드를 작성하는 건데 저는 아직 초보라 그런지 번호가 올라갈수록 꽤 오래 걸리더라고요 ㅎㅎ 그래도 기본기부터 어려운 문제까지 맛보기 좋은 것 같아 가져왔습니다. 프로그래머스에 관심이 있으신 분들은 아래링크로 이동해주세요! https://school.programmers.co.kr/learn/challenges?tab=sql_practice_kit 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 위의 링크에 ..
[SQLD] 자격증 공부내용 정리 작년에 SQLD 공부를 하면서 공책 정리했던 내용입니다. 원래 공부할 때 공책 정리 후, 시험 보기 전에 공책만 보는 편인데 SQL 다시 공부하면서 제가 보기 편하라고 블로그에 올립니다. 저 혼자 공부하면서 정리한 거라 다른 분들께 도움이 될지는 모르겠지만 보실 분들은 보시고 도움이 됐으면 좋겠습니다! (이론은 2021 이기적 SQL 개발자 이론서 + 기출문제 해당 책을 기반으로 공부했습니다.) 자격증 준비하기 전에 2,3 주면 충분하다 이런 후기를 많이 봤었는데, 제 공부 방식이 이론 같은 거 하나씩 다 읽어보고 흐름 잡고 이해할 때까지 계속 보는 편이라 그런지 저는 한 달 정도는 걸린 거 같습니다. 물론 자격증 준비 당시에 SQL을 처음 접해봐서 더 그럴 수도 있습니다 ㅎㅎ 확실히 이미 문법을 아시는..

728x90