SQL Queries

기본 질의문 (Basic Query Statements)

SQL의 기본 질의문은 데이터를 조회하는 데 사용됩니다. 가장 기본적인 질의문에는 SELECT, FROM, WHERE 절이 포함됩니다.

SELECT

SELECT 절은 테이블에서 조회할 열을 지정합니다. 모든 열을 조회하려면 *를 사용할 수 있습니다.

예제: 모든 열 조회

SELECT * FROM Employees;

이 쿼리는 Employees 테이블의 모든 열과 모든 행을 조회합니다.

FROM

FROM 절은 데이터를 조회할 테이블을 지정합니다. SELECT 절에서 조회할 열을 지정한 후, FROM 절을 사용하여 데이터가 저장된 테이블을 지정합니다.

예제: 특정 테이블에서 데이터 조회

SELECT Name, Position
FROM Employees;

이 쿼리는 Employees 테이블에서 NamePosition 열의 데이터를 조회합니다.

WHERE

WHERE 절은 데이터를 필터링하는 조건을 지정합니다. 특정 조건을 만족하는 데이터만을 조회할 때 사용됩니다.

예제: 조건에 따라 데이터 조회

SELECT Name, Salary
FROM Employees
WHERE Salary > 60000;

이 쿼리는 Salary가 60000보다 큰 직원의 NameSalary를 조회합니다.

집계 함수 (Aggregate Functions)

집계 함수는 데이터 집합에 대한 통계 정보를 계산하는 데 사용됩니다. 주요 집계 함수로는 COUNT, SUM, AVG, MAX, MIN이 있습니다.

COUNT

COUNT 함수는 지정된 열 또는 전체 행의 개수를 반환합니다.

예제: 행의 개수 조회

SELECT COUNT(*) AS TotalEmployees
FROM Employees;

이 쿼리는 Employees 테이블의 총 행 수를 조회합니다.

SUM

SUM 함수는 지정된 열의 총합을 반환합니다.

예제: 총 급여 계산

SELECT SUM(Salary) AS TotalSalary
FROM Employees;

이 쿼리는 Employees 테이블의 모든 직원 급여의 총합을 계산합니다.

AVG

AVG 함수는 지정된 열의 평균값을 반환합니다.

예제: 평균 급여 계산

SELECT AVG(Salary) AS AverageSalary
FROM Employees;

이 쿼리는 Employees 테이블의 평균 급여를 계산합니다.

MAX

MAX 함수는 지정된 열의 최대값을 반환합니다.

예제: 최고 급여 조회

SELECT MAX(Salary) AS HighestSalary
FROM Employees;

이 쿼리는 Employees 테이블의 최고 급여를 조회합니다.

MIN

MIN 함수는 지정된 열의 최소값을 반환합니다.

예제: 최저 급여 조회

SELECT MIN(Salary) AS LowestSalary
FROM Employees;

이 쿼리는 Employees 테이블의 최저 급여를 조회합니다.

그룹화 (Grouping Data)

GROUP BYHAVING 절을 사용하여 데이터를 그룹화하고 집계할 수 있습니다. GROUP BY는 데이터를 그룹화하고, HAVING은 그룹화된 데이터에 조건을 적용합니다.

GROUP BY

GROUP BY 절은 하나 이상의 열을 기준으로 데이터를 그룹화합니다. 집계 함수와 함께 사용되어 그룹별로 집계된 결과를 반환합니다.

예제: 부서별 평균 급여 계산

SELECT DepartmentID, AVG(Salary) AS AverageSalary
FROM Employees
GROUP BY DepartmentID;

이 쿼리는 DepartmentID를 기준으로 데이터를 그룹화하고, 각 부서의 평균 급여를 계산합니다.

HAVING

HAVING 절은 GROUP BY로 그룹화된 결과에 조건을 적용합니다. WHERE 절과 유사하지만, GROUP BY 이후 집계된 데이터를 필터링할 때 사용됩니다.

예제: 평균 급여가 60000 이상인 부서 조회

