Database — tự học SQL Server, PostgreSQL, MySQL

Tài liệu tự học 3 RDBMS phổ biến. Mỗi DB có lý thuyết + thực hành + phần highlight câu phỏng vấn + Q và A tổng hợp.

Bạn đang ở đâu trong tài liệu?

Mỗi RDBMS được tổ chức theo cùng một khung gồm 5 trang:

1. Giới thiệu & cài đặt   — version mới nhất, install bằng Docker, tool quản lý
2. Cú pháp cơ bản          — DDL, DML, kiểu dữ liệu
3. Truy vấn nâng cao       — JOIN, subquery, window, CTE, transaction
4. Đặc thù & performance   — feature riêng của hệ + tối ưu, index, explain
5. Câu hỏi phỏng vấn       — tổng hợp Q&A nhà tuyển dụng hay hỏi
Convention: mọi đoạn có icon ⭐ là kiến thức hay được hỏi phỏng vấn. Đọc lướt cũng phải nhớ những chỗ này.

Chọn database nào?

SQL Server

Microsoft SQL Server 2025 (17.x) — bản mới nhất 11/2025. Mạnh ở enterprise Windows, .NET, banking VN. T-SQL phong phú, tooling SSMS chín nhất.

PostgreSQL

PostgreSQL 18 (25/09/2025). Open-source, mạnh ở JSONB, GIS (PostGIS), extension. Default cho startup VN, web service, Supabase.

MySQL

MySQL 8.4 LTS (đến 2032) hoặc 9.7 LTS mới. Default LAMP, WordPress, ecommerce nhẹ. Đơn giản, deploy rộng.

Supabase (BaaS)

Supabase — nền tảng Backend-as-a-Service mã nguồn mở trên PostgreSQL. Database, Auth, Storage, Realtime, Edge Functions, AI/Vector tích hợp sẵn. Firebase alternative.

So sánh nhanh

Tiêu chíSQL ServerPostgreSQLMySQL
LicenseThương mại (có Express miễn phí)Open-source PostgreSQL LicenseDual-license GPL / commercial (Oracle)
Version mới nhất2025 (17.x)189.7 LTS (kèm 8.4 LTS)
Stack phổ biến VN.NET, banking, enterpriseNode.js, Python, startupPHP/Laravel, WordPress
Procedural languageT-SQLPL/pgSQL (+ PL/Python, PL/Perl…)SQL stored proc
JSONJSON mới (2025), OPENJSONJSONB mạnh nhấtJSON cơ bản
Window function✅ Đầy đủ✅ Đầy đủ + nhiều nhất✅ Từ 8.0
CTE recursive
Materialized View❌ (Indexed View thay)
Array type✅ Native
Trigger✅ AFTER + INSTEAD OF✅ Đa dạng✅ AFTER + BEFORE
Default isolationREAD COMMITTEDREAD COMMITTEDREPEATABLE READ
ReplicationAlways On, Log ShippingStreaming, LogicalSource/Replica, Group Replication
GUI tool phổ biếnSSMS, Azure Data StudiopgAdmin, DBeaver, TablePlusMySQL Workbench, DBeaver

Học theo thứ tự nào?

Nếu đã biết SQL cơ bản (SELECT/JOIN/GROUP BY): chọn DB nào hợp công việc → đi thẳng vào "Đặc thù & performance" + "Câu hỏi phỏng vấn".

Nếu chưa biết SQL: học PostgreSQL trước (cú pháp chuẩn ANSI nhất), sau đó dễ chuyển sang 2 DB còn lại.

Mục tiêu chung: sau khi xong section này, bạn phải trả lời được "INDEX là gì? Khi nào không nên tạo?", viết được query có CTE + window function, hiểu được ACID và 4 isolation level, biết debug query chậm.

Common terminology (3 DB đều dùng)

EnglishVNÝ nghĩa
Database / SchemaCơ sở dữ liệu / Lược đồContainer chứa table
Table / Row / ColumnBảng / Hàng / CộtĐơn vị lưu trữ
Primary Key (PK)Khoá chínhĐịnh danh row, duy nhất + không null
Foreign Key (FK)Khoá ngoạiTham chiếu PK của bảng khác
IndexChỉ mụcB-tree giúp tìm row nhanh
Query planKế hoạch thực thiEngine quyết định cách thực thi query
TransactionGiao dịchNhóm thao tác atomic
LockKhoáCơ chế tránh race condition
MVCCMulti-Version Concurrency ControlTạo snapshot data cho mỗi transaction, đọc không block ghi
WAL / Redo logWrite-Ahead LogLog để recovery sau crash
Bắt đầu với SQL Server, hoặc đi thẳng tới PostgreSQL / MySQL. Xem thêm Supabase (BaaS) — nền tảng backend trên PostgreSQL.

© 2026 .NET Fresher Guide. All rights reserved.

Về Trang Web

Hướng dẫn toàn diện để chuẩn bị phỏng vấn vị trí .NET Fresher với nội dung từ lý thuyết đến thực hành.