Day 1 - Getting started with SQL!

Bối cảnh: Hệ thống E-commerce (Thương mại điện tử)


1. Welcome!

  • Chào mừng bạn đến với khóa học SQL!

  • Trong khóa học này, chúng ta sẽ sử dụng bối cảnh một hệ thống E-commerce (thương mại điện tử) để học và thực hành SQL.

  • Bạn sẽ học cách quản lý và phân tích dữ liệu từ các bảng như sản phẩm, đơn hàng, khách hàng, và thanh toán.

  • Mục tiêu của ngày hôm nay là làm quen với SQL, cài đặt công cụ, và thực hiện các truy vấn cơ bản.


2. How to get the most out of the course

  • Để đạt hiệu quả cao nhất trong khóa học:

    • Làm theo hướng dẫn từng bước.

    • Thực hành ngay sau mỗi bài học.

    • Đặt câu hỏi và tham gia thảo luận nếu có thắc mắc.

    • Áp dụng kiến thức vào các dự án thực tế, như phân tích dữ liệu đơn hàng hoặc tối ưu hóa quy trình bán hàng.


3. How this course works

  • Khóa học được chia thành 15 ngày, mỗi ngày tập trung vào một chủ đề cụ thể.

  • Mỗi bài học bao gồm:

    • Lý thuyết: Giải thích khái niệm.

    • Thực hành: Áp dụng ngay vào hệ thống E-commerce.

    • Thử thách: Bài tập để bạn tự làm.

    • Giải pháp: Đáp án và hướng dẫn chi tiết.


4. Why learning SQL?

  • SQL là ngôn ngữ không thể thiếu để làm việc với dữ liệu.

  • Trong bối cảnh E-commerce, SQL giúp bạn:

    • Truy vấn thông tin sản phẩm, đơn hàng, và khách hàng.

    • Phân tích doanh thu, xu hướng mua hàng.

    • Tối ưu hóa quản lý kho và logistics.

  • Ví dụ: Bạn có thể dùng SQL để trả lời câu hỏi như "Sản phẩm nào bán chạy nhất trong tháng qua?" hoặc "Khách hàng nào có giá trị đơn hàng cao nhất?".


5. Let the Journey Begin!

  • Bắt đầu hành trình học SQL với tinh thần sẵn sàng và quyết tâm!

  • Hãy tưởng tượng bạn là một Data Analyst hoặc Database Manager trong một công ty E-commerce, và nhiệm vụ của bạn là khai thác dữ liệu để đưa ra quyết định kinh doanh thông minh.


6. Let's get started!

  • Trước khi đi sâu vào SQL, hãy trả lời câu hỏi nhỏ sau:

    • Câu hỏi: Bạn đã từng làm việc với dữ liệu chưa? Nếu có, bạn thường dùng công cụ gì?

    • Mục đích: Giúp bạn tự đánh giá kiến thức hiện tại và chuẩn bị tâm thế cho khóa học.


7. What is a database?

  • Database (Cơ sở dữ liệu) là nơi lưu trữ thông tin một cách có tổ chức.

  • Trong hệ thống E-commerce, database có thể chứa các bảng như:

    • Products: Thông tin sản phẩm (tên, giá, số lượng).

    • Orders: Thông tin đơn hàng (mã đơn, ngày đặt, tổng tiền).

    • Customers: Thông tin khách hàng (tên, email, địa chỉ).

    • Payments: Thông tin thanh toán (mã thanh toán, phương thức, số tiền).


8. Databases

  • Câu hỏi: Hãy liệt kê 3 loại dữ liệu bạn nghĩ sẽ được lưu trữ trong database của một hệ thống E-commerce.

  • Gợi ý: Ví dụ: Tên sản phẩm, giá, số lượng tồn kho.


9. Different dialects of SQL

  • SQL có nhiều phiên bản (dialects) như MySQL, PostgreSQL, SQL Server, và SQLite.

  • Trong khóa học này, chúng ta sẽ sử dụng PostgreSQL vì tính ổn định và phổ biến trong các hệ thống lớn như E-commerce.


10. Dialects of SQL

  • Câu hỏi 1: Bạn đã từng nghe hoặc sử dụng loại SQL nào trước đây?

  • Câu hỏi 2: Theo bạn, tại sao PostgreSQL lại phù hợp với hệ thống E-commerce?


11. Installing PostgreSQL & pgAdmin (Windows)

  • Hướng dẫn chi tiết cách cài đặt PostgreSQLpgAdmin trên Windows:

    1. Tải PostgreSQL từ trang chủ.

    2. Cài đặt và thiết lập mật khẩu cho tài khoản postgres.

    3. Cài đặt pgAdmin để quản lý database trực quan.


12. Common problems: Set binary paths

  • Nếu pgAdmin báo lỗi về binary paths, hãy làm theo các bước sau:

    1. Mở pgAdmin.

    2. Vào File > Preferences > Paths > Binary Paths.

    3. Chọn đúng phiên bản PostgreSQL và thiết lập đường dẫn đến thư mục bin.


