Khóa học tương tác
Khóa học SQL
Học SQL từ đầu, bằng tiếng Anh, với Postgres thực sự đang chạy trong trình duyệt của bạn.
01 · Mô-đun 1 - CHỌN cơ bản
Nền tảng: đọc dữ liệu từ một bảng và lọc nó.
- 1.1Giới thiệu về SQLSQL là gì, tại sao nó được sử dụng và cơ sở dữ liệu trông như thế nào.~5 min
- 1.2CHỌN … TỪTruy vấn đơn giản nhất: đọc các hàng từ một bảng.~10 min
- 1.3Lọc bằng WHEREChỉ chọn các hàng thỏa mãn điều kiện.~10 min
- 1.4Sắp xếp theo thứ tự ORDER BYSắp xếp kết quả theo thứ tự tăng dần hoặc giảm dần.~8 min
02 · Mô-đun 2 - CHỌN mạnh mẽ hơn
Giới hạn, loại bỏ trùng lặp, đổi tên và đếm: những công cụ bạn sử dụng hàng ngày.
- 2.1Giới hạn với LIMITChỉ trả về N hàng đầu tiên, chẳng hạn để xây dựng bảng xếp hạng.~6 min
- 2.2Các giá trị duy nhất với DISTINCTXóa các bản sao khỏi kết quả của CHỌN.~6 min
- 2.3Đổi tên bằng ASĐặt tên dễ đọc hơn cho các cột và biểu thức trong kết quả.~6 min
- 2.4Đếm và tổng hợp: COUNT, AVG, MAXHàm tổng hợp: lấy một số từ nhiều hàng.~8 min
03 · Mô-đun 3 - THAM GIA và NHÓM THEO
Kết hợp nhiều bảng và tạo báo cáo theo nhóm: trọng tâm của mọi truy vấn thực sự.
- 3.1Nối hai bảng: INNER JOINKết hợp các hàng từ các bảng khác nhau theo mối quan hệ của chúng.~12 min
- 3.2Giữ mọi thứ ở bên trái: LEFT JOINBao gồm các hàng không khớp trong bảng khác.~10 min
- 3.3Nhóm với GROUP BYTính toán tổng hợp cho mỗi nhóm, ví dụ như cho mỗi bộ phận.~10 min
- 3.4Nhóm lọc: CÓChỉ giữ lại các nhóm thỏa mãn một điều kiện trên tổng hợp.~8 min
04 · Mô-đun 4 - SQL thực tế
Các công cụ tạo nên sự khác biệt trong công việc thực tế: danh sách, phạm vi, NULL và logic điều kiện.
- 4.1Danh sách và phạm vi: IN và BETWEENBộ lọc nhỏ gọn cho "một trong số này" và "giữa A và B".~8 min
- 4.2Xử lý NULL: IS NULL và COALESCENhận biết và xử lý các giá trị còn thiếu mà không có bất ngờ.~10 min
- 4.3Logic có điều kiện: TRƯỜNG HỢP KHIChuyển đổi các giá trị thành các danh mục trực tiếp trong CHỌN.~10 min
- 4.4Một truy vấn bên trong một truy vấn khác: truy vấn phụSử dụng kết quả của một CHỌN bên trong một CHỌN khác.~12 min
05 · Mô-đun 5 - THAM GIA nâng cao
Các thao tác THAM GIA nhiều bảng, tự tham gia, OUTER, CROSS và thiết lập: kết hợp dữ liệu như một chuyên gia.
- 5.1THAM GIA trên ba bảng trở lênDuyệt qua một chuỗi các mối quan hệ: đơn hàng → khách hàng → sản phẩm, trong một truy vấn duy nhất.~12 min
- 5.2Self-JOIN: một bảng có chính nóHệ thống phân cấp và mối quan hệ nội bộ: đọc bảng có hai vai trò (con và cha).~10 min
- 5.3THAM GIA NGOÀI: tìm "khoảng trống"Sử dụng LEFT/RIGHT/FULL OUTER JOIN để tìm các hàng không khớp.~10 min
- 5.4UNION, INTERSECT, NGOẠI TRỪ (và THAM GIA CROSS)Kết hợp các kết quả dưới dạng tập hợp: hợp, giao, hiệu và tích Descartes.~12 min
06 · Mô-đun 6 - Các hàm tích hợp
Chuyển đổi và thao tác dữ liệu bằng các hàm gốc của PostgreSQL: chuỗi, ngày tháng, số, chuyển đổi kiểu.
- 6.1Hàm chuỗiLOWER, UPPER, LENGTH, nối, SUBSTRING, TRIM, REPLACE, THÍCH và ILIKE.~12 min
- 6.2Chức năng ngày và dấu thời gianEXTRACT, DATE_TRUNC, khoảng thời gian và chênh lệch ngày.~12 min
- 6.3Hàm sốTRÒN, CEIL, SÀN, ABS, MOD và số nguyên so với phép chia thập phân.~10 min
- 6.4Chuyển đổi CAST và loạiChuyển đổi giữa các loại với `::type` và `CAST(... AS ...)`.~10 min
07 · Mô-đun 7 - Phân tích nâng cao
Truy vấn nhiều bước (CTE), xếp hạng và tổng số đang chạy (chức năng cửa sổ), phân cấp không giới hạn (VỚI ĐỆ quy).
- 7.1CTE: truy vấn nhiều bước với VỚIChia một truy vấn phức tạp thành các bước được đặt tên để dễ đọc và tái sử dụng.~12 min
- 7.2Chức năng cửa sổ: xếp hạng và tính toán theo nhómROW_NUMBER, RANK, DENSE_RANK với OVER(PARTITION BY …) cho thứ hạng trong nhóm.~14 min
- 7.3Tổng số LAG, LEAD và đang chạySo sánh từng hàng với hàng trước/hàng tiếp theo và tính tổng tích lũy.~12 min
- 7.4CTE đệ quy: phân cấp độ sâu tùy ýVỚI ĐĂNG KÝ để duyệt qua các hệ thống phân cấp như danh mục.~14 min
08 · Mô-đun 8 - Viết và sửa đổi dữ liệu
CHÈN, CẬP NHẬT, XÓA, TẠO BẢNG với các ràng buộc, giao dịch: đóng vòng lặp bằng cách ghi.
- 8.1Chèn dữ liệu: INSERTMệnh đề INSERT, RETURNING đơn và nhiều hàng, chọn cột rõ ràng.~10 min
- 8.2Cập nhật và xóa: UPDATE và DELETENhững thay đổi có chọn lọc với WHERE và tại sao WHERE bị lãng quên lại là một thảm họa.~10 min
- 8.3Tạo bảng và ràng buộc: DDLTẠO BẢNG với KHÓA CHÍNH, KHÔNG PHẢI NULL, ĐỘC ĐÁO, KHÓA NGOÀI, KIỂM TRA và MẶC ĐỊNH.~12 min
- 8.4Giao dịch: tất cả hoặc không có gìBEGIN, CAM KẾT, ROLLBACK: tạo một nhóm hoạt động nguyên tử.~10 min
09 · Mô-đun 9 - Cấu trúc dữ liệu và DDL
Tạo và thay đổi bảng, ràng buộc nâng cao, kiểu và dạng xem phức tạp.
- 9.1Các kiểu dữ liệu nâng cao và ENUMCác loại số, TEXT so với VARCHAR, BOOLEAN, UUID và các loại ENUM tùy chỉnh.~10 min
- 9.2Các ràng buộc cấp độ bảng và nhiềuCác ràng buộc tổng hợp KHÓA CHÍNH XÁC và ĐỘC ĐÁO, KIỂM TRA nâng cao và khóa ngoại (TRÊN XÓA CASCADE).~12 min
- 9.3Thay đổi cấu trúc: ALTER TABLEThêm, sửa đổi và xóa các cột hoặc ràng buộc khỏi các bảng hiện có.~10 min
- 9.4Lượt xem và trừu tượng hóa dữ liệuTạo XEM để đơn giản hóa các truy vấn phức tạp và XEM VẬT LIỆU hóa để thực hiện.~12 min
10 · Tối ưu hóa và lập chỉ mục
Nghệ thuật thực hiện truy vấn nhanh: lập chỉ mục, kế hoạch thực hiện và tối ưu hóa cơ sở dữ liệu.
- 10.1Chỉ mục và cây BTạo chỉ mục để tăng tốc đáng kể các truy vấn tra cứu trên các bảng lớn.~15 min
- 10.2GIẢI THÍCH và PHÂN TÍCHTìm hiểu cách đọc kế hoạch thực hiện cơ sở dữ liệu để chẩn đoán tắc nghẽn.~15 min
- 10.3Chỉ số tổng hợp và một phầnSử dụng chỉ mục trên nhiều cột cùng một lúc hoặc chỉ trên một phần dữ liệu cụ thể.~12 min
- 10.4Vấn đề N+1Vấn đề hiệu suất ORM khét tiếng và các phương thức SQL gốc để khắc phục vấn đề này chỉ trong một truy vấn.~12 min
11 · Giao dịch và đồng thời
Quản lý an toàn các sửa đổi dữ liệu đồng thời: giao dịch ACID, khóa và mức cách ly.
- 11.1Giao dịch ACID (BEGIN/COMMIT)Giữ dữ liệu nhất quán với BEGIN, COMMIT và ROLLBACK, nhóm các truy vấn thành một khối duy nhất mà người khác không thể nhìn thấy.~15 min
- 11.2Điều kiện cuộc đuaKịch bản biên: điều gì xảy ra khi hai nhân viên cơ sở dữ liệu song song hành động trên cùng một giỏ hàng người dùng.~10 min
- 11.3Khóa và CHỌN ĐỂ CẬP NHẬTChủ động khóa các hàng trong quá trình đọc, buộc các luồng đột biến khác phải chờ đến lượt.~15 min
- 11.4Mức độ cách lyĐẩy đến giới hạn bằng cách triển khai Có thể tuần tự hóa hoặc giảm xuống Đã cam kết đọc để có hiệu suất nhanh nhưng không an toàn.~12 min
12 · Chức năng và kích hoạt
Tự động hóa logic nghiệp vụ bên trong cơ sở dữ liệu: viết các hàm có thể tái sử dụng và phản ứng với các sự kiện bằng trình kích hoạt.
- 12.1UDF và SQL cơ sởTạo Hàm do người dùng xác định của riêng bạn để gói gọn các phép tính phức tạp và tái sử dụng chúng như macro trong mọi truy vấn.~15 min
- 12.2Logic nâng cao với PL/pgSQLCung cấp cho các hàm của bạn những siêu năng lực: biến, nhánh if-else và vòng lặp theo kiểu thủ tục thuần túy bên trong cơ sở dữ liệu.~15 min
- 12.3Giới thiệu về triggerXác định các chức năng đặc biệt có thể kiểm tra ngay bản ghi OUTGOING (CŨ) hoặc INCOMING (MỚI).~15 min
- 12.4Các yếu tố kích hoạt và kiểm toán thực tếTự động hóa sự an toàn: tự động cập nhật ngày "update_at" và lưu trữ các hàng đã xóa một cách kỳ diệu để đảm bảo tuân thủ.~12 min
13 · Chức năng cửa sổ
Phân tích dữ liệu nâng cao mà không thu gọn các hàng: khám phá OVER(), PARTITION BY và các hàm phân tích.
- 13.1Giới thiệu và mệnh đề OVERChạy các phép tính tổng hợp (như SUM hoặc AVG) trong khi vẫn giữ nguyên các hàng riêng lẻ ban đầu.~15 min
- 13.2Nhóm với PHẦN THAM GIA THEOTạo các nhóm logic (cửa sổ) bên trong dữ liệu để áp dụng các hàm mà không cần sử dụng GROUP BY.~15 min
- 13.3Xếp hạng: ROW_NUMBER, RANK và DENSE_RANKGán số hàng liên tiếp và xếp hạng cho kết quả, xử lý chính xác các mối quan hệ.~15 min
- 13.4Thay đổi: LAG và LEADTruy cập trực tiếp các giá trị từ hàng trước hoặc hàng tiếp theo từ hàng hiện tại để tính toán delta và các biến thể.~12 min
14 · CTE và truy vấn phân cấp (VỚI)
Đơn giản hóa các truy vấn lớn với Biểu thức bảng chung và điều hướng các cây dữ liệu không giới hạn bằng CTE đệ quy.
- 14.1Giới thiệu về CTE (VỚI)Thay thế các truy vấn con lồng nhau không thể đọc được bằng định dạng thủ tục rõ ràng bằng cách khai báo "bảng ảo" tạm thời.~12 min
- 14.2CTE nhiều và được xâu chuỗiChế ngự sự phức tạp bằng cách chia quá trình xử lý thành nhiều bước tuần tự bên trong một câu lệnh CÓ.~15 min
- 14.3CTE đệ quy: dữ liệu hình câyĐiều hướng không giới hạn các hệ thống phân cấp người quản lý và các danh mục cha-con bằng cách gọi CTE từ chính nó.~18 min
15 · PostgreSQL JSON và NoSQL
Tận dụng sức mạnh quan hệ kết hợp với hỗ trợ tài liệu linh hoạt thông qua JSON và JSONB mà không cần sử dụng cơ sở dữ liệu bên ngoài.