Hướng dẫn PostgreSQL: Bắt đầu với cơ sở dữ liệu mã nguồn mở tiên tiến nhất trên thế giới

Xin chào các pháp sư cơ sở dữ liệu tương lai! Tôi rất vui mừng được làm hướng dẫn viên của bạn trong hành trình đầy.exciting này vào thế giới của PostgreSQL. Là một ai đó đã dạy khoa học máy tính trong nhiều năm hơn tôi muốn thừa nhận (hãy nói là tôi nhớ khi các đĩa mềm thực sự mềm), tôi ở đây để giúp bạn解锁 the power of this amazing database system. Vậy, cầm lấy thức uống yêu thích của bạn, ngồi thoải mái, và chúng ta cùng nhảy vào!

PostgreSQL - Home

PostgreSQL là gì?

PostgreSQL, hoặc "Postgres" như các bạn cool kids gọi nó, giống như chiếc dao quân đội Thụy Sĩ của các cơ sở dữ liệu. Nó là mã nguồn mở, mạnh mẽ và linh hoạt hơn một giáo viên yoga. Nhưng đừng để điều đó làm bạn sợ hãi - chúng ta sẽ làm rõ từng bước.

Một bài học lịch sử ngắn

PostgreSQL đã có từ những năm 1980 - gần như là cổ đại trong lĩnh vực máy tính! Nó bắt đầu như một dự án tại Đại học California, Berkeley, và từ đó đã phát triển thành một nỗ lực cộng đồng toàn cầu. Hãy nghĩ về nó như một cơ sở dữ liệu nhỏ bé nhưng có thể, và boy, nó đã thực sự!

Tại sao chọn PostgreSQL?

Bạn có thể tự hỏi, "Tại sao lại chọn PostgreSQL? Có rất nhiều cơ sở dữ liệu khác!" Well, để tôi kể cho bạn một câu chuyện ngắn. Khi tôi còn là một nhà phát triển non trẻ (đúng vậy, thời đó vẫn còn có khủng long), tôi đã tình cờ tìm thấy PostgreSQL, và nó là tình yêu từ lần query đầu tiên. Đây là lý do:

  1. Nó miễn phí và mã nguồn mở (ai lại không yêu thích thứ miễn phí?)
  2. Nó vô cùng mạnh mẽ và đa tính năng
  3. Nó hỗ trợ cả dữ liệu quan hệ (SQL) và phi quan hệ (JSON)
  4. Nó tuân thủ ACID (không phải loại axit đó - nó có nghĩa là Atomicity, Consistency, Isolation, Durability)
  5. Nó có tài liệu xuất sắc và một cộng đồng hỗ trợ

Bắt đầu với PostgreSQL

Cài đặt

Trước tiên, hãy cài đặt PostgreSQL trên máy tính của bạn. Đừng lo lắng, nó dễ dàng hơn việc lắp ráp đồ nội thất IKEA!