13. Installing PostgreSQL & pgAdmin (MacOS)

  • Hướng dẫn cài đặt PostgreSQL và pgAdmin trên MacOS:

    1. Tải PostgreSQL từ trang chủ hoặc sử dụng Homebrew.

    2. Cài đặt pgAdmin thông qua dmg file.

    3. Thiết lập kết nối giữa pgAdmin và PostgreSQL.


14. Setting up the database

  • Tạo database cho hệ thống E-commerce:

    1. Mở pgAdmin và tạo một database mới với tên ecommerce.

    2. Tạo các bảng cơ bản như products, orders, customers, và payments.

    3. Nhập dữ liệu mẫu để thực hành.


15. Common problems: Slow performance

  • Nếu pgAdmin chạy chậm, hãy thử:

    • Đóng các tab không cần thiết.

    • Tăng bộ nhớ RAM cho máy tính.

    • Sử dụng phiên bản mới nhất của pgAdmin và PostgreSQL.


16. The Project

  • Giới thiệu dự án xuyên suốt khóa học: Phân tích dữ liệu E-commerce.

  • Bạn sẽ học cách truy vấn dữ liệu từ các bảng như:

    • products: Tìm sản phẩm bán chạy nhất.

    • orders: Tính tổng doanh thu theo tháng.

    • customers: Phân loại khách hàng theo giá trị đơn hàng.


17. SELECT

  • SELECT là câu lệnh cơ bản nhất trong SQL, dùng để lấy dữ liệu từ bảng.

  • Ví dụ:

      SELECT product_name, price FROM products;
    

    Câu lệnh này sẽ trả về tên và giá của tất cả sản phẩm trong bảng products.


18. Challenge: SELECT

  • Yêu cầu: Viết truy vấn để lấy tất cả thông tin từ bảng customers.

  • Gợi ý: Sử dụng cú pháp SELECT * FROM customers;.


19. Solution: SELECT

  • Giải pháp:

      SELECT * FROM customers;
    

    Câu lệnh này sẽ trả về tất cả thông tin từ bảng customers.


20. ORDER BY

  • ORDER BY dùng để sắp xếp kết quả truy vấn.

  • Ví dụ:

      SELECT product_name, price FROM products ORDER BY price DESC;
    

    Câu lệnh này sẽ trả về danh sách sản phẩm được sắp xếp theo giá giảm dần.


21. SELECT & ORDER BY

  • Câu hỏi: Viết truy vấn để lấy tên và giá sản phẩm, sắp xếp theo giá tăng dần.

22. Challenge: ORDER BY

  • Yêu cầu: Viết truy vấn để lấy tất cả đơn hàng từ bảng orders, sắp xếp theo ngày đặt hàng (order_date) từ mới nhất đến cũ nhất.

23. Solution: ORDER BY

  • Giải pháp:

      SELECT * FROM orders ORDER BY order_date DESC;
    

24. SELECT DISTINCT

  • SELECT DISTINCT dùng để lấy các giá trị duy nhất từ một cột.

  • Ví dụ:

      SELECT DISTINCT category FROM products;
    

    Câu lệnh này sẽ trả về danh sách các danh mục sản phẩm không trùng lặp.


25. Challenge: SELECT DISTINCT

  • Yêu cầu: Viết truy vấn để lấy danh sách các phương thức thanh toán (payment_method) từ bảng payments.

26. Solution: SELECT DISTINCT

  • Giải pháp:

      SELECT DISTINCT payment_method FROM payments;
    

27. LIMIT

  • LIMIT dùng để giới hạn số lượng kết quả trả về.

  • Ví dụ:

      SELECT * FROM products LIMIT 10;
    

    Câu lệnh này sẽ trả về 10 sản phẩm đầu tiên từ bảng products.


28. SELECT DISTINCT & LIMIT

  • Câu hỏi: Viết truy vấn để lấy 5 khách hàng đầu tiên từ bảng customers.

29. COUNT()

  • COUNT() dùng để đếm số lượng bản ghi.

  • Ví dụ:

      SELECT COUNT(*) FROM orders;
    

    Câu lệnh này sẽ trả về tổng số đơn hàng trong bảng orders.


30. Today's challenges

  • Thử thách 1: Viết truy vấn để lấy tên và giá của 10 sản phẩm có giá cao nhất.

  • Thử thách 2: Đếm số lượng khách hàng từ bảng customers.


31. Today's summary

  • Hôm nay, bạn đã học:

    • Cách cài đặt PostgreSQL và pgAdmin.

    • Các câu lệnh cơ bản như SELECT, ORDER BY, DISTINCT, LIMIT, và COUNT().

    • Áp dụng vào hệ thống E-commerce để truy vấn dữ liệu sản phẩm, đơn hàng, và khách hàng.

  • Hẹn gặp lại bạn vào ngày 2 với chủ đề Filtering!