logo

[SQLite] SELECT

SQLite에서 SELECT 문은 데이터베이스로부터 데이터를 조회하기 위해 사용되는 가장 기본적인 SQL 명령어 중 하나입니다. 이 명령어를 사용하여 특정 조건에 맞는 데이터를 검색하고, 결과를 정렬하며, 조회되는 데이터의 양을 제한할 수 있습니다. 아래의 설명과 예시를 통해 SELECT 문의 주요 구성 요소를 살펴보겠습니다.

 

SELECT FROM

SELECT FROM 구문은 데이터베이스의 특정 테이블로부터 하나 이상의 열(column)을 선택하여 데이터를 조회합니다.

SELECT Name, Age FROM Employees;

이 예시는 Employees 테이블에서 NameAge 열의 데이터를 조회합니다.

 

ORDER BY

ORDER BY 구문은 조회 결과의 순서를 지정할 때 사용됩니다. 기본적으로 오름차순으로 정렬되며, DESC 키워드를 사용하여 내림차순으로 정렬할 수 있습니다.

SELECT Name, Age FROM Employees ORDER BY Age DESC;

이 예시는 Employees 테이블에서 Age 열을 기준으로 내림차순으로 데이터를 정렬하여 NameAge를 조회합니다.

 

WHERE

WHERE 구문은 특정 조건에 부합하는 데이터만을 조회할 때 사용됩니다. 이를 통해 필요한 데이터만을 정확하게 필터링할 수 있습니다.

SELECT Name, Age FROM Employees WHERE Age >= 30;

이 예시는 Employees 테이블에서 Age가 30 이상인 직원의 NameAge만을 조회합니다.

 

LIMIT와 OFFSET

LIMIT 구문은 조회되는 데이터의 최대 행 수를 제한합니다. OFFSET 구문은 몇 번째 행부터 데이터를 조회할지 지정할 때 사용됩니다. OFFSET은 주로 LIMIT와 함께 사용됩니다.

SELECT Name, Age FROM Employees ORDER BY Age LIMIT 5 OFFSET 2;

이 예시는 Age를 기준으로 정렬한 결과에서 3번째 행부터 시작하여 최대 5개의 행을 조회합니다. 즉, 2번째 행까지는 건너뛰고 그 다음 행부터 데이터를 가져옵니다.

SQLite에서 GROUP BY, HAVING, SELECT ALL, SELECT DISTINCT는 데이터 집합을 분석하고 특정 조건에 맞는 데이터를 선택적으로 조회하는 데 사용됩니다. 이러한 구문들은 데이터를 그룹화하고, 그룹화된 데이터에 조건을 적용하며, 중복된 결과를 제어하는 데 유용합니다.

 

SELECT DISTINCT

SELECT DISTINCT 구문은 중복된 결과를 제거하고 유니크한 데이터만을 선택할 때 사용됩니다. 같은 값을 가진 데이터가 여러 개 있는 경우, 그 중 하나만 결과에 포함됩니다.

SELECT DISTINCT Department FROM Employees;

이 예시는 Employees 테이블에서 중복 없이 모든 부서를 조회합니다.

SELECT DISTINCT의 반대는 SELECT ALL로, 이는 중복된 결과를 모두 포함하여 조회합니다. SELECT ALL은 기본적으로 SELECT 구문과 동일합니다.

 

GROUP BY

GROUP BY 구문은 선택된 데이터를 특정 열의 값에 따라 그룹화합니다. 주로 집계 함수(AVG, COUNT, MAX, MIN, SUM 등)와 함께 사용되어, 각 그룹에 대한 통계 정보를 계산할 때 사용됩니다.

SELECT Department, COUNT(*) AS EmployeeCount
FROM Employees
GROUP BY Department;

이 예시는 Employees 테이블에서 각 Department별로 직원 수를 계산합니다.

 

HAVING

HAVING 구문은 GROUP BY로 그룹화된 결과에 조건을 적용할 때 사용됩니다. WHERE 구문과 비슷하지만, GROUP BY로 생성된 그룹에 대한 조건을 지정하는 데 사용됩니다.

SELECT Department, COUNT(*) AS EmployeeCount
FROM Employees
GROUP BY Department
HAVING COUNT(*) > 5;

이 예시는 직원 수가 5명을 초과하는 부서만을 조회합니다.

 

UNION

UNION 연산자는 두 개 이상의 SELECT 문의 결과를 합칠 때 사용됩니다. 중복된 행은 제거되며, 결과는 유니크한 행들만 포함합니다. UNION ALL을 사용하면 중복된 행도 포함하여 모든 결과를 합칩니다.

두 개의 테이블 EmployeesAEmployeesB가 있다고 가정할 때, 각 테이블에서 직원의 이름을 조회하고 이를 합치려면 다음과 같이 UNION을 사용할 수 있습니다.

SELECT Name FROM EmployeesA
UNION
SELECT Name FROM EmployeesB;

이 쿼리는 EmployeesAEmployeesB 테이블에서 모든 유니크한 직원 이름을 합쳐서 조회합니다.

 

VALUES

VALUES는 하나 이상의 행을 직접 생성하여 결과 집합을 만들 때 사용됩니다. 주로 테스트 데이터를 만들거나, INSERT 문에서 여러 행을 한 번에 삽입할 때 사용됩니다.

임시로 직원 이름과 나이를 포함하는 데이터 집합을 생성하려면 다음과 같이 VALUES를 사용할 수 있습니다.

VALUES ('John Doe', 30), ('Jane Doe', 25);

VALUES로 생성된 결과 집합을 UNION과 함께 사용하여 데이터를 합치는 경우도 있습니다.

SELECT Name, Age FROM Employees
UNION ALL
VALUES ('John Doe', 30), ('Jane Doe', 25);

이 예시에서는 Employees 테이블의 모든 직원 정보와 함께, 추가로 두 명의 직원 정보를 포함하는 결과 집합을 생성합니다.

Previous
테이블 수정
Next
JOIN