Cách định dạng truy vấn SQL
SQL lộn xộn là một trong những cách nhanh nhất để gây ra lỗi. Khi một truy vấn nằm trên một dòng dài duy nhất mà không có thụt lề, khó để thấy điều kiện nào áp dụng cho phép kết hợp nào, các truy vấn con bắt đầu và kết thúc ở đâu, hoặc liệu logic có chính xác hay không.
Tại sao việc định dạng quan trọng
- Gỡ lỗi — một truy vấn được định dạng tốt làm cho các lỗi logic hiển thị. Bạn có thể theo dõi luồng từ SELECT đến WHERE rồi đến JOIN mà không cần đoán.
- Đánh giá mã — người đánh giá đọc SQL được định dạng trong vài giây. Một truy vấn trên một dòng buộc họ phải phân tích nó tinh thần trước.
- Bảo trì — khi bạn quay lại một truy vấn vài tháng sau, định dạng cho bạn biết nó làm gì trong nháy mắt.
- Cộng tác — định dạng nhất quán trong một nhóm có nghĩa là mọi người đều đọc SQL theo cùng một cách.
Cách định dạng SQL
- Dán SQL của bạn — nhập một truy vấn đã nén hoặc lộn xộn vào trình định dạng. Nó xử lý SELECT, INSERT, UPDATE, DELETE, CREATE TABLE, cũng như các truy vấn phức tạp với truy vấn con và phép kết hợp.
- Cấu hình tùy chọn — chọn kích thước thụt lề và liệu các từ khóa có nên viết hoa hay không. Các thiết lập này tương ứng với hướng dẫn kiểu của dự án của bạn.
- Sao chép kết quả — SQL được định dạng đã sẵn sàng để dán lại vào trình soạn thảo, máy khách cơ sở dữ liệu hoặc tài liệu của bạn.
Định dạng tốt trông như thế nào
Một truy vấn như select u.name, o.total from users u join orders o on u.id = o.user_id where o.total > 100 and u.active = 1 order by o.total desc trở thành:
SELECT
u.name,
o.total
FROM users u
JOIN orders o
ON u.id = o.user_id
WHERE o.total > 100
AND u.active = 1
ORDER BY o.total DESC
Mỗi mệnh đề bắt đầu trên dòng riêng của nó. Các điều kiện được thụt lề dưới mệnh đề cha. Các phép kết hợp và điều kiện ON của chúng được ghép cặp rõ ràng.
Mẹo
- Định dạng trước khi commit — đưa SQL của bạn qua một trình định dạng trước khi thêm nó vào kiểm soát phiên bản. Điều này giữ các diff sạch và tập trung các đánh giá vào logic, không phải kiểu.
- Sử dụng chữ hoa từ khóa nhất quán — chọn chữ hoa hoặc chữ thường và bám sát nó trong toàn bộ dự án của bạn. Các kiểu trộn lẫn làm cho các truy vấn khó đọc.
- Cắt các truy vấn phức tạp — nếu một truy vấn vẫn khó đọc ngay cả khi được định dạng, hãy cắt nó thành CTE (Common Table Expressions) hoặc các view. Định dạng không thể sửa logic phức tạp về cơ bản.
- Kiểm tra tô màu cú pháp — một trình định dạng tốt cung cấp tô màu phân biệt từ khóa, chuỗi và số, giúp phát hiện lỗi chính tả.
Câu hỏi thường gặp
Có nên viết hoa các từ khóa SQL không?
Đó là một quy ước được tuân theo rộng rãi để viết hoa các từ khóa SQL (SELECT, FROM, WHERE) và viết thường tên bảng hoặc cột. Điều này làm cho các truy vấn dễ đọc hơn về mặt thị giác. Hầu hết các hướng dẫn kiểu khuyến nghị nó, nhưng không có công cụ cơ sở dữ liệu nào áp đặt nó.
Việc định dạng có thay đổi việc thực thi truy vấn không?
Không. Khoảng trắng và thụt lề không có tác dụng đến việc thực thi SQL. Định dạng hoàn toàn cho khả năng đọc của con người. Một truy vấn đã nén và một truy vấn đã thụt lề tạo ra cùng kết quả.
Nên dùng kích thước thụt lề nào?
Hai hoặc bốn khoảng trắng đều phổ biến. Chọn cái mà nhóm của bạn sử dụng và giữ nhất quán. Hầu hết các trình định dạng SQL cho phép cấu hình nó.
SQL của tôi có được gửi đến máy chủ không?
Không. Việc định dạng được thực hiện hoàn toàn trong trình duyệt của bạn. Các truy vấn của bạn không bao giờ rời khỏi thiết bị của bạn.