SQL 기초 – WHERE, 연산자, AS, LIMIT, DISTINCT 개념 정리

개발일지

이번 주는 SQL에 대해 좀 더 깊게 학습하였습니다. 다양한 상황에 유연하게 대처할 수 있는 쿼리를 작성하면서 여러 상황에서의 경험을 쌓고 있습니다. SQL 문법과 기능을 더 자세히 이해하고 활용함으로써 데이터베이스 관리 및 조회에 대한 역량을 향상시키고 있습니다.

이번 글에서 정리할 내용은 WHERE, 연산자, AS, LIMIT, DISTINCT 입니다. 학습한 내용을 간략하게 정리하고 복습하는 시간을 갖고자 합니다.

WHERE 절

WHERE 절은 SQL 쿼리에서 데이터를 필터링하고 특정 조건을 만족하는 행만을 선택하는 역할을 합니다. 이를 통해 데이터베이스에서 필요한 정보만을 검색할 수 있습니다.

단일 조건 사용

WHERE 절은 단일 조건을 지정하여 특정 열의 값을 기준으로 행을 선택할 수 있습니다. 예를 들어, 월급이 50000 이상인 사원을 선택하려면 다음과 같이 사용할 수 있습니다.

SQL
SELECT *
FROM employees
WHERE salary >= 50000;
SQL

다중 조건 사용

WHERE 절에서는 AND, OR, NOT 등의 논리 연산자를 사용하여 여러 조건을 결합할 수 있습니다. 예를 들어, 월급이 50000 이상이면서 부서가 ‘IT’인 사원을 선택하려면 다음과 같이 사용할 수 있습니다.

SQL
SELECT *
FROM employees
WHERE salary >= 50000 AND department = 'IT';
SQL

패턴 매칭

LIKE 연산자를 사용하여 문자열 패턴에 일치하는 행을 선택할 수 있습니다. 예를 들어, 이름이 ‘김’으로 시작하는 사원을 찾으려면 다음과 같이 사용할 수 있습니다.

SQL
SELECT *
FROM employees
WHERE name LIKE '김%';
SQL

범위 지정

BETWEEN 연산자를 사용하여 값의 범위를 지정하여 행을 선택할 수 있습니다. 예를 들어, 월급이 50000에서 80000 사이인 사원을 선택하려면 다음과 같이 사용할 수 있습니다.

SQL
SELECT *
FROM employees
WHERE salary BETWEEN 50000 AND 80000;
SQL

NULL 값 확인

IS NULL 또는 IS NOT NULL을 사용하여 특정 열이 NULL인지 또는 NULL이 아닌지를 확인할 수 있습니다.

SQL
SELECT *
FROM employees
WHERE email IS NULL;
SQL

💡WHERE 절은 다양한 조건을 조합하여 원하는 결과를 얻을 수 있도록 유연성을 제공합니다. 데이터베이스에서 필요한 정보를 정확하게 추출하려면 적절한 조건을 사용하여 WHERE 절을 작성해야 합니다.

연산자

비교연산자

비교 연산자설명예제
=두 값이 동일한지를 확인합니다.salary = 50000
<왼쪽 값이 오른쪽 값보다 작은지를 확인합니다.salary < 50000
>왼쪽 값이 오른쪽 값보다 큰지를 확인합니다.salary > 50000
<=왼쪽 값이 오른쪽 값보다 작거나 같은지를 확인합니다.salary <= 50000
>=왼쪽 값이 오른쪽 값보다 크거나 같은지를 확인합니다.salary >= 50000
LIKE문자열 패턴에 대한 일치 여부를 확인합니다.
% : 1개 이상의 모든 문자열을 나타냅니다.
name LIKE ‘김%’
LIKE문자열 패턴에 대한 일치 여부를 확인합니다.
‘_’ : 정확히 한 문자를 나타냅니다.
name LIKE ‘김_’
BETWEEN값이 주어진 범위 내에 있는지를 확인합니다.(이상,이하)salary BETWEEN 50000 AND 80000
IS NULL특정 열의 값이 NULL인지를 확인합니다.email IS NULL
IS NOT NULL특정 열의 값이 NULL이 아닌지를 확인합니다.email IS NOT NULL

💡이 표는 주로 WHERE 절에서 사용되는 일반적인 비교 연산자에 대한 설명과 각각의 예제를 보여줍니다. 이러한 연산자를 조합하여 SQL 쿼리를 작성하면 데이터베이스에서 원하는 조건을 충족하는 데이터를 검색할 수 있습니다.

논리연산자

논리 연산자 설명예제
AND모든 조건이 참일 때 전체 조건이 참이 됩니다.salary > 50000 AND department = ‘IT’
OR여러 조건 중 하나만 참이면 전체 조건이 참이 됩니다.department = ‘IT’ OR department = ‘인사’
NOT주어진 조건을 부정하여 조건이 거짓이면 참이 됩니다.NOT department = ‘재무’
IN주어진 값 목록 중 하나와 일치하는 경우 참이 됩니다.department IN (‘IT’, ‘인사’)

💡이 표는 주로 사용되는 논리 연산자에 대한 설명과 각각의 예제를 나타냅니다. 논리 연산자를 조합하여 SQL 쿼리를 작성하면 여러 조건을 고려한 복잡한 검색을 수행할 수 있습니다.

집합연산자 (SET OPERATOR)

