SQLite - AND & OR 조건문

안녕하세요, 데이터베이스 열정가 여러분! 오늘 우리는 SQLite의 세계로 뛰어들어 두 가지 강력한 연산자를 탐구해 볼 예정입니다. 이 연산자들은 더 복잡하고 정확한 데이터베이스 질의를 만들어주는 데 도움이 될 것입니다: AND와 OR 조건문입니다. 여러분의 친절한 이웃 컴퓨터 교사로서, 이 여정을 안내해 드리게 되어 기쁩니다. 그럼 가상의 메모장을 꺼내고 시작해 보겠습니다!

SQLite - AND & OR Clauses

AND 연산자

상상해 보세요. 거대한 도서관을 조직하고 있다고요. J.K. Rowling이 쓴 책들 중 2000년 이후에 출판된 책들을 찾고 싶습니다. 이때 AND 연산자가 유용하게 쓰입니다!

AND 연산자는 무엇인가요?

AND 연산자는 SQL 질의에서 여러 조건을 결합할 수 있게 해줍니다. 질의 결과에 포함되기 위해서는 AND로 결합된 모든 조건이 참이어야 합니다.

문법

SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;

예제

간단한 "books" 테이블을 만들어 작업해 보겠습니다:

CREATE TABLE books (
id INTEGER PRIMARY KEY,
title TEXT,
author TEXT,
publication_year INTEGER,
genre TEXT
);

INSERT INTO books (title, author, publication_year, genre)
VALUES
('Harry Potter and the Goblet of Fire', 'J.K. Rowling', 2000, 'Fantasy'),
('The Da Vinci Code', 'Dan Brown', 2003, 'Thriller'),
('To Kill a Mockingbird', 'Harper Lee', 1960, 'Classic'),
('1984', 'George Orwell', 1949, 'Dystopian'),
('The Hunger Games', 'Suzanne Collins', 2008, 'Young Adult');

이제 AND 연산자를 사용하여 2000년 이후에 출판된 판타지 장르의 책들을 찾아보겠습니다:

SELECT title, author, publication_year
FROM books
WHERE genre = 'Fantasy' AND publication_year > 2000;

이 질의는 다음과 같은 결과를 반환합니다:

title                               | author      | publication_year
------------------------------------------------------------
Harry Potter and the Goblet of Fire | J.K. Rowling | 2000

설명: 이 질의는 장르가 'Fantasy'이고 출판 연도가 2000년 이상인 두 조건을 모두 만족하는 책들만 선택합니다.

다른 예제를 시도해 보겠습니다. J.K. Rowling이 쓰고 2000년에 출판된 책들을 찾아보겠습니다:

SELECT title, author, publication_year
FROM books
WHERE author = 'J.K. Rowling' AND publication_year = 2000;

이 질의는 이전과 같은 결과를 반환합니다.因为我们表格中只有一个满足这两个条件的条目。

프로 팁

한 개의 질의에서 필요한 만큼 많이 AND 연산자를 사용할 수 있습니다. 예를 들어:

SELECT title, author, publication_year, genre
FROM books
WHERE author = 'J.K. Rowling' AND publication_year = 2000 AND genre = 'Fantasy';

이 질의는 이전 예제에 하나 더 조건을 추가합니다.

OR 연산자

이제 여러분이 판타지 책이나 스릴러 책을 읽고 싶은 마음이 있다고 가정해 봅시다. 이때 OR 연산자가 구원자가 됩니다!

OR 연산자는 무엇인가요?

OR 연산자는 SQL 질의에서 여러 조건을 결합할 수 있게 해줍니다. 질의 결과에 포함되기 위해서는 OR로 결합된 적어도 하나의 조건이 참이어야 합니다.

문법

SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;

예제

이전의 "books" 테이블을 사용하여, 판타지 장르이거나 2005년 이후에 출판된 책들을 찾아보겠습니다:

SELECT title, author, publication_year, genre
FROM books
WHERE genre = 'Fantasy' OR publication_year > 2005;

이 질의는 다음과 같은 결과를 반환합니다:

title                               | author           | publication_year | genre
----------------------------------------------------------------------------------
Harry Potter and the Goblet of Fire | J.K. Rowling     | 2000             | Fantasy
The Hunger Games                    | Suzanne Collins | 2008             | Young Adult

설명: 이 질의는 장르가 'Fantasy'이거나 출판 연도가 2005년 이상인 조건 중 하나를 만족하는 책들을 선택합니다.

다른 예제를 시도해 보겠습니다. J.K. Rowling이나 Dan Brown이 쓴 책들을 찾아보겠습니다:

SELECT title, author, publication_year, genre
FROM books
WHERE author = 'J.K. Rowling' OR author = 'Dan Brown';

이 질의는 다음과 같은 결과를 반환합니다:

title                               | author       | publication_year | genre
----------------------------------------------------------------------------------
Harry Potter and the Goblet of Fire | J.K. Rowling | 2000             | Fantasy
The Da Vinci Code                   | Dan Brown    | 2003             | Thriller

AND와 OR을 결합

여기서 더 흥미로운 점이 등장합니다! AND와 OR 연산자를 동일한 질의에서 결합할 수 있습니다. 하지만 주의하세요 - 순서가 중요합니다!

판타지 장르이거나 2005년 이후에 출판된 책들 중 Young Adult 장르가 아닌 책들을 찾아보겠습니다:

SELECT title, author, publication_year, genre
FROM books
WHERE (genre = 'Fantasy' OR publication_year > 2005) AND genre != 'Young Adult';

이 질의는 다음과 같은 결과를 반환합니다:

title                               | author       | publication_year | genre
----------------------------------------------------------------------------------
Harry Potter and the Goblet of Fire | J.K. Rowling | 2000             | Fantasy

설명: 괄호는 매우 중요합니다. 괄호는 OR 조건이 먼저 평가되고 그 결과가 AND 조건과 결합되도록 합니다.

프로 팁

AND와 OR을 결합할 때는 항상 괄호를 사용하여 의도를 명확히 하세요. 이는 여러분과 SQLite 모두가 질의의 논리를 이해하는 데 도움이 됩니다.

요약

AND와 OR 연산자의 빠른 참조 표입니다:

연산자 설명 예제
AND 모든 조건이 참이면 결과 반환 WHERE condition1 AND condition2
OR 적어도 하나의 조건이 참이면 결과 반환 WHERE condition1 OR condition2

AND 연산자는 까다로운 도서관 사서처럼 모든 기준을 만족해야 책을 주는 것입니다. OR 연산자는 더寬容한 친구처럼 기준 중 하나라도 만족하면 행복합니다.

이 연산자들을 연습하여, 곧 프로처럼 복잡한 질의를 만들 수 있을 것입니다! 미래의 데이터베이스 마법사 여러분, 즐겁게 질의하세요!

Credits: Image by storyset