본문 바로가기

SQL/SQL 예제

(9)
[W3Schools] MySQL 예제 SQL을 배우면서 개인적으로 어려웠던 문제를 정리합니다. 예제는 W3Schools의 MySQL Tutorial 환경에서 제공되었습니다 실습 환경: https://www.w3schools.com/mysql/trymysql.asp?filename=trysql_select_all [문제 1] 주문 수량이 가장 많은 주문 건의 상품 ID와 주문 수량 추출 SELECT ProductID, Quantity FROM OrderDetails where Quantity = (select max(Quantity) FROM OrderDetails); [문제 2] 가격이 상위 10위까지인 상품들의 평균 가격 추출 select avg(t.Price) as avg from (select * from Products order b..
[SQL] 원도우 함수(WINDOW FUNCTION)2 앞의 글에서 윈도우 함수에 구조와 기능 순위 관련 함수와 집계 함수에 대해 정리했습니다. 관련 내용을 보실 분들은 아래 링크로 이동해주세요 https://data-gongbu.tistory.com/17 [SQL] 원도우 함수(WINDOW FUNCTION)1 1. 원도우 함수 행과 행간의 관계를 정의하기 위해서 제공되는 함수 원도우 함수를 사용해서 순위, 합계, 평균, 행 위치 등을 조작할 수 있음. 윈도우 함수 구조 #구조 SELECT WINDOW_FUNCTION('인수') OVER data-gongbu.tistory.com 이어서 행 순서 관련 함수와 비율 관련 함수를 정리하겠습니다. 3. 행 순서 관련 함수 FRIST_VALUE(): 파티션에서 가장 처음에 나오는 값을 구함/ MIN 함수 결과와 동일..
[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] 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] Part2 문자열 - 초보자를 위한 SQL 200제의 문제를 바탕으로 작성되었습니다. 함수 기능 UPPER 대문자로 출력 LOWER 소문자로 출력 INITCAP 첫 번째 철자 대문자 출력 + 나머지 소문자 출력 SUBSTR 문자에서 지정된 길이의 문자열을 추출 LENGTH 문자열의 길이 출력 INSTR 문자에서 특정 철자의 위치를 출력 REPLACE 특정 철자를 다른 철자로 변경 LPAD 왼쪽 PAD 추가 RPAD 오른쪽 PAD 추가 TRIM 문자 출력시 양쪽이 철자를 잘라서 출력 RTRIM 문자 출력시 오른쪽 철자 잘라서 출력 LTRIM 문자 출력시 왼쪽 철자 잘라서 출력 [예제16] 1. 사원 테이블의 이름을 출력할 때, 대문자 출력, 소문자 출력, 첫 번째 철자는 대문자로 나머지 철자는 소문자로 출력하기 select..

728x90