PostgreSQL - Truy vấn SELECT: Hướng dẫn cho người mới bắt đầu

Xin chào các bạn đam mê cơ sở dữ liệu! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị vào thế giới của PostgreSQL và học về một trong những thao tác cơ bản nhất trong cơ sở dữ liệu: truy vấn SELECT. Đừng lo lắng nếu bạn là người mới; tôi sẽ là người hướng dẫn thân thiện của bạn, dựa trên những năm kinh nghiệm giảng dạy của mình để làm cho bài học này rõ ràng và thú vị nhất có thể.

PostgreSQL - Select Query

Truy vấn SELECT là gì?

Trước khi chúng ta đi vào cú pháp và ví dụ, hãy hiểu truy vấn SELECT là gì. Hãy tưởng tượng bạn có một thư viện khổng lồ (đó là cơ sở dữ liệu của chúng ta), và bạn muốn tìm kiếm những cuốn sách cụ thể (đó là dữ liệu của chúng ta). Truy vấn SELECT giống như một trợ lý ma thuật giúp bạn tìm chính xác những gì bạn đang tìm kiếm trong thư viện rộng lớn này.

Cú pháp của truy vấn SELECT

Bây giờ, hãy nhìn vào cú pháp cơ bản của truy vấn SELECT:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

Hãy phân tích này:

  1. SELECT: Đây là nơi bạn chỉ định các cột mà bạn muốn truy xuất.
  2. FROM: Đây là nơi bạn chỉ định bảng nào bạn muốn lấy dữ liệu từ.
  3. WHERE: Đây là tùy chọn, nhưng nó cho phép bạn lọc kết quả dựa trên một số điều kiện.

Nó giống như nói, "Nào PostgreSQL, bạn có thể SELECT những cuốn sách này CHO tôi từ kệ科幻 WHERE tác giả là Isaac Asimov không?"

Ví dụ về truy vấn SELECT

Ví dụ 1: Chọn tất cả các cột

Hãy bắt đầu với truy vấn đơn giản nhất. Giả sử chúng ta có một bảng叫做 books:

SELECT * FROM books;

Truy vấn này có nghĩa là, "Cho tôi tất cả các cột từ bảng books." Dấu sao (*) là một ký tự đại diện có nghĩa là "tất cả."

Ví dụ 2: Chọn các cột cụ thể

Bây giờ, hãy cụ thể hơn:

SELECT title, author FROM books;

Truy vấn này chỉ truy xuất các cột 'title' và 'author' từ bảng 'books'. Nó giống như hỏi, "Chỉ cho tôi tiêu đề và tác giả của mỗi cuốn sách, bỏ qua các chi tiết khác như ngày xuất bản hoặc ISBN."

Ví dụ 3: Sử dụng mệnh đề WHERE

Hãy thêm một điều kiện vào truy vấn của chúng ta:

SELECT title, author FROM books WHERE year_published > 2000;

Truy vấn này lấy tiêu đề và tác giả của các cuốn sách được xuất bản sau năm 2000. Nó giống như hỏi, "Những tiêu đề và tác giả của các cuốn sách trong bộ sưu tập của chúng ta được xuất bản trong thiên niên kỷ này là gì?"

Ví dụ 4: Sử dụng ORDER BY

Chúng ta cũng có thể sắp xếp kết quả của mình:

SELECT title, year_published FROM books ORDER BY year_published DESC;

Truy vấn này truy xuất tiêu đề và năm xuất bản của tất cả các cuốn sách, được sắp xếp từ mới nhất đến cũ nhất. Nó giống như sắp xếp sách của chúng ta từ mới nhất đến cũ nhất trên kệ sách.

Ví dụ 5: Sử dụng LIMIT

Đôi khi, chúng ta chỉ muốn xem một số kết quả:

SELECT title FROM books LIMIT 5;

Truy vấn này chỉ trả về tiêu đề của 5 cuốn sách đầu tiên. Nó giống như nói, "Chỉ cho tôi 5 cuốn sách đầu tiên bạn tìm thấy."

Tính năng nâng cao của truy vấn SELECT

Bây giờ, chúng ta đã覆盖 cơ bản, hãy nhìn vào một số tính năng nâng cao.

Sử dụng DISTINCT

Từ khóa DISTINCT giúp chúng ta loại bỏ các giá trị trùng lặp:

SELECT DISTINCT author FROM books;

Truy vấn này cho chúng ta một danh sách các tác giả duy nhất trong bảng books, không có bất kỳ sự lặp lại nào.

Sử dụng hàm tổng hợp

PostgreSQL cung cấp nhiều hàm tổng hợp thực hiện các phép toán trên một tập hợp các hàng. Dưới đây là một số phổ biến:

Hàm Mô tả
COUNT() Đếm số lượng hàng
SUM() Tính tổng một tập hợp các giá trị
AVG() Tính trung bình của một tập hợp các giá trị
MAX() Tìm giá trị lớn nhất
MIN() Tìm giá trị nhỏ nhất

Hãy xem một ví dụ:

SELECT COUNT(*) AS total_books, AVG(price) AS average_price FROM books;

Truy vấn này đếm tổng số cuốn sách và tính giá trị trung bình của giá cả.

Sử dụng GROUP BY

GROUP BY cho phép chúng ta nhóm các hàng có cùng giá trị:

SELECT author, COUNT(*) AS books_written
FROM books
GROUP BY author;

Truy vấn này nhóm các sách theo tác giả và đếm số lượng sách mà mỗi tác giả đã viết.

Sử dụng HAVING

HAVING giống như WHERE, nhưng cho dữ liệu đã được nhóm:

SELECT author, COUNT(*) AS books_written
FROM books
GROUP BY author
HAVING COUNT(*) > 5;

Truy vấn này hiển thị các tác giả đã viết hơn 5 cuốn sách.

Kết luận

Chúc mừng! Bạn đã刚刚迈出了进入 PostgreSQL SELECT truy vấn thế giới. Nhớ rằng, như việc học bất kỳ ngôn ngữ mới nào, thực hành làm cho hoàn hảo. Thử viết các truy vấn của riêng bạn, thử nghiệm với các mệnh đề khác nhau, và sớm bạn sẽ truy vấn cơ sở dữ liệu như một chuyên gia!

Khi chúng ta kết thúc, tôi nhớ lại một học sinh từng nói rằng việc học SELECT truy vấn cảm thấy như có siêu năng lực - đột nhiên, một lượng lớn dữ liệu nằm trong tầm tay của cô. Tôi hy vọng bạn cũng cảm thấy sự phấn khích tương tự khi tiếp tục hành trình của mình trong quản lý cơ sở dữ liệu.

Tiếp tục truy vấn, tiếp tục học hỏi, và quan trọng nhất, vui vẻ khám phá dữ liệu!

Credits: Image by storyset