Hiện nay nhu cầu học SQL cho Data Analyst ngày càng cao do đây là một trong những ngôn ngữ truy vấn dữ liệu đang có nhu cầu cao và đã trở thành một kỹ năng quan trọng trong phân tích dữ liệu.
Vì vậy trong bài viết này, Datapot xin được chia sẻ tới bạn tổng hợp các tài liệu SQL miến phí được sắp xếp có lộ trình phù hợp với người muốn học SQL để làm phân tích dữ liệu. Để giúp các bạn tự học hiệu quả, các tài liệu SQL đã được sắp xếp có lộ trình để giúp các bạn biết được mình cần học gì cũng như có thứ tự tìm hiểu hợp lý.
Mục lục
- 1 Tại sao nên học SQL
- 2 Các lỗi thường gặp khi tự học SQL
- 3 Vậy học như nào cho hiệu quả?
- 4 Tài liệu SQL cơ bản có lộ trình cho người mới
- 4.1 Phần 1 – Tổng quan về SQL
- 4.2 Phần 2 – Các kiểu dữ liệu trong SQL và các hàm xử lý dữ liệu tương ứng
- 4.3 Phần 3 – Câu lệnh WHERE và truy vấn có điều kiện
- 4.4 Phần 4 – Hai kiểu gộp bảng bằng JOIN và UNION trong SQL
- 4.5 Phần 5 – Mệnh đề GROUP BY và HAVING trong SQL
- 4.6 Phần 6 – SUBQUERY và CTE trong SQL
- 5 Tài liệu SQL nâng cao
- 6 Tài liệu tham khảo khác
- 7 Lời tạm kết
Tại sao nên học SQL
Trước khi tìm hiểu thêm về các tài liệu, nếu bạn là một người mới tìm hiểu hoặc fresher mới gia nhập ngành phân tích dữ liệu, chắc hẳn bạn đang băn khoăn SQL là gì? Và tại sao bạn nên học SQL?
Có hai điều ở đây:
- Sự phổ biến của SQL
- Nhu cầu về SQL
Mức độ phổ biến trong ngành dữ liệu
Điều đầu tiên cần nói đến đó là mức đổ phổ biến của SQL. Hầu như tất cả các công ty lớn trong ngành công nghệ như Uber, Netflix, Aribnb , ngày cả những công ty như Facebook, Google hay Amazon và nhiều công ty lớn khác đều sử dụng SQL.
SQL cũng là một trong những ngôn ngữ rất phổ biến được sử dụng nhiều bởi Data Analyst, Data Scientist hay Data Engineer. Trong một khảo sát của StackOverflow, sự SQL phổ biến hơn cả Python, R và nhiều ngôn ngữ khác.
SQL là kỹ năng quan trọng khi phân tích dữ liệu
Nếu bạn muốn kiếm một công việc về dữ liệu, thì đây là một trong những kỹ năng mà nhà tuyển dụng sẽ cần ở bạn. Thậm chí kỹ năng này còn được yêu cầu ngay cả với những vị trí entry-level như Intern hay Fresher.
Có thể thấy SQL đang là nhu cầu, chính vì vậy mà hiện này ngày càng nhiều người học SQL để trang bị thêm kỹ năng hay để trở thành Data Analyst.
Các lỗi thường gặp khi tự học SQL
Có nhiều cách để học một ngôn ngữ và cách tự học vẫn thường là lựa chọn ưu tiên đối với người mới học. Tự chủ động tìm kiếm và học tập luôn là điều tốt, tuy nhiên, với người mới thì luôn có những khó khăn, sai lầm khi học một thứ mới.
Với hoc SQL, người mới thường có hai lỗi:
- Tiếp nhận quá nhiều thông tin mà không xử lý được
- Học xong nhưng không vận dụng được trong thực tế, công việc
Tiếp cận quá nhiều thông tin
Người mới học thường hay bị sa đà vào việc tìm kiếm thông tin. Khi còn chưa biết bắt đầu từ đâu thì tiếp cận quá nhiều thông tin sẽ dễ bị bối rối và không xử lý được, và sẽ khó trong việc xác định bắt đầu từ đâu, học gì và lộ trình như nào.
Không vận dụng được trong thực tế
Một điều nữa đó là khó khăn trong việc ứng dụng SQL vào giải quyết các vấn đề. Điều này có thể là do nguồn tự học chỉ đưa ra nội dung, kiến thức chưa đủ chi tiết, hoặc người tự học học không đủ sâu. Vì thế mà khi gặp bài toán thực tế lại không biết nên vận dụng các câu lệnh để giải quyết.
Ngoài ra khi tự học, nếu chỉ tập trung học tool thì sẽ rất khó để giải quyết các vấn đề thực tế. Điều này là vì chúng ta thiếu mất sự rèn luyện tư duy giải quyết vấn đề (Problem Solving)
Vậy học như nào cho hiệu quả?
Học đúng trọng tâm và có lộ trình
Chúng ta nên xác định được trọng tâm của việc học. Điều này là vì khi học SQL để làm việc phân tích như của Data Analyst (truy vấn và xử lý dữ liệu) sẽ khác với học SQL cho các vị trí khác như Data Engineer (nhập, xuất, chuyển đổi dữ liệu từ nhiều nguồn), Database Admin (quản trị cơ sở dữ liệu).
Nếu bạn muốn làm phân tích dữ liệu hay trở thành Data Analyst, thì trọng tâm của việc tự học SQL nên đặt vào việc để truy vấn và xử lý dữ liệu một cách hiệu quả là đủ.
Ngoài việc học có trọng tâm thì cũng nên có một lộ trình, thứ tự sắp xếp kiến thức cần ưu tiên học một cách hợp lý.
Vận dụng được vào thực tế
Để vận dụng được SQL hiệu quả, ngoài việc hiểu lý thuyết, thực hành các câu lệnh, thì cần có tư duy giải quyết vấn đề. Vì khi đi làm, công việc sẽ tập trung vào giải các bài toán phân tích, vấn đề của doanh nghiệp chứ không chỉ là những câu truy vấn đơn lẻ như khi thực hành.
Để rõ hơn về tư duy giải quyết vấn đề, các bạn có thể tham khảo một số case study về SQL liên quan đến khách hàng như phân tích phân khúc khách hàng, giá trị vòng đời khách hàng hay phân tích RFM.
Một vài ứng dụng khác phân tích market, build redash dashboard bằng SQL.
Lựa chọn công cụ thực hành phù hợp
Một yếu tố mà thường không được chú trọng để học tập hiệu quả đó là công cụ, ngay từ đâu chúng ta nên có một công cụ tiện lợi để việc thực hành dễ dàng và xuyên suốt. Điều này là để đảm bảo việc thực hành không gián đoạn khi phải chuyển qua lại nhiều công cụ.
Thực hành trên các nền tảng online
Thực hành SQL online trên các nền tảng trực tuyến không còn xa lạ, đây là lựa chọn tối ưu đối với người không muốn phải setup nhiều. Tuy nhiên khi sử dụng các nền tảng này, có một vài hạn chế như mất phí và khó tùy chỉnh theo nhu cầu cá nhân được. Tham khảo thêm các nền tảng thực hành SQL online phổ biến.
Tự cài đặt công cụ để thực hành
Nếu tự cài đặt, chúng ta có thể bắt đầu với Microsoft SQL Server. Để biết vì sao, hãy tìm hiểu điểm mạnh của SQL Server. Ngoài SQL Server, mời bạn tìm hiểu thêm về các hệ quản trị cở sở dữ liệu phổ biến khác.
Chúng ta có thể lựa chọn giữa hai phiên bản phổ biến là 2019 và 2022. Để cài đặt, bạn xem hướng dẫn cài đặt SQL Server 2019 hoặc cài đặt SQL Server 2022 nhé.
Khi cài đặt xong, chúng ta có thể khôi phục database mẫu AdventureWorks cung cấp sẵn bởi Microsoft để có thể thực hành truy vấn được luôn. Tải AdventureWorks sample databases và xem hướng dẫn cách khôi phục AdventureWorks trong SQL Server.
Cuối cùng, để có thể tương tác được với nhiều hệ quản trị cở sở dữ liệu, chúng ta nên cài đặt Azure Data Studio. Việc cài đặt Azure Data Studio mang lại nhiều lợi ích về tương tác được với nhiều hệ quản trị cơ sở dữ liệu và làm việc sau này. Một lựa chọn thay thế khác là JetBrains DataGrip, bạn có thể start miễn phí dùng thử 30 ngày (với học viên của Datapot sẽ được nhận ưu đãi Student Pack trị giá 270USD/năm).
Tài liệu SQL cơ bản có lộ trình cho người mới
Phần 1 – Tổng quan về SQL
Các bạn sẽ được học về những khái niệm, kiến thức cơ bản nhất về SQL, và chúng sẽ là nền tảng cho những phần tiếp theo.
| Nội dung trong phần 1 | |
|---|---|
| 1 | Giới thiệu về hệ thống quản trị cơ sở dữ liệu (DBMS) |
| Các hệ thống quản trị CSDL Chuẩn ISO | |
| 2 | Một số khái niệm cơ bản trong CSDL |
| CSDL quan hệ Máy chủ Cơ sở dữ liệu Lược đồ Bảng CSDL phi quan hệ | |
| 3 | Các nhóm câu lệnh |
| 4 | Cấu trúc câu lệnh |
| SELECT và FROM WHERE GROUP BY HAVING ORDER BY | |
| 5 | Logic thực thi câu lệnh (Order Of Execution) |
| 6 | Các tips khi viết truy vấn |
| Một số lưu ý khi viết truy vấn Những ngầm định khi viết SQL | |
| Tài liệu bonus: So sánh các hệ quản trị CSDL Khám phá thêm về T-SQL Cách dùng mệnh để WHERE hiệu quả |
Phần 2 – Các kiểu dữ liệu trong SQL và các hàm xử lý dữ liệu tương ứng
Sau khi đã nắm được cơ bản về các khái niệm cần thiết, ở phần 2 chúng ta sẽ tìm hiểu về các kiểu dữ liệu. Việc hiệu đúng bản chất của kiểu dữ liệu rất quan trọng trong việc xử lý dữ hiệu quả
| Nội dung chính trong phần 2 | |
|---|---|
| 1 | Cách xem thuộc tính của cột |
| Tên cột Kiểu dữ liệu Chỉ mục Một số ràng buộc (constraints) trong cột và bảng | |
| 2 | Kiểu dữ liệu trong SQL Server |
| Dữ liệu dạng số Dữ liệu dạng số xấp xỉ Dữ liệu dạng số chính xác Dữ liệu dạng ký tự Dữ liệu dạng chuỗi ký tự Dữ liệu dạng chuỗi nhị phân Dữ liệu dạng ký tự Unicode Dữ liệu dạng ngày giờ Trạng thái NULL của dữ liệu | |
| 3 | Kiểm tra các kiểu dữ liệu của cột trong bảng |
| 4 | Các hàm làm việc tương ứng kiểu dữ liệu |
| Hàm chuyển đổi kiểu dữ liệu Xử lý dữ liệu dạng chuỗi Xử lý và thao tác với dữ liệu dạng ngày (Date manipulations) Xử lý các dữ liệu không tồn tại hoặc không có sẵn (NULL) | |
| 5 | Nhóm hàm định dạng dữ liệu |
| Định dạng ngày Làm tròn số | |
| Tài liệu bonus: Một vài lưu ý khi làm việc với NULL trong SQL |
Phần 3 – Câu lệnh WHERE và truy vấn có điều kiện
Trong phần 3, chúng ta sẽ tìm hiểu sâu về mệnh đề WHERE và cách lọc dữ liệu với một hoặc nhiều điều kiện.
| Nội dung chính trong phần 3 | |
|---|---|
| 1 | Giới thiệu về mệnh đề WHERE |
| 2 | Lọc khi có nhiều hơn một điều điện |
| 3 | Các loại toán tử phổ biến |
| Toán tử so sánh Toán tử logic Toán tử so sánh giá trị tương tối (LIKE) Toán tử lọc trong tập giá trị (IN) Toán tử truy vấn giá trị trong khoảng (BETWEEN) Toán tử xử lý NULLToán tử phủ định điều kiện (NOT) | |
| Tài liệu bonus: Xem thêm ứng dụng khác của WHERE |
Phần 4 – Hai kiểu gộp bảng bằng JOIN và UNION trong SQL
Khi một bảng đơn không đủ thông tin, ta sẽ cần kết hợp dữ liệu từ các bảng để có được kết quả mong muốn. Ở phần 4 này, chúng ta sẽ tìm hiểu về 2 kiểu kết hợp bảng phổ biến là JOIN và UNION.
| Nội dung chính trong phần 4 | |
|---|---|
| 1 | Kết hợp bảng sử dụng JOIN |
| Khoá chính Khoá ngoại Kết hợp điểm chung (Inner Join) Kết hợp trái (Left Join) Kết hợp phải (Right Join) Kết hợp chéo (Cross Join) Kết hợp tất cả (Outer Join/Full Outer Join) Kết hợp với nhiều hơn 2 bảng Kết hợp với chính nó (Self Join) | |
| 2 | Các lưu ý khi viết JOIN |
| Lưu ý 1: Về Alias tên bảng Lưu ý 2: Lỗi Ambigous column name | |
| 3 | Kết hợp bảng sử dụng UNION |
| UNION UNION ALL | |
| 4 | Một số lý thuyết tập hợp khác |
| Intersect Exception | |
| Tài liệu bonus: Đọc thêm về các loại JOIN Các ứng dụng khác của Self Join Tìm hiểu về No-Equi Join Lưu ý về JOIN trong phân tích dữ liệu Đọc thêm về ứng dụng của JOIN và UNION Tìm hiểu về toán tử tập hợp SET OPERATOR trong SQL |
Phần 5 – Mệnh đề GROUP BY và HAVING trong SQL
Một trong những tính năng hữu ích của SQL đó là GROUP BY. Với tính năng này, chúng ta có thể thực hiện các tính toán tổng hợp và nhóm theo hàng. Và khi thực hiện tính toán mà chúng ta cần thêm điều kiện hoặc sắp xếp thứ hạng, lúc này HAVING và WINDOW FUNCTIONS sẽ rất có ích.
| Nội dung chính trong phần 5 | |
|---|---|
| 1 | Nhóm các hàng bằng GROUP BY |
| 2 | Chỉ định điều kiện các nhóm bằng mệnh đề HAVING |
| 3 | WHERE và HAVING khác nhau ở đâu? |
| 4 | Hàm cửa sổ (Window Function) |
| Hàm xếp hạng (Ranking Functions) So sánh 3 hàm RANK, DENSE_RANK và ROW_NUMBER Một số hàm tính toán trong hàm cửa sổ (Window Functions) khác | |
| Tài liệu bonus: Những ứng dụng khác của WINDOW FUNCTION WINDOW FUNCTION vs GROUP BY GROUP BY vs PARTITION |
Phần 6 – SUBQUERY và CTE trong SQL
Luôn có những bài toán, vấn đề phức tạp hơn mà một truy vấn không thể giải quyết được. Ví dụ như so sánh kết quả của các truy vấn khác nhau, thực hiện các phép tính trên một tập hợp con hay sử dụng lại một truy vấn nhiều lần, lúc này nếu biết cách dùng SUBQUERY và CTE sẽ rất hữu ích.
| Nội dung chính trong phần 6 | |
|---|---|
| 1 | Truy vấn con (Subquery) |
| Truy vấn con (Subquery) dùng với IN Truy vấn con (Subquery) sử dụng với mệnh đề FROM Truy vấn con tương quan (Correlated Subquery) | |
| 2 | Bảng chứa dữ liệu tạm thời – CTE (Common Table Expressions) |
| 3 | Một số lưu ý thường gặp khi sử dụng Subquery và CTE |
| 4 | Ưu và nhược điểm khi sử dụng Subquery và CTE |
| Tài liệu bonus: Một số ứng dụng khác của CTE trong SQL |
Tài liệu SQL nâng cao
Lý thuyết nâng cao
Mục này sẽ chứa các bài lý thuyết nâng cao cả về SQL và dữ liệu nói chung.
- Hiểu thêm về cơ chế hoạt động của SQL bằng đại số quan hệ
- Các mô hình dữ liệu
- Chuẩn hóa dữ liệu 1NF, 2NF, 3NF
Các kiểu chứa dữ liệu tạm thời
Đây là một kỹ thuật nâng cao trong SQL, những rất có ích nếu ta hiểu được và biết sử dụng chúng trong các bài toán query phức tập.
- Bảng tạm: Local và Global Temporary Table
- So sánh Subquery và CTE cái nào ngon hơn?
- Có thể bạn chưa biết đến biến table trong SQL Server?
Tối ưu truy vấn
Các tips, kỹ thuật tối ưu hóa (SQL performance tuning) để tăng hiệu suất và giảm thời gian truy vấn.
——
Tài liệu tham khảo khác
Lời tạm kết
Hi vọng qua bài chia sẻ này, bộ tài liệu SQL sẽ là điểm tựa để các bạn có định hướng và lộ trình rõ ràng hơn. Chúc các bạn sẽ có những trải nghiệm thú vị khi khám phá và giải mã những con số.
Bộ tài liệu tự học SQL trong bài viết này sẽ được cập nhật thường xuyên để đảm bảo kiến thức được chia sẻ luôn là mới nhất. Bạn hãy bookmark lại để theo dõi những kiến thức mới cũng như để tra cứu lại kiến thức mỗi khi cần nhé. Chúc các bạn thành công trên con đường mình đang theo đuổi!
Data Analyst