Đối với người dùng Windows:

  1. Truy cập trang tải xuống PostgreSQL (https://www.postgresql.org/download/windows/)
  2. Tải xuống trình cài đặt
  3. Chạy trình cài đặt và làm theo các hướng dẫn

Đối với người dùng Mac:

  1. Cách dễ nhất là sử dụng Homebrew. Mở Terminal và gõ:
brew install postgresql
  1. Sau khi cài đặt, khởi động dịch vụ PostgreSQL:
brew services start postgresql

Tạo cơ sở dữ liệu đầu tiên

Bây giờ chúng ta đã cài đặt PostgreSQL, hãy tạo cơ sở dữ liệu đầu tiên. Chúng ta sẽ gọi nó là "my_first_db" vì, à, nó là!

  1. Mở terminal hoặc command prompt
  2. psql để vào PostgreSQL interactive terminal
  3. Khi vào, gõ:
CREATE DATABASE my_first_db;

Chúc mừng! Bạn vừa tạo xong cơ sở dữ liệu đầu tiên. Tôi vẫn nhớ cảm giác phấn khích khi tạo cơ sở dữ liệu đầu tiên của mình - nó giống như là một vị thần số hóa, tạo ra các thế giới chỉ với vài phím!

Tạo bảng

Bây giờ chúng ta có một cơ sở dữ liệu, hãy tạo một bảng. Chúng ta sẽ tạo một bảng đơn giản "students":

CREATE TABLE students (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
age INT,
grade CHAR(1)
);

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

  • CREATE TABLE students: Điều này cho PostgreSQL biết chúng ta muốn tạo một bảng mới có tên "students"
  • id SERIAL PRIMARY KEY: Điều này tạo một cột ID tự động tăng
  • name VARCHAR(100): Điều này tạo một cột cho tên, cho phép tối đa 100 ký tự
  • age INT: Điều này tạo một cột cho tuổi, lưu trữ các số nguyên
  • grade CHAR(1): Điều này tạo một cột cho điểm, lưu trữ một ký tự duy nhất

Chèn dữ liệu

Bây giờ, hãy thêm một chút dữ liệu vào bảng của chúng ta:

INSERT INTO students (name, age, grade)
VALUES ('Alice', 18, 'A'),
('Bob', 17, 'B'),
('Charlie', 19, 'C');

Lệnh này chèn ba học sinh vào bảng của chúng ta. Lưu ý rằng chúng ta không chỉ định id - PostgreSQL tự động xử lý điều đó cho chúng ta thanks to the SERIAL data type.

Truy vấn dữ liệu

Bây giờ đến phần thú vị - lấy lại dữ liệu! Hãy bắt đầu với một truy vấn đơn giản:

SELECT * FROM students;

Lệnh này sẽ hiển thị tất cả dữ liệu trong bảng students. Nhưng giả sử chúng ta chỉ muốn xem học sinh có điểm 'A'?

SELECT * FROM students WHERE grade = 'A';

Hoặc có thể chúng ta muốn xem học sinh theo tuổi:

SELECT * FROM students ORDER BY age;

Tính năng nâng cao

PostgreSQL không chỉ về việc lưu trữ và lấy lại dữ liệu - nó được trang bị nhiều tính năng nâng cao giúp nó trở thành người bạn tốt nhất của nhà phát triển. Hãy cùng xem qua một vài tính năng:

Hỗ trợ JSON

PostgreSQL có hỗ trợ xuất sắc cho dữ liệu JSON. Bạn có thể lưu trữ JSON trực tiếp trong một cột:

CREATE TABLE events (
id SERIAL PRIMARY KEY,
data JSONB
);

INSERT INTO events (data)
VALUES ('{"name": "Conference", "date": "2023-09-15", "attendees": 500}');

Và sau đó truy vấn nó như thế này:

SELECT data->'name' AS event_name FROM events;

Tìm kiếm全文

PostgreSQL có khả năng tìm kiếm全文 tích hợp. Dưới đây là một ví dụ nhanh:

CREATE TABLE articles (
id SERIAL PRIMARY KEY,
title TEXT,
body TEXT
);

INSERT INTO articles (title, body)
VALUES ('PostgreSQL Basics', 'PostgreSQL is a powerful, open-source database system...');

SELECT title
FROM articles
WHERE to_tsvector('english', body) @@ to_tsquery('english', 'powerful & database');

Truy vấn này sẽ tìm thấy tất cả các bài viết mà trong thân bài chứa các từ "powerful" và "database".

Kết luận

Chúng ta chỉ mới chạm vào bề mặt của những gì PostgreSQL có thể làm, nhưng tôi hy vọng rằng hướng dẫn này đã mang lại cho bạn một cảm nhận về sức mạnh và linh hoạt của nó. Nhớ rằng, việc thành thạo PostgreSQL là một hành trình, không phải là đích đến. Hãy tiếp tục thực hành, tiếp tục khám phá, và đừng sợ hãi khi mắc lỗi - đó là cách chúng ta học hỏi!

Khi kết thúc, tôi nhớ lại một câu nói của một trong những nhà khoa học máy tính yêu thích của tôi, Grace Hopper: "Câu nói nguy hiểm nhất trong ngôn ngữ là, 'Chúng ta đã luôn làm như vậy.'" PostgreSQL thể hiện tinh thần này của sự đổi mới và cải tiến, luôn.pushing the boundaries of what a database can do.

Vậy, hãy tiến lên, các padawan dữ liệu trẻ, và chúc may mắn với các query của bạn!

PostgreSQL Methods Description
CREATE DATABASE Tạo một cơ sở dữ liệu mới
CREATE TABLE Tạo một bảng mới
INSERT INTO Chèn dữ liệu mới vào bảng
SELECT Lấy dữ liệu từ bảng
UPDATE Chỉnh sửa dữ liệu hiện có trong bảng
DELETE Xóa dữ liệu khỏi bảng
ALTER TABLE Thay đổi cấu trúc của bảng hiện có
DROP TABLE Xóa một bảng
CREATE INDEX Tạo một chỉ mục trên một hoặc nhiều cột của bảng
GRANT Cung cấp quyền cụ thể cho một người dùng
REVOKE Loại bỏ quyền cụ thể từ một người dùng
BEGIN Bắt đầu một khối giao dịch
COMMIT Chấp nhận giao dịch hiện tại
ROLLBACK Hoàn tác giao dịch hiện tại
CREATE VIEW Tạo một view dựa trên kết quả của một truy vấn SELECT
CREATE FUNCTION Tạo một hàm mới
CREATE TRIGGER Tạo một trigger mới

Credits: Image by storyset