Chào mọi người! Hôm nay tụi mình bắt đầu một khoá học SQL siêu xịn mới nè.
Khoá này dành cho những ai (bạn chắc không phải robot chứ?), hoàn toàn chưa biết gì về SQL nhưng rất muốn thay đổi điều đó🧠. Bạn sẽ bắt đầu từ những thứ cơ bản nhất, rồi học tới stored procedures, nested transactions, triggers và tự động hoá tạo báo cáo luôn.
Trong khoá học sẽ có hàng trăm bài tập thực hành giúp bạn kết nối lý thuyết với thực tế khi dùng SQL. Và cuối cùng, bạn sẽ gặp một dự án cuối khoá với 100+ bảng😅.
Mục tiêu của tụi mình — giúp bạn dùng SQL tự tin để giải quyết mọi bài toán về dữ liệu. Sau khoá này, SQL sẽ thành công cụ quen thuộc với bạn. Bạn sẽ không phải ngồi nghĩ lâu về cách viết query, thiết kế database hay giải quyết các bài toán phân tích phức tạp — mọi thứ sẽ tự nhiên và nhanh gọn thôi.
Cách tiếp cận bài học
Trong khoá học, một số chủ đề sẽ được nhắc sơ qua trước, rồi sau đó phân tích kỹ hơn ở các bài giảng riêng. Ví dụ, khi làm quen với mô hình dữ liệu quan hệ thì không thể không nhắc tới liên kết giữa các bảng. Tương tự, ở giai đoạn đầu tụi mình sẽ cho bạn xem các sơ đồ database hoặc ví dụ rất đơn giản, không đi sâu chi tiết để bạn không bị ngợp.
Cách này giúp bạn học từng bước một — để hiểu một chủ đề, thường phải có kiến thức nền về các chủ đề khác. Nên đừng lo, tụi mình sẽ lấp đầy mọi chỗ trống trong quá trình học.
Cấu trúc khoá học
Khoá học chia theo từng level, mỗi level có vài bài giảng. Trong bài giảng sẽ có lý thuyết, bài tập thực hành và test để bạn ôn lại kiến thức.
Ở các level đầu, bạn có thể làm bài tập trực tiếp trên web — không cần cài thêm phần mềm gì cả. Sau vài level, tụi mình sẽ hướng dẫn từng bước cài PostgreSQL, IDE chuyên nghiệp và các plugin cần thiết. Mọi thứ đều từ từ, có trình tự.
Tại sao lại là PostgreSQL?
PostgreSQL — là một database hiện đại, cực kỳ phổ biến, đủ sức cho mọi dự án. Ngân hàng, startup, shop online, studio game đều dùng nó. Bạn có thể tạo Instagram hay cả nhà máy điện hạt nhân điều khiển máy pha cà phê cũng được. Nếu muốn nâng cấp, sau PostgreSQL bạn chuyển qua Microsoft SQL Server hay Oracle DB(!) cũng dễ thôi.
Tụi mình sẽ làm mọi thứ trên database PostgreSQL 17. Bạn cũng nên làm vậy nha!
Tất cả những thứ này sẽ chờ bạn ở phía trước, còn hôm nay tụi mình bắt đầu từ con số 0...
Vậy cơ sở dữ liệu là gì nhỉ?
Hãy tưởng tượng bạn lưu hết dữ liệu quan trọng — mật khẩu, danh sách mua sắm, số điện thoại người yêu cũ và công thức nấu ăn yêu thích — vào một file Excel khổng lồ tên là "cuocdoi.xlsx"📉. Mỗi ngày file đó càng phình to, lag, dễ lỗi, và tới lúc nào đó bạn nhận ra: đã đến lúc trưởng thành và lưu dữ liệu theo cách xịn hơn. Đã đến lúc chuyển sang cơ sở dữ liệu.
Cơ sở dữ liệu — không chỉ là bảng. Nó giống Excel, nhưng là Siêu-Excel: tìm kiếm, lọc, cập nhật dữ liệu cực nhanh. Không sợ hàng triệu dòng, không lag, không báo lỗi “file bị hỏng” 💔. Nói ngắn gọn, nó là trợ lý siêu cấp, không bao giờ quên bạn đã lưu số điện thoại của ai đó gặp năm 2019 thời tiền-covid.
Tại sao mình cần nó?
— bạn hỏi. Và có thật sự cần không? Mình có dùng nó đâu... Bạn chắc không?
Mọi thứ trong điện thoại của bạn đều lưu trong cơ sở dữ liệu. Ảnh, tin nhắn, email, ghi chú — TẤT CẢ đều nằm trong database. Dù bạn đã chuyển lên cloud thì cũng đừng vội mừng — dữ liệu của bạn vẫn nằm trong database trên cloud thôi😬. Cả Internet, mọi dữ liệu trên thế giới đều nằm trong database. Và nếu bạn làm IT, bạn có thể kiếm bộn tiền nhờ điều này 💰.
Không đùa đâu, thật đấy! Xem này:
- Shop online: khi bạn thêm sản phẩm vào giỏ, database sẽ lưu lại lựa chọn của bạn, sau đó chuyển sang bước thanh toán.
- Mạng xã hội: like, comment, bạn bè — tất cả đều lưu trong database.
- Hệ thống ngân hàng: database giúp theo dõi số dư, thực hiện giao dịch và truy cập thông tin tức thì.
Tất cả nhờ database, nó đảm bảo:
- Lưu trữ: dữ liệu không bị mất như cả thùng tài liệu.
- Quản lý: dữ liệu được tổ chức, cấu trúc và dễ truy cập.
- Truy xuất: lấy thông tin cụ thể nhanh và dễ dàng.
Các thành phần chính của cơ sở dữ liệu
Cơ sở dữ liệu xây dựng từ vài viên gạch cơ bản, bạn sẽ biết ngay sau đây. Ở bước này, mình sẽ so sánh đơn giản — database giống bảng trong Excel (nhưng xịn hơn nhiều!).
Bảng
Hãy tưởng tượng một bảng trong Excel: có dòng, có cột, mọi thứ gọn gàng. Bảng trong database cũng vậy. Bảng là cấu trúc lưu trữ dữ liệu chính trong database.
Mỗi bảng:
- Có tên riêng (ví dụ
studentshoặccourses). - Gồm các dòng và cột.
Dòng
Dòng — là bản ghi hoặc đối tượng bạn lưu. Một dòng là một đối tượng/thực thể, ví dụ thông tin về một sinh viên.
Ví dụ một dòng trong database về sinh viên:
id: 1, name: Alex, age: 20, group: A1
Cột
Cột — là thuộc tính hoặc đặc điểm của đối tượng. Có thể gọi là column. Ví dụ:
id— mã sinh viên duy nhất.name— tên của bạn ấy.age— tuổi.group— tên nhóm bạn ấy học.
Cách này giúp mình chia nhỏ dữ liệu và biết chính xác cần tìm gì ở đâu.
Bảng students của mình sẽ như này:
Thực tế nó hoạt động ra sao?
Với bảng Excel, mình có chương trình (Microsoft Excel) và file của nó. Database cũng vậy. Chương trình quản lý database gọi là DBMS (Hệ quản trị cơ sở dữ liệu), còn "file" của nó — đơn giản là database.
DBMS cho phép bạn:
- Thêm dòng mới vào bảng (ví dụ, sinh viên mới).
- Sửa dữ liệu ở bất kỳ cột nào.
- Tìm thông tin, ví dụ: "Tìm tất cả sinh viên nhóm A1".
- Xoá dòng nếu không cần nữa.
Quy trình làm việc với dữ liệu qua DBMS
Bạn, với tư cách người dùng hoặc dev, không làm việc trực tiếp với file lưu dữ liệu. Thay vào đó, bạn tạo "query" – bạn muốn lấy hay sửa gì – rồi gửi cho DBMS. Thường sẽ dùng ngôn ngữ query đặc biệt, phổ biến nhất là SQL, chính là thứ tụi mình sẽ học. DBMS nhận SQL query của bạn, "hiểu" nó, truy cập database, thực hiện thao tác cần thiết rồi trả kết quả về cho bạn.
Sơ đồ làm việc với database siêu đơn giản:
- User tạo query.
- Query gửi vào DBMS.
- DBMS truy cập database.
- Database trả dữ liệu về DBMS.
- DBMS xử lý dữ liệu theo query.
- Kết quả trả về cho user.
Tại sao cần cơ sở dữ liệu?
Lúc này có thể bạn nghĩ: "Chắc chỉ là Excel nâng cấp thôi, sao phải phức tạp vậy?"
Dưới đây là vài lý do vì sao database là cần thiết:
- Xử lý dữ liệu lớn. Hãy tưởng tượng bạn phải quản lý dữ liệu của hàng triệu user. Excel chắc chắn không chịu nổi đâu.
- Truy cập thông tin tiện lợi. Nếu query là "Tìm tất cả sinh viên trên 20 tuổi nhóm A1", database làm trong vài mili giây. Excel thì... chúc may mắn.
- Tổ chức và đảm bảo tính toàn vẹn dữ liệu. Database đảm bảo thông tin luôn gọn gàng, không mâu thuẫn.
- Nhiều người cùng truy cập. Bạn và đồng nghiệp có thể làm việc trên cùng một database mà không bị xung đột. Cấu trúc của nó cho phép điều đó.
Hãy tưởng tượng bạn tạo một shop online. Bạn cần lưu thông tin sản phẩm (tên, giá, loại), khách hàng (tên, liên hệ) và đơn hàng (ai mua gì, khi nào). Nếu nhét hết vào một bảng lớn, nó sẽ nhanh chóng cồng kềnh, dữ liệu lặp lại, khó tìm hoặc cập nhật mà không bị lỗi.
Database cho bạn giải pháp gọn gàng hơn: chia thông tin thành các block logic (bảng). Mỗi bảng lưu một loại đối tượng (chỉ sản phẩm hoặc chỉ user). Quan trọng là các bảng này có thể liên kết với nhau để phản ánh mối quan hệ thực tế, ví dụ user nào đã mua sản phẩm nào.
Vậy tất cả những thứ này để làm gì cho bạn?
Nếu bạn code backend hay làm việc với dữ liệu — database sẽ luôn bên bạn.
Và đây là những ai chắc chắn sẽ cần:
- 💻 Web dev — để lưu user, bài post, giỏ hàng và mọi thứ khác.
- 📊 Analyst — để kéo số liệu và làm báo cáo.
- 🛠️ Admin — để database không lag, không sập.
- 🧠 Programmer — để app không chỉ chạy mà còn thông minh, linh hoạt.
Và đúng vậy — phỏng vấn rất thích hỏi về database. Gần như luôn yêu cầu bạn viết SQL query hoặc giải thích JOIN là gì.
Nên nếu muốn tiến xa hơn — hãy làm bạn với database. Đây là một trong những kỹ năng giúp bạn thành dev tự tin thực sự.
GO TO FULL VERSION