SQL 연산자 : ALL, ANY, SOME, IN, EXISTS

ALL, ANY, SOME, IN, EXISTS 는 SQL에서 서브쿼리와 함께 사용되는 연산자 입니다. 주로 비교 연산에서 여러 값을 다룰 때 활용됩니다. 이번 포스트에서는 각 연산자의 사용법에 대해서 간단하게 정리해보았습니다. 연산자 ALL ALL 연산자는 서브쿼리의 모든 행이 조건을 만족할 때 참이 됩니다. 이 예제에서는 your_table의 column2가 another_table의 모든 값보다 큰지를 확인합니다. ALL 연산자의 사용은 MAX 함수 사용과 … Read more

SQL 성능 비교 : 서브쿼리 vs JOIN

서브쿼리 vs JOIN : 서브쿼리와 JOIN 문은 데이터베이스에서 정보를 추출하는 두 가지 주요 방법입니다. 성능 차이는 데이터 양, 인덱스의 존재 여부, 데이터베이스 종류 등에 따라 다를 수 있습니다. 서브쿼리 서브쿼리는 메인 쿼리의 결과에 따라 서브 쿼리가 실행됩니다. 매번 서브쿼리를 실행하므로 데이터베이스 부하가 발생할 수 있습니다. 작은 데이터셋이나 적은 수의 행에 대한 필터링에서는 효과적일 수 있습니다. … Read more

SQL 복잡한 연산 : 서브쿼리

수학 연산에서 순서가 복잡한 연산은 괄호”()”로 묶어서 연산하듯, SQL에서 복잡한 연산을 할 때, “서브쿼리” 를 사용합니다. “서브쿼리”는 구조적으로 다른 SQL 문장 내에 포함된 쿼리를 의미합니다. 서브쿼리 구조 간단한 예로 서브쿼리의 구조를 살펴보겠습니다. 부서별 급여가 평균 금액 이상인 직원 찾는다고 하면 아래와 같은 쿼리를 가집니다. 위의 구조에서 외부 쿼리 (메인 쿼리)는 SELECT employee_id, employee_name, salary, department_id … Read more

DBMS : 옵티마이저

“옵티마이저”는 데이터베이스에서 SQL 쿼리를 실행할 때, 가능한 여러 실행 계획 중에서 최적의 방법을 선택하여 데이터 검색 또는 조작에 대한 성능을 최적화하는 역할을 하는 도구입니다. 쿼리 옵티마이저는 테이블과 인덱스의 통계 정보를 활용하여 비용을 고려하여 최상의 실행 계획을 결정합니다. 옵티마이저 주요 기능 최적의 실행 계획 선택 테이블과 인덱스의 통계 정보를 분석하고, 가능한 다양한 실행 계획을 생성합니다. 그 … Read more

SQL 조건문 : IF, CASE

SQL 조건문

SQL에서는 IF 함수와 CASE 표현식을 사용하여 조건문 을 구현할 수 있습니다. 조건문 사용 시 DBMS에 따라 주의해서 사용하여야 합니다. 조건문 IF IF의 사용법 IF문을 사용한 쿼리 예 orders 테이블의 order_amount가 1000보다 크면 “High” 같거나 낮으면 “Low”로 구분하는 쿼리 입니다. 이중 IF문 사용한 쿼리 예 order_amount가 1000보다 큰 경우 order_category가 ‘High’로 설정됩니다.order_amount가 500~1000 사이인 경우 order_category가 … Read more

SQL로 문자열 다듬기 : REPLACE, SUBSTRING, CONCAT

SQL로 문자열 다듬기 : 데이터를 조회하다 보면 조회 결과를 바로 사용하기 보다 문자열을 다듬어서 결과로 뽑아야 할 때가 있습니다. 예를 들면 아래와 같은 경우인데요. 이런 경우 SQL로 어떻게 문자열을 다듬을 수 있는지 정리하였습니다. 문자열 변경하기 : REPLACE 특정 문자열을 찾아서 다른 문자열로 변경하기 위해서는 REPLACE문을 사용합니다. REPLACE 문의 문법은 다음과 같습니다. ‘REPLACE’ 문은 ‘SELECT’와 사용해서 … Read more

SQL 그룹화 함수 : GROUP BY

카테고리 별로 연산을 하고 싶을 때는 group by 문을 사용하면 됩니다. 이번 포스트에서는 group by를 사용하는 경우와, 사용법, 그룹 조건절에 대해서 간단히 정리해보았습니다. GROUP BY 를 사용하는 경우 WHERE 절만을 사용하여 카테고리 별 연산을 할 수 있습니다. 하지만 이런 쿼리문은 총 쿼리문을 길게 만듭니다. 예를 들어 특정 카테고리의 합계를 구한다고 했을 때, 해당 카테고리의 값이 … Read more

SQL 집계 함수

간단한 ‘SQL 집계 함수’ 를 정리하였습니다. 조건절과 Group by 등과 함께 사용하여 다양한 분석을 할 수 있게 해주는 함수 입니다. COUNT(), MIN(), MAX(), AVG() 함수와 같은 간단한 집계 함수들을 모든 주요 RDBMS에서 지원합니다. 때문에 MySQL, Oracle, PostreSQL, SQL Server 등에서 동일하게 작동합니다. 데이터 카운트 * DISTINCT와 COUNT()의 사용 SQL에서 DISTINCT 키워드는 중복된 값을 제거하는 데 … Read more