SELECT DepartmentID, AVG(Salary) AS AverageSalary
FROM Employees
GROUP BY DepartmentID
HAVING AVG(Salary) >= 60000;

이 쿼리는 DepartmentID를 기준으로 그룹화한 후, 평균 급여가 60000 이상인 부서만 조회합니다.

정렬 (Sorting Data)

ORDER BY 절은 쿼리 결과를 정렬하는 데 사용됩니다. 정렬 기준으로 하나 이상의 열을 지정할 수 있으며, 오름차순(ASC) 또는 내림차순(DESC)으로 정렬할 수 있습니다.

ORDER BY

예제: 급여에 따라 오름차순 정렬

SELECT Name, Salary
FROM Employees
ORDER BY Salary ASC;

이 쿼리는 Employees 테이블의 데이터를 급여 기준으로 오름차순으로 정렬하여 조회합니다.

예제: 급여에 따라 내림차순 정렬

SELECT Name, Salary
FROM Employees
ORDER BY Salary DESC;

이 쿼리는 Employees 테이블의 데이터를 급여 기준으로 내림차순으로 정렬하여 조회합니다.

조인 (Joining Tables)

조인은 두 개 이상의 테이블을 연결하여 관련 데이터를 조회하는 데 사용됩니다. 주요 조인 유형으로는 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN이 있습니다.

INNER JOIN

INNER JOIN은 두 테이블에서 공통된 열의 값이 일치하는 행만을 반환합니다.

예제: INNER JOIN

SELECT Employees.Name, Departments.DepartmentName
FROM Employees
INNER JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

이 쿼리는 EmployeesDepartments 테이블을 DepartmentID를 기준으로 조인하여 직원의 이름과 부서 이름을 조회합니다.

LEFT JOIN

LEFT JOIN은 왼쪽 테이블의 모든 행과, 오른쪽 테이블에서 일치하는 행을 반환합니다. 오른쪽 테이블에 일치하는 행이 없으면 NULL 값이 반환됩니다.

예제: LEFT JOIN

SELECT Employees.Name, Departments.DepartmentName
FROM Employees
LEFT JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

이 쿼리는 Employees 테이블의 모든 행과, Departments 테이블에서 일치하는 부서 이름을 반환합니다. 부서가 없는 직원의 경우 DepartmentName은 NULL입니다.

RIGHT JOIN

RIGHT JOIN은 오른쪽 테이블의 모든 행과, 왼쪽 테이블에서 일치하는 행을 반환합니다. 왼쪽 테이블에 일치하는 행이 없으면 NULL 값이 반환됩니다.

예제: RIGHT JOIN

SELECT Employees.Name, Departments.DepartmentName
FROM Employees
RIGHT JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

이 쿼리는 Departments 테이블의 모든 행과, Employees 테이블에서 일치하는 직원의 이름을 반환합니다. 직원이 없는 부서의 경우 Name은 NULL입니다.

FULL JOIN

FULL JOIN은 왼쪽과 오른쪽 테이블의 모든 행을 반환하며, 일치하지 않는 경우 NULL 값을 반환합니다. LEFT JOINRIGHT JOIN의 조합과 유사합니다.

예제: FULL JOIN

SELECT Employees.Name, Departments.DepartmentName
FROM Employees
FULL JOIN Departments ON Employees.DepartmentID = Departments.DepartmentID;

이 쿼리는 EmployeesDepartments 테이블의 모든 행을 반환합니다. 일치하는 행은 결합되어 반환되고, 일치하지 않는 경우에는 NULL 값이 포함됩니다.

결론 (Conclusion)

SQL 질의문은 데이터베이스에서 필요한 정보를 효율적으로 조회하고 조작하는 데 필수적인 도구입니다. 기본 질의문, 집계 함수, 그룹화, 정렬, 조인 등의 기능을 이해하고 활용하면, 복잡한 데이터 분석과 보고서를 생성할 수 있습니다. SQL을 통해 데이터베이스에서 정보를 효율적으로 추출하고, 데이터를 집계 및 정렬하며, 여러 테이블의 데이터를 결합하여 통찰력 있는 분석을 수행할 수 있습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *