집합연산자SQL에서 집합 연산자(Set Operators)는 두 개 이상의 쿼리 결과를 결합하여 하나의 결과 집합으로 표시할 때 사용됩니다.(두 테이블에 대한 집합 연산(합집합, 교집합 등)을 수행하는 연산자)MySQL에서는 주로 UNION, UNION ALL, INTERSECT, EXCEPT(또는 MINUS) 연산자를 통해 이러한 작업을 수행할 수 있습니다.특정한 기준키 없이 두 테이블의 레코드들에 대해서 합집합과 교집합 연산을 수행하므로 두 테이블의 칼럼 구성, 스키마가 동일해야 합니다.UNIONUNION 연산자는 두 쿼리의 결과 집합을 결합하면서 중복된 데이터를 제거합니다. 결과에는 중복되지 않는 고유한 행만 표시됩니다.UNION을 실행하면, 한쪽 테이블 내에서의 중복까지 제거가 됩니다.SELECT..
서브쿼리 문법서브쿼리란?서브쿼리는 메인 쿼리(Main Query) 안에 포함된 서브쿼리(또는 내부 쿼리라고도 함)입니다.SQL문의 내부에 DBMS가 제공하는 다양한 함수를 넣을 수 있는 것과 마찬가지로 함수가 들어갈 수 있는 위치에는 그 위치에 맞는 결과를 반환하는 또 다른 독립적인 SQL문을 서브쿼리라고 합니다.서브쿼리는 메인쿼리의 칼럼 사용 여부에 따라 연관 서브쿼리와 비연관 서브쿼리로 나뉩니다.연관(Correlated) 서브쿼리: 메인쿼리 칼럼을 서브쿼리에서 사용.비연관(Un-Correlated) 서브쿼리: 메인쿼리의 칼럼을 서브쿼리에서 사용하지 않음.서브쿼리는 메인 쿼리의 조건으로 사용되거나, 메인 쿼리에 필요한 값을 제공합니다.괄호 ( ) 안에 작성되며, 일반적으로 SELECT문을 포함합니다.서..
CTE (WITH 문)CTE(Common Table Expressions) 또는 WITH문은 SQL에서 쿼리를 간결하고 구조적으로 작성할 수 있도록 도와주는 기능입니다. CTE는 임시 테이블처럼 사용할 수 있는 쿼리를 정의하여, 복잡한 쿼리를 여러 단계로 나누거나 반복해서 사용할 때 유용합니다.CTE (WITH 문) 개념CTE는 WITH 절을 사용하여 이름이 지정된 쿼리를 미리 정의하고, 이후의 메인 쿼리에서 이를 참조할 수 있도록 합니다. WITH로 정의된 CTE는 일종의 임시 테이블 역할을 하며, 코드 가독성을 높이고 중첩 쿼리를 줄일 수 있어 복잡한 SQL을 더 쉽게 작성할 수 있습니다. 기본 구문WITH cte_name AS ( 서브쿼리)SELECT ...FROM cte_name;cte_na..
IF/IFNULL 함수IF 함수IF 함수는 특정 조건에 따라 다른 값을 반환할 때 사용됩니다. 단일 조건뿐 아니라 여러 조건을 다룰 때 중첩된 IF를 사용할 수 있습니다. 기본 구문IF(조건, 참일 때 반환 값, 거짓일 때 반환 값) 단일 조건 예시 직원 테이블에서 급여(salary)가 70000 이상인 경우 ‘High’, 그렇지 않으면 ‘Low’로 표시하는 예시입니다.SELECT employee_name, salary, IF(salary >= 70000, 'High', 'Low') AS salary_levelFROM employees;salary가 70000 이상이면 salary_level 열에 'High'가 표시되고, 그렇지 않으면 'Low'가 표시됩니다.다중 조건 (중첩된 IF) 예..
WINDOW 함수SQL의 윈도우 함수는 집계와 변환 작업을 특정한 범위(윈도우) 내에서 수행하여, 결과를 집계와는 다르게 각 행에 대해 별도의 값을 반환하는 함수입니다.윈도우 함수를 사용하면 데이터에 대한 누적 합계, 순위, 이동 평균 등을 쉽게 계산할 수 있습니다.윈도우 함수의 개념윈도우 함수는 각 행에 대한 연산을 수행하되, 전체 또는 특정 그룹(윈도우) 내에서 계산을 수행하여 개별 행에 결과를 반환합니다. 이를 통해 누적 합계, 이동 평균, 순위 등을 계산할 수 있으며, 행을 유지하면서 데이터를 분석할 때 유용합니다.행과 행 간의 관계를 나타내는 연산을 쉽게 하기 위한 함수윈도우 함수는 OVER 절을 사용하여 실행되며, 여기서 특정 기준(PARTITION BY, ORDER BY)을 설정하여 원하는 ..
연결(JOIN) 쿼리JOIN의 종류INNER JOIN: 두 테이블의 조인 조건을 만족하는 데이터만 반환합니다.LEFT JOIN (또는 LEFT OUTER JOIN): 왼쪽 테이블의 모든 데이터와, 오른쪽 테이블에서 조인 조건을 만족하는 데이터를 반환합니다. 조인 조건을 만족하지 않는 오른쪽 테이블의 데이터는 NULL로 표시됩니다.RIGHT JOIN (또는 RIGHT OUTER JOIN): 오른쪽 테이블의 모든 데이터와, 왼쪽 테이블에서 조인 조건을 만족하는 데이터를 반환합니다. 왼쪽 테이블에서 조건을 만족하지 않는 데이터는 NULL로 표시됩니다.FULL JOIN (또는 FULL OUTER JOIN): 두 테이블의 모든 데이터를 반환하며, 조인 조건을 만족하지 않는 부분은 NULL로 표시됩니다.CROSS ..
변환 쿼리문자열 변환 함수문자열 변환 함수는 텍스트 데이터를 다룰 때 사용되며, 특정 패턴으로 문자열을 변환하거나 길이를 조정하는 데 유용합니다. 주요 문자열 변환 함수UPPER: 문자열을 대문자로 변환합니다.SELECT UPPER(name) AS upper_name FROM students; LOWER: 문자열을 소문자로 변환합니다.SELECT LOWER(name) AS lower_name FROM students; CHR (또는 CHAR): 입력되는 ASCII 코드값에 대응하는 문자를 반환합니다.SELECT CHR(97) FROM DUAL;-- a 출력 CONCAT: 문자열을 연결합니다.SELECT CONCAT(first_name, ' ', last_name) AS full_name FROM stu..
집계 쿼리집계 함수 (Aggregate Functions)SQL의 집계 함수는 여러 행을 하나의 값으로 요약해주는 함수입니다. 집계 함수는 GROUP BY와 함께 자주 사용되며, 데이터를 요약하고 통계적인 정보를 제공할 때 매우 유용합니다. 주요 집계 함수COUNT: 특정 열에 있는 행의 개수를 계산합니다.SUM: 특정 열의 합계를 계산합니다.AVG: 특정 열의 평균값을 계산합니다.MIN: 특정 열의 최소값을 반환합니다.MAX: 특정 열의 최대값을 반환합니다.예시SELECT COUNT(id) AS total_studentsFROM students;이 쿼리는 students 테이블에서 학생의 전체 수를 계산하여 total_students라는 열로 반환합니다.SELECT AVG(age) AS average_..