SQL 집합 연산자는 두 개 이상의 SELECT 문의 결과를 결합하거나 조작하는 데 사용됩니다. 주요 집합 연산자에는 UNION, INTERSECT, EXCEPT 등이 있습니다.

UNION

UNION 연산자는 두 개 이상의 SELECT 문의 결과를 합치고 중복된 행을 제거합니다. 각 SELECT 문의 열의 수와 데이터 유형이 일치해야 합니다.

SQL
SELECT column1, column2 FROM table1
UNION
SELECT column1, column2 FROM table2;
SQL

UNION ALL

UNION ALL 연산자는 UNION과 유사하지만 중복된 행을 제거하지 않고 모든 결과를 포함합니다.

SQL
SELECT column1, column2 FROM table1
UNION ALL
SELECT column1, column2 FROM table2;
SQL

INTERSECT

INTERSECT 연산자는 두 개 이상의 SELECT 문의 결과에서 교집합을 찾아 반환합니다. 열의 수와 데이터 유형이 일치해야 합니다.

SQL
SELECT column1, column2 FROM table1
INTERSECT
SELECT column1, column2 FROM table2;
SQL

EXCEPT 또는 MINUS

EXCEPT 또는 MINUS 연산자는 첫 번째 SELECT 문의 결과에서 두 번째 SELECT 문의 결과를 제외한 결과를 반환합니다.

SQL
SELECT column1, column2 FROM table1
EXCEPT
SELECT column1, column2 FROM table2;
SQL

💡각 집합 연산자는 특정한 사용 사례에 따라 유용합니다. UNION ALL은 중복 행을 제거하지 않고 모든 결과를 합치기 때문에, 경우에 따라서는 UNION보다 더 적절한 선택일 수 있습니다.

AS (별칭)


별칭(Alias)은 SQL 쿼리에서 열 이름이나 테이블 이름에 대한 대체 명칭을 부여하는 기능입니다. 주로 쿼리 결과의 가독성을 높이거나 코드를 간결하게 만들기 위해 활용됩니다.

열 별칭

열 별칭은 특정 열에 대해 사용되며, AS 키워드를 통해 정의됩니다. 주로 다음과 같은 상황에서 활용됩니다.

SQL
SELECT first_name AS "이름", last_name AS "성"
FROM employees;
SQL

테이블 별칭

테이블 별칭은 특정 테이블에 대한 간소화된 이름을 제공합니다. 주로 긴 테이블 이름을 간결하게 표현하거나 여러 테이블을 조인할 때 사용됩니다.

SQL
SELECT e.first_name, e.last_name, d.department_name
FROM employees AS e
JOIN departments AS d ON e.department_id = d.department_id;
SQL

별칭의 활용

  • 의미 부여: 결과를 더 의미 있게 표현하기 위해 사용됩니다. 가독성을 향상시켜 쿼리 결과를 이해하기 쉽게 만듭니다.
  • 계산된 열: 복잡한 계산 결과에 대해 간결한 이름을 부여하여 사용합니다.
  • 테이블 조인: 여러 테이블을 조인할 때 테이블에 대한 간단하면서 명료한 별칭을 사용하여 쿼리를 간결하게 작성할 수 있습니다.
SQL
SELECT e.first_name, e.salary * 1.1 AS "인상된 급여"
FROM employees AS e;
SQL

💡별칭을 사용하면 SQL 쿼리의 가독성을 향상시키고 코드를 더 간결하게 만들 수 있습니다.

LIMIT 과 DISTINCT

LIMIT, DISTINCT는 각각 데이터 검색, 중복 제거와 관련된 기능을 수행하는 명령어 및 키워드입니다.

LIMIT (제한)

  • LIMIT는 SELECT 문에서 검색된 결과의 행 수를 제한하는데 사용됩니다.
  • 일반적으로 특정 범위의 결과만 필요할 때 사용됩니다.
SQL
SELECT 열1, 열2, ...
FROM 테이블명
WHERE 조건
LIMIT 개수;
SQL

✔️예시: 처음 5개의 결과만 선택하는 경우

SQL
SELECT * FROM 테이블명 LIMIT 5;
SELECT * FROM 테이블명 LIMIT 5,2; --5부터 2개까지만 출력 
SQL

DISTINCT (중복 제거)

  • DISTINCT는 SELECT 문에서 중복된 값을 제거하여 고유한 값을 반환하는 데 사용됩니다.
  • 하나 이상의 열에 대해 중복을 제거할 수 있습니다.
SQL
SELECT DISTINCT 열1, 열2, ...
FROM 테이블명
WHERE 조건;
SQL

✔️예시: 특정 열에서 중복을 제거한 고유한 값들을 선택하는 경우

SQL
SELECT DISTINCT 열명 FROM 테이블명;
SQL

💡이러한 명령어들은 데이터베이스에서 유용하게 사용됩니다. LIMIT를 사용하여 원하는 개수만큼의 결과를 얻을 수 있고, DISTINCT를 사용하여 중복된 값을 제거한 고유한 값들을 얻을 수 있습니다.

마무리

이번 주는 SQL에 대한 깊은 학습으로 실전적인 능력을 키워나가는 데에 큰 도움이 되었습니다. WHERE, 연산자, AS, LIMIT, DISTINCT 등의 개념을 정리하고 복습함으로써 데이터베이스 관리에 대한 기초를 더욱 견고하게 다졌습니다. 앞으로도 다양한 프로젝트와 학습을 통해 SQL을 더욱 전문적으로 활용해 나가겠습니다.🚀

Leave a Comment