Chuyển đến nội dung
SPCXTools

Định dạng SQL

Biến các truy vấn SQL dài, lộn xộn thành mã gọn gàng, dễ đọc và thụt lề đồng nhất.

Chạy cục bộ — tệp không bao giờ rời khỏi thiết bị của bạn

Đang tải công cụ…

Cách sử dụng Định dạng SQL

  1. 1Dán truy vấn SQL của bạn vào ô Đầu vào, hoặc nhấp vào Mẫu để thử một ví dụ.
  2. 2Chọn Loại SQL để cú pháp riêng của từng cơ sở dữ liệu được nhận diện chính xác.
  3. 3Chọn cách hiển thị từ khóa — IN HOA, in thường hoặc giữ nguyên — và kiểu thụt lề.
  4. 4Sao chép truy vấn đã định dạng hoặc tải xuống dưới dạng tệp .sql.

Làm cho SQL dễ đọc

Các câu truy vấn được sao chép từ log, do ORM tạo ra hoặc viết vội thường dính liền thành một dòng dài, rất khó đọc và càng khó debug. Công cụ định dạng SQL này sẽ chia câu truy vấn của bạn thành các mệnh đề rõ ràng — SELECT, FROM, JOIN, WHERE, GROUP BY, ORDER BY — đặt mỗi cột và điều kiện trên một dòng riêng, đồng thời thụt lề nhất quán cho các truy vấn con và biểu thức CASE. Kết quả sẽ dễ xem lại, dễ so sánh trong hệ thống quản lý phiên bản và dễ chia sẻ với đồng nghiệp hơn.

Tính năng

  • 12 loại SQL, từ SQL tiêu chuẩn đến MySQL, PostgreSQL, SQL Server, Oracle, BigQuery và Snowflake.
  • Kiểu chữ từ khóa: UPPER (viết hoa), lower (viết thường) hoặc giữ nguyên như lúc nhập; áp dụng cho từ khóa, kiểu dữ liệu và hàm.
  • Thụt lề bằng 2 dấu cách, 4 dấu cách hoặc tab.
  • Nhiều câu lệnh được phân tách bằng dấu chấm phẩy.
  • Giữ nguyên chú thích — cả chú thích dòng -- và chú thích khối /* */.
  • Sao chép hoặc tải xuống kết quả dưới dạng file .sql.
  • Riêng tư: công cụ định dạng chạy trực tiếp trên trình duyệt của bạn.

Trước và sau

Một câu truy vấn như thế này:

select u.id, u.name, count(o.id) as orders from users u left join orders o on o.user_id = u.id where u.status = 'active' group by u.id, u.name order by orders desc;

sẽ trở thành:

SELECT
  u.id,
  u.name,
  COUNT(o.id) AS orders
FROM
  users u
  LEFT JOIN orders o ON o.user_id = u.id
WHERE
  u.status = 'active'
GROUP BY
  u.id,
  u.name
ORDER BY
  orders DESC;

Mẹo viết SQL

  • Mỗi mệnh đề một dòng. Việc bắt đầu mỗi mệnh đề chính trên một dòng mới giúp bạn nhìn lướt qua là thấy ngay cấu trúc của câu truy vấn.
  • Dùng bí danh (alias) có ý nghĩa. Các bí danh ngắn như u và o có thể dùng cho các truy vấn nhỏ, nhưng bí danh mang tính mô tả sẽ rất hữu ích cho các báo cáo dài.
  • Ghi rõ tên cột trong các phép nối (join) (ví dụ: orders.user_id thay vì user_id) để tránh nhầm lẫn.
  • Giữ định dạng nhất quán trong toàn bộ dự án để các bản diff hiển thị những thay đổi thực sự, chứ không phải do khoảng trắng.

Các công cụ liên quan

Bạn đang xử lý kết quả truy vấn? Hãy chuyển đổi dữ liệu đã xuất bằng công cụ Chuyển CSV sang JSON, làm đẹp kết quả API trả về bằng Định dạng JSON, hoặc so sánh hai phiên bản của một câu truy vấn bằng công cụ So sánh văn bản.

Câu hỏi thường gặp

Hỗ trợ những phương ngữ SQL nào?
Standard SQL, MySQL, MariaDB, PostgreSQL, SQLite, SQL Server (T-SQL), Oracle PL/SQL, Google BigQuery, Snowflake, Amazon Redshift, Spark SQL và IBM Db2. Việc chọn đúng phương ngữ rất quan trọng để xử lý cú pháp riêng của từng cơ sở dữ liệu, ví dụ như tên định danh trong dấu nháy ngược (backtick), dấu ngoặc vuông, chuỗi trích dẫn bằng dấu đô la (dollar-quoted) hoặc các toán tử đặc biệt.
Việc format có làm thay đổi hoạt động của câu truy vấn không?
Không. Công cụ format chỉ thay đổi khoảng trắng, ngắt dòng và (nếu bạn chọn) viết hoa/thường các từ khóa, kiểu dữ liệu và tên hàm. Tên bảng, tên cột, chuỗi và chú thích sẽ được giữ nguyên hoàn toàn.
Tại sao tôi lại gặp lỗi?
Công cụ format cần hiểu cấu trúc câu truy vấn của bạn. Lỗi thường do gõ sai, thiếu dấu đóng ngoặc/nháy, hoặc dùng cú pháp của cơ sở dữ liệu khác — hãy thử chọn một phương ngữ SQL khác. Các biến template (placeholder) như {{ name }} cũng có thể làm công cụ phân tích cú pháp (parser) bị nhầm lẫn.
Tôi có thể format nhiều câu lệnh cùng lúc không?
Có. Hãy phân tách các câu lệnh bằng dấu chấm phẩy và mỗi câu lệnh sẽ được format, cách nhau bởi một dòng trống.
Mã SQL của tôi có bị gửi lên máy chủ không?
Không. Quá trình format diễn ra hoàn toàn trên trình duyệt của bạn, vì vậy bạn có thể yên tâm format các câu truy vấn chứa tên bảng nội bộ hoặc dữ liệu mẫu.
Có nên viết hoa các từ khóa SQL không?
SQL không phân biệt chữ hoa/thường với các từ khóa, nên đây chỉ là vấn đề phong cách (style). Viết hoa từ khóa (SELECT, FROM, WHERE) là quy ước truyền thống giúp phân biệt rõ với tên bảng và cột, trong khi nhiều team hiện đại lại thích viết thường. Hãy chọn một phong cách và sử dụng nó nhất quán.