Định dạng SQL
Dán một câu truy vấn, chọn cơ sở dữ liệu của bạn, và nhận lại bản đã thụt lề với mỗi mệnh đề một dòng.
Chạy hoàn toàn trong trình duyệt của bạn
- Đầu vào
- 0
- Đầu ra
- 0
- Thay đổi
- 0%
Đầu vào tối đa khoảng 10 MB. Công cụ chỉ thay đổi bố cục: không chạy SQL của bạn, không đối chiếu với lược đồ và không tối ưu hóa.
Cách định dạng một câu truy vấn SQL
- Dán câu truy vấn vào ô, hoặc nhấn Chèn mẫu để xem cách hoạt động.
- Chọn cơ sở dữ liệu của bạn ở mục Phương ngữ, rồi đặt kiểu chữ của từ khóa và cỡ thụt lề.
- Câu truy vấn đã định dạng hiện ở bên dưới khi bạn gõ. Hãy sao chép nó, hoặc tải xuống dưới dạng tệp
.sql.
Làm cho SQL dễ đọc
Cơ sở dữ liệu đọc một câu truy vấn như nhau dù nó nằm trên một dòng hay bốn mươi dòng, đó là lý do các truy vấn dán từ log, ORM và công cụ giám sát thường đến dưới dạng một chuỗi liền mạch. Việc định dạng đặt mỗi mệnh đề chính (SELECT, FROM, WHERE, GROUP BY, ORDER BY) trên một dòng riêng và thụt lề các cột, điều kiện và truy vấn con bên dưới nó, để bạn nhìn ngay ra hình dạng của câu truy vấn và phát hiện điều kiện join bị thiếu.
Bố cục tuân theo phương ngữ bạn chọn, vì từ ngữ và ký hiệu khác nhau giữa các cơ sở dữ liệu. Phép ép kiểu của PostgreSQL như price::numeric, tham số đánh số như $1, tên đặt trong backtick của MySQL, mệnh đề CONNECT BY của Oracle và TOP 10 của SQL Server đều hợp lệ trong một phương ngữ và là lỗi cú pháp trong phương ngữ khác. Các placeholder của tham số được ràng buộc (?, $1, :name, @name) được nhận ra và giữ nguyên.
Kiểu chữ của từ khóa không ảnh hưởng đến cách câu truy vấn chạy, nên nó thuần túy là phong cách riêng. Một công cụ định dạng hiểu ngữ pháp có thể đổi nó an toàn, vì nó biết từ nào là từ khóa và từ nào là tên cột hoặc văn bản trong dấu nháy.
Mẹo
- Muốn so sánh một câu truy vấn trước và sau khi thay đổi? Hãy định dạng cả hai với cùng thiết lập rồi so sánh trong So sánh văn bản.
- Câu truy vấn trả về các cột JSON? Dán một giá trị vào Định dạng và kiểm tra JSON để đọc.
- Cần đổi tên một bảng trong một script dài? Tìm và thay thế xử lý việc đó trước khi bạn định dạng.
Câu hỏi thường gặp
SQL của tôi có bị tải lên không?
Không. Mã định dạng là một script được phục vụ từ trang web này và được tải lần đầu khi bạn dán một câu truy vấn; bản thân câu truy vấn vẫn nằm trong trình duyệt của bạn và không được gửi đến máy chủ nào.
Tại sao phương ngữ lại quan trọng?
Mỗi cơ sở dữ liệu có cú pháp riêng. PostgreSQL có phép ép kiểu :: và tham số $1, SQL Server có tên đặt trong [ngoặc vuông] và TOP, MySQL và MariaDB đặt tên trong dấu backtick, còn BigQuery có dạng mảng và struct riêng. Chọn đúng phương ngữ giúp bộ phân tích chấp nhận câu truy vấn của bạn. SQL chuẩn là lựa chọn an toàn khi bạn không chắc, nhưng nó khắt khe hơn với các phần mở rộng của từng hãng.
Tại sao tôi thấy lỗi với câu truy vấn chạy bình thường trong cơ sở dữ liệu của mình?
Công cụ định dạng đọc toàn bộ câu lệnh chứ không chỉ thụt lề lại các dòng, nên dấu ngoặc hoặc dấu nháy chưa đóng sẽ làm nó dừng lại, cũng như cú pháp thuộc về một phương ngữ khác. Thông báo cho biết dòng và cột nơi nó dừng, và cách sửa phổ biến nhất là chọn đúng phương ngữ.
Định dạng có thay đổi việc câu truy vấn thực hiện không?
Chỉ có khoảng trắng và, nếu bạn chọn, kiểu chữ của từ khóa thay đổi. Chuỗi ký tự, tên đặt trong dấu nháy và số giữ nguyên nội dung, nên 'select' trong dấu nháy vẫn là chữ thường khi bạn chọn CHỮ HOA.
Tôi có thể định dạng nhiều câu lệnh cùng lúc không?
Có. Các câu lệnh ngăn cách bằng dấu chấm phẩy đều được định dạng, với một dòng trống giữa chúng.
Tôi nên dùng kiểu chữ nào cho từ khóa?
Kiểu nào cũng được; đây là lựa chọn về phong cách và cơ sở dữ liệu không quan tâm đến nó. Từ khóa chữ hoa là quy ước cũ hơn và giúp các mệnh đề nổi bật trong văn bản thuần. Chữ thường phổ biến trong các codebase đã dùng linter hoặc đầu ra ORM theo kiểu đó. Giữ nguyên như đã gõ sẽ không đụng đến cách viết hoa của bạn.