SQLite - WHERE 절: 정확한 데이터 검색의 관문
안녕하세요, SQLite 열정가 여러분! 데이터베이스 질의의 흥미로운 여정에 여러분의 가이드로서 기쁜 마음으로 인사드립니다. 오늘 우리는 SQLite 도구 상자에서 가장 강력한 도구 중 하나인 WHERE 절에 깊이 다물어보겠습니다. 이 튜토리얼의 끝을 맺을 때쯤이면, 프로처럼 데이터를 필터링하여 친구들과 미래의 동료들에게 감탄을 자아낼 수 있을 것입니다!
WHERE 절이란?
먼저 기본적인 내용부터 알아보겠습니다. 상상해 보세요, 대단한 도서관(데이터베이스)이 가득 차 있다고요. 그런데 2010년 이후에 쓰인 미스터리 소설을 모두 찾고 싶다면 어떻게 할까요? 이때 WHERE 절이 유용하게 쓰입니다! WHERE 절은 마법의 필터처럼 특정 데이터를 찾아내는 데 도움을 줍니다.
WHERE 절은 SQLite에서 데이터베이스 질의 결과에 반환되는 데이터에 대한 조건을 지정하는 데 사용됩니다. 데이터베이스에게 "이 정보만 보여줘!"라고 말하는 것과 같습니다.
문법: WHERE 절의 문법
이제 WHERE 절의 문법을 살펴보겠습니다.처음에는 조금 두려울 수 있지만, 단계별로 설명하겠으니 걱정 마세요!
SELECT column1, column2, ...
FROM table_name
WHERE condition;
각 부분의 의미는 다음과 같습니다:
-
SELECT
: 원하는 열을 지정합니다. -
FROM
: SQLite가 어떤 테이블을 참조할지 지정합니다. -
WHERE
: 마법이 일어나는 곳입니다! 조건을 이곳에 작성합니다.
조건은 다음과 같은 하나 이상의 표현식으로 구성될 수 있습니다:
- 비교 연산자 (=, <>, <, >, <=, >=)
- 논리 연산자 (AND, OR, NOT)
- 특수 연산자 (BETWEEN, LIKE, IN)
이제 몇 가지 예제를 통해 이를 명확히 이해해 보겠습니다!
예제: WHERE 절 활용
예제 1: 기본 비교
가정해 봅시다, students
테이블이 id
, name
, age
열을 가지고 있다고요. 18세인 학생들을 찾고 싶습니다.
SELECT name
FROM students
WHERE age = 18;
이 질의는 정확히 18세인 학생들의 이름을 반환합니다. 간단하죠?
예제 2: 여러 조건
이제 18세이고 이름이 'A'로 시작하는 학생들을 찾고 싶다면 어떻게 할까요?
SELECT name, age
FROM students
WHERE age = 18 AND name LIKE 'A%';
이 질의는 두 조건을 결합합니다:
-
age = 18
: 학생이 18세여야 합니다. -
name LIKE 'A%'
: 학생의 이름이 'A'로 시작해야 합니다.%
는 "어떤 문자가 뒤따를 수 있다"는 의미의 와일드카드입니다.
예제 3: 범위 질의
18세에서 22세 사이의 학생들을 찾고 싶다면 어떻게 할까요?
SELECT name, age
FROM students
WHERE age BETWEEN 18 AND 22;
BETWEEN
연산자는 범위를 지정하는 데 유용합니다. 이 질의는 18, 19, 20, 21, 22세인 모든 학생을 반환합니다.
예제 4: IN 연산자
특정 학년의 학생들을 찾고 싶다면 어떻게 할까요?
SELECT name, grade
FROM students
WHERE grade IN (9, 10, 11);
IN
연산자는 여러 값을 비교하는 데 사용됩니다. 이 질의는 9, 10, 11학년의 학생들을 반환합니다.
예제 5: 다양한 조건을 결합
이제 모든 것을 하나로 결합해 보겠습니다! 다음과 같은 학생을 찾고 싶습니다:
- 18세이거나 12학년인 학생
- 그리고 이름이 'A' 또는 'B'로 시작하는 학생
SELECT name, age, grade
FROM students
WHERE (age = 18 OR grade = 12)
AND (name LIKE 'A%' OR name LIKE 'B%');
이 질의는 괄호를 사용하여 조건을 그룹화하고 다양한 비교를 결합합니다.
일반 WHERE 절 연산자
WHERE 절에서 가장 자주 사용하는 연산자 목록을 아래에 제공합니다:
연산자 | 설명 | 예제 |
---|---|---|
= | 동일 | WHERE age = 18 |
<> or != | 불동일 | WHERE grade <> 12 |
> | 더 크다 | WHERE score > 90 |
< | 더 작다 | WHERE price < 50 |
>= | 더 크거나 동일 | WHERE quantity >= 100 |
<= | 더 작거나 동일 | WHERE year <= 2020 |
BETWEEN | 포함 범위 | WHERE age BETWEEN 18 AND 25 |
LIKE | 패턴 일치 | WHERE name LIKE 'J%' |
IN | 여러 값을 지정 | WHERE country IN ('USA', 'UK', 'Canada') |
AND | 조건 결합 (모두 참) | WHERE age > 18 AND grade = 12 |
OR | 조건 결합 (적어도 하나 참) | WHERE subject = 'Math' OR subject = 'Science' |
NOT | 조건 부정 | WHERE NOT grade = 12 |
결론: 새로운 데이터 필터링 슈퍼파워
축하합니다! 여러분은 SQLite 무기고에서 강력한 도구를 풀어냈습니다. WHERE 절은 정확한 데이터 검색을 위한 티켓으로, 산이 같은 정보에서 필요한 것을 찾아내는 데 도움을 줍니다.
기억하시라, 연습이 완벽을 이루는 열쇠입니다. 자신만의 데이터베이스를 만들고 다양한 WHERE 절을 실험해 보세요. 곧 경험丰富的 프로로 변신할 것입니다!
SQLite 여정을 계속하면서 WHERE 절이 시작에 불과하다는 것을 기억하세요. 고급 질의 기법이 여러분을 기다리고 있습니다. 그러나 지금은 자신을 칭찬해 주세요 - 데이터 마법사로 가는 큰 발걸음을 했습니다!
기쁜 질의와 함께, 데이터가 항상 잘 필터링되길 바랍니다!
Credits: Image by storyset