본문 바로가기

sql

(6)
[SQL] 이전, 이후 행과 관련된 키워드(LAG, LEAD / PRECEDING, FOLLOWING) 윈도우 함수에서 범위를 정의하거나 행의 위치를 나타내는 데 사용되는 키워드 정리 LAG() 현재 행을 기준으로 이전의 행을 가리켜 값을 가져오는 키워드 LAG(column, offset, default) -- column : 값을 가져올 컬럼명, -- offset : 몇 개의 행 이전의 값을 가져올건지 ( 3행 전의 값 등등.. ) -- default : 지정된 행이 없을때 반환할 기본값 설정 LEAD() / READ() 현재 행을 기준으로 이후 행을 가리켜 값을 가져오는 키워드 LEAD(column, offset, default) -- column : 값을 가져올 컬럼명, -- offset : 몇 개의 행 이후의 값을 가져올건지 ( 3행 후의 값 등등.. ) -- default : 지정된 행이 없을때 ..
[SQL] 순위를 구하는 함수 (RANK, DENSE_RANK, ROW_NUMBER) 2023.09.07 - [자격증고나리/⚽ SQLD 슈웃] - [SQL] 상위 n개를 선택하는 윈도우 함수 (LIMIT,TOP,ROWNUM, FETCH FRIST) 앞선 포스팅에서 상위 n개의 레코드를 구하는 함수를 살펴봤는데 이번엔 비슷하지만 다른 순위를 구하는 함수에 대해 알아보자 단순히 전체 데이터중 상위 n개를 구하는 LIMIT와 같은 함수와는 달리 각 레코드 별 순위를 매겨 그 중 n등까지를 조회하는 함수로 RANK(), DENSE_RANK(), ROW_NUMBER() 세 가지가 있다 유사하지만 디테일이 조금씩 다르니 차이를 잘 알아놓는게 포인트임!! 예를 들어, 학생테이블이 다음과 같을 때 점수를 기준으로 순위를 매겨보자 홍길동, 김길동,차길동 학생의 점수가 100점으로 같을 때 순위를 매길 수..
[SQL] 상위 n개를 선택하는 윈도우 함수 (LIMIT,TOP,ROWNUM, FETCH FRIST) SQL의 윈도우 함수에는 다양한 것이 있는데, 그 중에서 전체 레코드 중 상위 n 개를 선택하는 함수에 대해 알아보자 함수를 사용하는 방법과 위치에 조금씩 차이가 있지만 기본적인 기능은 동일하다. MySQL - LIMIT -- 학생테이블의 전체 데이터에서 맨 위부터 10개의 레코드를 조회 -- 전체 데이터를 select 한 후에 사용 SELECT * FROM student LIMIT 10; Oracle - ROWNUM / FETCH FIRST -- 학생테이블의 전체 데이터에서 10개까지의 행을 조회 -- where절에 조건을 주는 방식으로 사용 SELECT * FROM student WHERE ROWNUM
[SQL] NOT EXISTS NOT EXISTS 주로 서브쿼리와 함께 사용되며 서브쿼리의 결과가 존재하지 않을 때 해당 조건을 만족하는 행을 검색하는 데 사용됨 (= 서브쿼리에 데이터가 존재하지 않을 경우 데이터가 조회된다.) 예를 들어, 주문(Order) 테이블에서 아직 발송되지 않은 주문을 선택하는 SQL 쿼리를 작성할 때, SELECT OrderID, CustomerID FROM Orders WHERE NOT EXISTS ( SELECT 1 FROM Shipments WHERE Shipments.OrderID = Orders.OrderID ); 여기서 SELECT 문에 1을 사용하면 해당 테이블의 개수만큼 1로 된 행을 출력 1은 TRUE를 의미하며 값의 존재유무(조건을 만족하는 결과가 있는지 여부)가 더 중요하기 때문에 간편..
[SQL] 데이터베이스의 JOIN 0. JOIN 관계형 데이터베이스에서 두 개 이상의 테이블을 연결하고 관련된 데이터를 결합하는 데 사용되는 연산 1. INNER JOIN 두 개 이상의 테이블을 연결하고, 두 테이블 간에 일치하는 행만 반환 2. OUTER JOIN INNER JOIN의 반대 연산으로 두 개 이상의 테이블을 연결하고 일치하지 않는 행도 포함하여 결과를 반환하는 연산 2-1. LEFT OUTER JOIN 왼쪽 테이블의 모든 행을 유지하고 오른쪽 테이블에서 일치하는 행이 있는 경우에만 오른쪽 테이블의 해당 행을 가져옴 일치하지 않는 경우에는 NULL 값으로 채움 2-2. RIGHT OUTER JOIN LEFT OUTER JOIN의 반대개념. 오른쪽 테이블의 모든 행을 유지하고 왼쪽 테이블에서 일치하는 행이 있는 경우에만 해당..
데이터베이스의 함수 1. 데이터베이스 함수 데이터베이스에서 데이터를 처리, 변환, 계산하고 검색하기 위해 사용되는 기능 시스템이 제공하는 내장함수와 사용자가 직접 정의하는 함수로 나뉨 2. 내장함수 데이터베이스 시스템 자체에 내장되어 있는 함수로, 기본적인 데이터 조작 및 변환 작업을 수행 3. 사용자 정의 함수 데이터베이스 사용자가 직접 정의하고 구현한 함수로, 특정 비즈니스 논리를 수행하는 데 사용 4. 단일 행 함수 단일 행 함수는 각 행에 대해 독립적으로 작동하며, 결과를 해당 행에 반환 -- 문자열을 대문자로 변환하는 단일 행 함수 (Oracle) SELECT UPPER('hello') FROM dual; 5. 다중 행 함수 다중 행 함수는 여러 행을 대상으로 작동하며, 결과를 하나의 값을 반환합니다. 주로 서브쿼..