SQLite - AND & OR Clauses

Xin chào, những người đam mê cơ sở dữ liệu! Hôm nay, chúng ta sẽ cùng nhau khám phá thế giới SQLite và tìm hiểu hai toán tử mạnh mẽ sẽ giúp bạn tạo ra các truy vấn cơ sở dữ liệu phức tạp và chính xác hơn: các mệnh đề AND và OR. Là giáo viên máy tính gần gũi của bạn, tôi rất vui mừng được hướng dẫn bạn trong hành trình này. Vậy, hãy chuẩn bị sẵn sàng máy tính ảo của bạn, và chúng ta cùng bắt đầu nhé!

SQLite - AND & OR Clauses

Toán tử AND

Hãy tưởng tượng bạn đang tổ chức một thư viện sách khổng lồ. Bạn muốn tìm tất cả các cuốn sách do J.K. Rowling viết VÀ được xuất bản sau năm 2000. Đó là lúc toán tử AND phát huy tác dụng!

Toán tử AND là gì?

Toán tử AND cho phép bạn kết hợp nhiều điều kiện trong truy vấn SQL của bạn. Để một hàng được bao gồm trong tập kết quả, TẤT CẢ các điều kiện nối với AND phải là đúng.

Cú pháp

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

Ví dụ

Hãy tạo một bảng "books" đơn giản để làm việc:

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');

Bây giờ, hãy sử dụng toán tử AND để tìm tất cả các sách thuộc thể loại Fantasy và được xuất bản sau năm 2000:

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

Truy vấn này sẽ trả về:

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

Giải thích: Truy vấn này chỉ chọn các sách thỏa mãn cả hai điều kiện: thể loại là 'Fantasy' VÀ năm xuất bản lớn hơn 2000.

Hãy thử một ví dụ khác. Chúng ta sẽ tìm tất cả các sách do J.K. Rowling viết và được xuất bản năm 2000:

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

Truy vấn này sẽ trả về kết quả tương tự như trước vì đó là cuốn sách duy nhất trong bảng của chúng ta thỏa mãn cả hai điều kiện.

Mẹo chuyên nghiệp

Bạn có thể sử dụng nhiều toán tử AND trong một truy vấn duy nhất. Ví dụ:

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

Truy vấn này thêm một điều kiện vào ví dụ trước.

Toán tử OR

Bây giờ, hãy tưởng tượng bạn đang có tâm trạng đọc một cuốn sách fantasy HOẶC một cuốn sách thriller. Đó là lúc toán tử OR ra vào cuộc!

Toán tử OR là gì?

Toán tử OR cho phép bạn kết hợp nhiều điều kiện trong truy vấn SQL của bạn. Để một hàng được bao gồm trong tập kết quả, ÍT NHẤT một trong các điều kiện nối với OR phải là đúng.

Cú pháp

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

Ví dụ

Sử dụng bảng "books" từ trước, hãy tìm tất cả các sách thuộc thể loại Fantasy HOẶC được xuất bản sau năm 2005:

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

Truy vấn này sẽ trả về:

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

Giải thích: Truy vấn này chọn các sách thỏa mãn một trong hai điều kiện: thể loại là 'Fantasy' HOẶC năm xuất bản lớn hơn 2005.

Hãy thử một ví dụ khác. Chúng ta sẽ tìm tất cả các sách do J.K. Rowling hoặc Dan Brown viết:

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

Truy vấn này sẽ trả về:

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

Kết hợp AND và OR

Đây là nơi mọi thứ trở nên thực sự thú vị! Bạn có thể kết hợp cả hai toán tử AND và OR trong cùng một truy vấn. Nhưng hãy cẩn thận - thứ tự rất quan trọng!

Hãy tìm tất cả các sách Fantasy HOẶC các sách xuất bản sau năm 2005 nhưng không thuộc thể loại Young Adult:

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

Truy vấn này sẽ trả về:

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

Giải thích: Dấu ngoặc đơn ở đây rất quan trọng. Chúng đảm bảo rằng điều kiện OR được đánh giá trước, và sau đó kết quả được kết hợp với điều kiện AND.

Mẹo chuyên nghiệp

Khi kết hợp AND và OR, hãy luôn sử dụng dấu ngoặc đơn để làm rõ ý định của bạn. Điều này giúp cả bạn và SQLite hiểu logic của truy vấn.

Tóm tắt

Dưới đây là bảng tham khảo nhanh của các toán tử AND và OR:

Toán tử Mô tả Ví dụ
AND Trả về đúng nếu tất cả các điều kiện là đúng WHERE condition1 AND condition2
OR Trả về đúng nếu ít nhất một điều kiện là đúng WHERE condition1 OR condition2

Nhớ rằng toán tử AND giống như một thư viện viên严格的, chỉ cho bạn một cuốn sách nếu bạn thỏa mãn TẤT CẢ các tiêu chí. Toán tử OR giống như một người bạn nhân hậu, hạnh phúc nếu bạn thỏa mãn BẤT Kỳ tiêu chí nào.

Thực hành sử dụng các toán tử này, và sớm bạn sẽ có thể tạo ra các truy vấn phức tạp như một chuyên gia! Chúc may mắn trong việc truy vấn, các phù thủy cơ sở dữ liệu tương lai!

Credits: Image by storyset