Chuyên đề SQL: Nền tảng cú pháp, truy vấn, tổng hợp, kết nối, truy vấn con và câu hỏi phỏng vấn thường gặp
SQL là kiến thức nền tảng về database mà backend developer không thể bỏ qua. Dù học tiếp về index của MySQL, execution plan hay tối ưu SQL chậm, bạn đều cần nắm vững các khái niệm cơ bản như truy vấn, lọc, tổng hợp, kết nối, truy vấn con và thay đổi dữ liệu.
Dành cho ai
- Backend developer đang học kiến thức cơ bản về database và cú pháp SQL.
- Người chuẩn bị cho các câu hỏi phỏng vấn về kiến thức nền tảng SQL, truy vấn SQL và CRUD database.
- Người đã viết SQL đơn giản nhưng chưa nắm chắc JOIN, GROUP BY, HAVING, truy vấn con và thứ tự thực thi.
- Kỹ sư muốn củng cố kiến thức nền tảng SQL trước khi học index của MySQL và tối ưu SQL.
Trọng tâm học
- Nên hiểu vai trò và thứ tự thực thi của SELECT, WHERE, ORDER BY, LIMIT, GROUP BY, HAVING như thế nào?
- INNER JOIN, LEFT JOIN, RIGHT JOIN, UNION và truy vấn con phù hợp với những trường hợp sử dụng nào?
- Kết hợp hàm tổng hợp, thống kê theo nhóm và lọc theo điều kiện như thế nào?
- Cách viết INSERT, UPDATE, DELETE có những điểm nào dễ bị bỏ sót?
- Nên phân tích câu hỏi SQL trong phỏng vấn theo quan hệ giữa các bảng, điều kiện lọc, tiêu chí tổng hợp, sắp xếp và phân trang như thế nào?
Thứ tự đọc đề xuất
- Tổng hợp kiến thức nền tảng cú pháp SQL: trước tiên nắm vững cú pháp cơ bản và các thao tác thường gặp của SQL một cách có hệ thống.
- Tổng hợp câu hỏi phỏng vấn SQL thường gặp (1), Tổng hợp câu hỏi phỏng vấn SQL thường gặp (2): luyện tập truy vấn cơ bản, sắp xếp, tổng hợp và các hàm thường gặp.
- Tổng hợp câu hỏi phỏng vấn SQL thường gặp (3): tiếp tục bổ sung tư duy về kết nối, truy vấn con và truy vấn phức tạp.
- Tổng hợp câu hỏi phỏng vấn SQL thường gặp (4), Tổng hợp câu hỏi phỏng vấn SQL thường gặp (5): củng cố khả năng phân tích truy vấn qua nhiều bài tập hơn.
- Sau khi học xong nền tảng SQL, bạn nên tiếp tục đọc Chuyên đề MySQL để kết hợp cách viết SQL với index và execution plan.
Bài viết cốt lõi
- Tổng hợp kiến thức nền tảng cú pháp SQL: bao quát cú pháp cơ bản về truy vấn, lọc, sắp xếp, tổng hợp, phân nhóm, kết nối, truy vấn con, thêm, sửa, xoá và constraint.
- Tổng hợp câu hỏi phỏng vấn SQL thường gặp (1): làm quen với truy vấn, sắp xếp và lọc đơn giản qua các bài cơ bản.
- Tổng hợp câu hỏi phỏng vấn SQL thường gặp (2): tiếp tục luyện tập cách dùng hàm, xử lý chuỗi, xử lý ngày tháng và các cách viết truy vấn thường gặp.
- Tổng hợp câu hỏi phỏng vấn SQL thường gặp (3): phù hợp để rèn luyện truy vấn nhiều bảng, thống kê theo nhóm và phân tích truy vấn con.
- Tổng hợp câu hỏi phỏng vấn SQL thường gặp (4): bổ sung nhiều câu hỏi phỏng vấn SQL thường gặp và hướng giải quyết.
- Tổng hợp câu hỏi phỏng vấn SQL thường gặp (5): tiếp tục củng cố khả năng vận dụng tổng hợp vào các bài truy vấn SQL.
Câu hỏi thường gặp
- Thứ tự thực thi logic của câu lệnh truy vấn SQL là gì?
- WHERE và HAVING khác nhau như thế nào?
- INNER JOIN và LEFT JOIN khác nhau như thế nào?
- UNION và UNION ALL khác nhau như thế nào?
- COUNT(*), COUNT(1), COUNT(tên cột) khác nhau như thế nào?
- Nên chọn truy vấn con hay JOIN trong trường hợp nào?
- Vì sao sau GROUP BY chỉ có thể chọn cột phân nhóm hoặc kết quả tổng hợp?
- Truy vấn phân trang có những cách viết thường gặp nào?
- Vì sao UPDATE và DELETE luôn cần thận trọng khi thêm điều kiện lọc?
- Nên phân tích câu hỏi SQL dựa trên quan hệ giữa các bảng như thế nào?
Chuyên đề liên quan
- Hệ thống kiến thức về database
- Chuyên đề MySQL
- Hệ thống kiến thức về high-performance
- Tổng hợp các phương pháp tối ưu SQL thường gặp
Lời cuối
Nếu nội dung hữu ích với bạn, hãy tiện tay tặng JavaGuide một Star miễn phí để ủng hộ: GitHub | Gitee.
JavaGuide đã được duy trì gần bảy năm, tích lũy 6100+ commit, với sự chung tay hoàn thiện của 620+ contributor. Star, phản hồi và PR của bạn đều là động lực để dự án tiếp tục cập nhật.
Nếu bạn đang chuẩn bị phỏng vấn backend / phát triển ứng dụng AI, có thể tham khảo Knowledge Planet của tôi, bao gồm các project thực tế về backend và AI, tối ưu CV, hỏi đáp 1-1 và tài liệu về các trọng điểm thường gặp, đã được duy trì liên tục sáu năm.
