Tài liệu & Hướng dẫn chuyên sâu: Định dạng SQL (SQL Formatter)
1. Tổng quan & Nguyên lý hoạt động
Câu SQL sinh ra từ ORM, log truy vấn chậm hay dán từ một đoạn chat thường nằm gọn trên một dòng dài dằng dặc, rất khó đọc và khó review. Công cụ này tách SELECT / FROM / WHERE / JOIN thành từng khối có thụt lề, viết hoa từ khoá theo ý bạn và hỗ trợ cú pháp riêng của nhiều hệ quản trị (PostgreSQL, MySQL, SQL Server, Oracle, BigQuery, Snowflake…). Chiều ngược lại, chế độ "Nén 1 dòng" loại bỏ chú thích và khoảng trắng thừa để nhúng câu lệnh vào chuỗi mã nguồn hoặc log. Mọi thứ chạy trong trình duyệt nên truy vấn chứa tên bảng, dữ liệu nhạy cảm không bị gửi đi đâu.
2. Ưu thế kiến trúc & Tính năng nổi bật
Chọn dialect (PostgreSQL, MySQL, MariaDB, SQLite, T-SQL, PL/SQL, BigQuery, Snowflake, Redshift, Spark, Trino) để toán tử và từ khoá riêng như `->>`, `ILIKE`, `TOP`, `QUALIFY` được nhận diện đúng. Tuỳ chọn viết HOA / thường / giữ nguyên từ khoá, thụt lề 2 hoặc 4 dấu cách hoặc Tab, và số dòng trống giữa các câu lệnh.
Loại bỏ chú thích `--` và `/* */`, gộp khoảng trắng nhưng không bao giờ đụng vào chuỗi `'…'` hay định danh trong `"…"`, `` `…` ``, `[…]`. Hiển thị phần trăm kích thước tiết kiệm được.
Thả tệp `.sql` vào ô nhập, tô màu cú pháp kết quả, sao chép hoặc tải về `query.sql`. Cấu hình (dialect, kiểu chữ, thụt lề) được nhớ trong trình duyệt và đi kèm liên kết chia sẻ.
3. Quy ước trình bày SQL dễ đọc
Những thói quen giúp truy vấn dài vẫn dễ review:
| Quy ước | Ví dụ | Lý do |
|---|---|---|
| Mỗi mệnh đề một dòng | SELECT / FROM / WHERE / GROUP BY | Nhìn lướt là thấy cấu trúc truy vấn |
| Mỗi cột một dòng | SELECT a, b, c → mỗi cột một dòng | Diff Git theo từng cột, dễ thêm/xoá |
| Từ khoá viết HOA | SELECT … FROM … | Phân biệt từ khoá với tên bảng/cột |
| AND/OR đầu dòng | AND y = 2 nằm ở đầu dòng mới | Dễ comment tạm một điều kiện |
| Alias rõ nghĩa | orders o JOIN customers c | Tránh nhập nhằng cột trùng tên |
4. Câu hỏi thường gặp (FAQ)
Giải đáp các thắc mắc phổ biến của lập trình viên khi sử dụng tiện ích Định dạng SQL (SQL Formatter).
5. Công cụ liên quan
- Trực quan hóa PostgreSQL EXPLAINPhân tích kế hoạch thực thi EXPLAIN (JSON/Text) của PostgreSQL, vẽ sơ đồ cây phân cấp, cảnh báo điểm nghẽn và đưa ra gợi ý tối ưu hóa chỉ mục.
- C# EF Core sang PostgreSQL DDLChuyển đổi lớp C# POCO với EF Core Data Annotations thành câu lệnh SQL CREATE TABLE cho PostgreSQL.
- Máy tính Lưu trữ Primary Key & B-TreeSo sánh dung lượng đĩa, độ sâu B-Tree và nguy cơ phân mảnh Page Splitting giữa BIGINT, UUID v7, ULID và UUID v4 trên PostgreSQL và MySQL InnoDB.