Categories: 개발일지

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을 더욱 전문적으로 활용해 나가겠습니다.🚀

suover

Recent Posts

Java 자바 중첩 클래스(Nested Class)란?

중첩클래스란? 자바에서 중첩 클래스(Nested Class)는 자바 프로그래밍의 중요한 개념 중 하나로, 클래스 안에 다른 클래스를…

1개월 ago

Java 자바 Enum 열거형 사용법

Enum이란? Enum은 "enumeration"의 줄임말로, 특정 값들의 집합을 정의할 수 있는 특별한 클래스입니다. 예를 들어, 요일,…

2개월 ago

Java 자바 래퍼 클래스(Wrapper Class)란? 래퍼 클래스의 필요성

래퍼 클래스(Wrapper Class)란? 자바에서 래퍼 클래스는 기본 데이터 타입(Primitive Data Type)을 객체(Object)로 감싸는 클래스입니다. 자바의…

2개월 ago

Java 자바 StringBuilder 개념 및 특징 주요 메소드

서론 Java에서 문자열을 다룰 때, 문자열의 변경이 빈번하게 발생하는 경우라면 StringBuilder 클래스를 사용하는 것이 매우…

2개월 ago

웹 개발 FitOn 팀 프로젝트 회고

서론 현대인들은 점점 더 운동과 건강에 대한 관심을 가지고 있으며, 이를 체계적으로 관리하고 공유할 수…

2개월 ago

Java 자바 String 클래스 특징 및 메소드

String 클래스란? 자바에서 String 클래스는 가장 널리 사용되는 클래스 중 하나입니다. 문자열 시퀀스를 나타내며, 문자열을…

3개월 ago