Chuyển đến nội dung

Trình Định Dạng & Kiểm Tra SQL - Định Dạng Truy Vấn SQL Trực Tuyến Miễn Phí

Trình định dạng và kiểm tra SQL miễn phí. Tự động định dạng SQL với thụt lề và viết hoa phù hợp. Kiểm tra lỗi cú pháp ngay lập tức. Hoạt động với MySQL, PostgreSQL, SQL Server, Oracle.

Trình Định Dạng & Kiểm Tra SQL

Định dạng và kiểm tra truy vấn SQL với thụt lề tự động, viết hoa từ khóa và phát hiện lỗi cú pháp.

Nhập truy vấn SQL để xem kết quả định dạng.
Máy tính tải...
📚

Tài liệu hướng dẫn

Tại Sao Định Dạng SQL Lại Quan Trọng

Bạn đã từng kế thừa một dự án cơ sở dữ liệu mà SQL trông như thể ai đó gõ nó trong tình trạng bị bịt mắt chưa? Bạn không phải là người duy nhất. SQL được định dạng kém là một trong những nguồn phổ biến nhất của các lỗi và lãng phí thời gian trong phát triển cơ sở dữ liệu.

Trình định dạng và xác thực SQL này giúp bạn tự động làm sạch các truy vấn lộn xộn. Dán SQL của bạn, và nó ngay lập tức áp dụng thụt lề phù hợp, viết hoa các từ khóa, và kiểm tra các lỗi cú pháp—tất cả đều trong trình duyệt của bạn mà không gửi dữ liệu đến bất kỳ máy chủ nào. Những gì thường mất 10-15 phút để định dạng thủ công giờ đây chỉ mất vài giây.

Theo kinh nghiệm của tôi làm việc với các nhóm cơ sở dữ liệu, điều tiết kiệm thời gian lớn nhất không chỉ là việc định dạng—mà còn là phát hiện các lỗi trước khi chúng đi vào sản xuất. Một dấu ngoặc đặt sai hoặc một dấu ngoặc kép không đóng có thể làm lãng phí hàng giờ để gỡ lỗi. Công cụ này phát hiện những vấn đề đó ngay lập tức, trước khi bạn thực thi bất cứ điều gì với cơ sở dữ liệu của mình.

Cách Sử Dụng Trình Định Dạng SQL

Giao diện được thiết kế tối giản—chỉ cần dán và thực hiện:

  1. Dán SQL của bạn vào ô nhập liệu (hoặc nhập trực tiếp nếu bạn đang viết từ đầu)
  2. Xem định dạng tự động khi bạn nhập—không cần nhấp nút, không cần cấu hình
  3. Kiểm tra lỗi xác thực nếu có xuất hiện bên dưới đầu ra đã định dạng
  4. Sao chép SQL đã định dạng chỉ bằng một cú nhấp để sử dụng trong IDE, tài liệu, hoặc công cụ cơ sở dữ liệu của bạn

Hoạt động trên mọi thiết bị có trình duyệt. Việc định dạng diễn ra hoàn toàn ở phía máy khách, do đó các truy vấn của bạn không bao giờ rời khỏi máy tính—điều quan trọng khi làm việc với cấu trúc cơ sở dữ liệu sản xuất hoặc các lược đồ nhạy cảm.

SQL Formatter Làm Gì

Viết Hoa Từ Khóa

Tất cả các từ khóa SQL sẽ được tự động viết hoa—SELECT, FROM, WHERE, JOIN, v.v. Điều này tuân theo quy ước được sử dụng bởi hầu hết các nhóm cơ sở dữ liệu và giúp các từ khóa trở nên khác biệt về mặt hình ảnh so với tên bảng và cột của bạn. Khi bạn đang quét qua một truy vấn phức tạp, sự phân tách hình ảnh này giúp bạn nhận dạng cấu trúc truy vấn một cách nhanh chóng.

Thụt Lề Thông Minh

Trình định dạng cấu trúc SQL của bạn dựa trên hệ thống phân cấp logic thay vì chỉ thêm các ngắt dòng ngẫu nhiên. Các mệnh đề chính như SELECTFROM bắt đầu ở lề trái. Các mệnh đề JOIN được thụt lề dưới FROM để cho thấy chúng là một phần của việc chọn bảng. Các truy vấn con được thêm các mức thụt lề bổ sung, làm rõ logic lồng nhau.

Dưới đây là những gì xảy ra trong thực tế: khi bạn có một truy vấn với nhiều join và truy vấn con, việc thụt lề đúng cho phép bạn nhìn thấy cấu trúc truy vấn mà không cần đọc từng từ. Bạn có thể ngay lập tức xác định nơi một join kết thúc và một join khác bắt đầu, hoặc nơi một truy vấn con đang được sử dụng trong danh sách SELECT của bạn.

Ngắt Dòng Logic

Các ngắt dòng xuất hiện ở nơi chúng giúp ích cho khả năng đọc, không phải ở mọi nơi. Mỗi mệnh đề chính đều có dòng riêng. Các mục trong danh sách được phân tách bằng dấu phẩy (như tên cột trong SELECT) đều có dòng riêng với thụt lề phù hợp. Các truy vấn con được phân tách về mặt hình ảnh. Các câu lệnh CASE ngắt tại WHEN, THEN, và ELSE để rõ ràng.

Khoảng cách tuân theo các quy ước của Hướng Dẫn Phong Cách SQL được sử dụng trên toàn ngành, có nghĩa là SQL được định dạng của bạn sẽ trông quen thuộc với các nhà phát triển khác.

Xác Thực SQL: Những Gì Được Kiểm Tra

Trình xác thực bắt được những lỗi thường bị bỏ qua khi bạn viết SQL nhanh chóng. Nó sẽ không thay thế trình phân tích truy vấn của cơ sở dữ liệu của bạn, nhưng nó sẽ bắt các lỗi thông thường trước khi bạn thậm chí chạy truy vấn.

Lỗi Cấu Trúc

Dấu ngoặc không cân bằng rất phổ biến trong các truy vấn phức tạp có các truy vấn con lồng nhau. Trình xác thực đếm các dấu ngoặc mở và đóng để đánh dấu các sự không khớp ngay lập tức. Tôi đã từng chứng kiến các sự cố sản xuất do một dấu ngoặc đơn bị thiếu trong một truy vấn 200 dòng—điều này sẽ bắt chúng sớm.

Các ký tự chuỗi không được đóng xảy ra khi bạn quên đóng dấu ngoặc kép trên một giá trị chuỗi. Cơ sở dữ liệu của bạn sẽ từ chối chúng ngay lập tức, nhưng việc bắt chúng ở đây sẽ tiết kiệm một chuyến đi.

Các vấn đề về thứ tự mệnh đề được đánh dấu khi các mệnh đề xuất hiện không theo thứ tự. Ví dụ, nếu bạn đặt HAVING trước GROUP BY, hoặc WHERE sau GROUP BY, trình xác thực sẽ cảnh báo bạn. Điều này tuân theo các quy tắc cú pháp tiêu chuẩn SQL được định nghĩa trong tiêu chuẩn SQL ISO/IEC 9075.

Lỗi Logic

Các mệnh đề JOIN không có điều kiện ON tạo ra các phép nối chéo vô tình, trả về nhiều hàng hơn mức dự định. Một kịch bản phổ biến: bạn đang thêm một bảng thứ ba hoặc thứ tư vào truy vấn và quên mệnh đề ON. Không có kiểm tra này, bạn có thể không nhận ra cho đến khi thấy hàng ngàn hàng trùng lặp trong kết quả.

HAVING không có GROUP BY về kỹ thuật là SQL không hợp lệ trong hầu hết các cơ sở dữ liệu. Mệnh đề HAVING lọc các kết quả được nhóm, vì vậy nó yêu cầu GROUP BY để hoạt động. Trình xác thực bắt được sự không khớp logic này.

Các điều kiện WHERE không hoàn chỉnh xảy ra khi bạn bắt đầu nhập một điều kiện nhưng không hoàn thành nó—như WHERE status = không có giá trị. Những điều này rất dễ bỏ qua khi chỉnh sửa truy vấn.

Những Gì Nó Sẽ Không Bắt

Trình xác thực này tập trung vào cú pháp và cấu trúc, không phải lược đồ cơ sở dữ liệu. Nó sẽ không biết nếu:

  • Tên bảng hoặc cột của bạn tồn tại trong cơ sở dữ liệu
  • Bạn đang nối các kiểu dữ liệu tương thích
  • Truy vấn của bạn sẽ thực hiện tốt hay có các vấn đề tối ưu hóa
  • Bạn có quyền truy cập các bảng bạn đang truy vấn

Hãy coi nó như một kiểm tra ban đầu trước khi gửi truy vấn đến cơ sở dữ liệu thực tế của bạn.

Quy Tắc Định Dạng Được Áp Dụng Bởi Công Cụ Này

Trình định dạng áp dụng các quy tắc nhất quán dựa trên các quy ước của Hướng Dẫn Phong Cách SQL mà hầu hết các nhóm cơ sở dữ liệu tuân theo.

Từ Khóa Được Viết Hoa

Mọi từ khóa SQL đều trở thành chữ in hoa: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP. Điều này bao gồm các mệnh đề (FROM, WHERE, GROUP BY, HAVING, ORDER BY), các loại join (JOIN, INNER JOIN, LEFT JOIN), các toán tử (AND, OR, NOT, IN, BETWEEN, LIKE), và các hàm thông dụng (COUNT, SUM, AVG, CASE, WHEN).

Tại sao viết hoa? Nó tạo ra sự phân biệt trực quan giữa các phần tử ngôn ngữ SQL và các tên cụ thể của cơ sở dữ liệu (bảng, cột, bí danh). Khi quét một truy vấn, mắt bạn ngay lập tức nhận ra cấu trúc.

Thụt Lề Hai Khoảng Trắng Cho Mỗi Cấp

Các mệnh đề chính như SELECTFROM bắt đầu ở lề trái. Các mệnh đề JOIN thụt lề hai khoảng trắng dưới FROM để cho thấy chúng là một phần của việc chọn bảng. Các truy vấn phụ thụt lề thêm hai khoảng trắng cho mỗi cấp lồng nhau. Điều này tạo ra một hệ thống phân cấp trực quan phù hợp với cấu trúc logic.

Các danh sách được phân tách bằng dấu phẩy (tên cột trong SELECT, ví dụ) mỗi cái được đặt trên một dòng với thụt lề nhất quán. Khi bạn có 15 cột trong danh sách SELECT, điều này giúp dễ dàng quét và tìm các cột cụ thể.

Các điều kiện trong mệnh đề WHERE được căn chỉnh theo chiều dọc. Khi bạn có nhiều điều kiện AND hoặc OR, việc căn chỉnh sẽ làm cho cấu trúc logic trở nên rõ ràng ngay lập tức.

Trước và Sau: Xem Sự Khác Biệt

Trước Khi Định Dạng:

1select u.id, u.name, o.order_date from users u join orders o on u.id = o.user_id where o.status = "completed" group by u.id order by u.name;
2

Sau Khi Định Dạng:

1SELECT
2  u.id,
3  u.name,
4  o.order_date
5FROM users u
6  JOIN orders o ON u.id = o.user_id
7WHERE
8  o.status = "completed"
9GROUP BY
10  u.id
11ORDER BY
12  u.name;
13

Quy Tắc Xác Thực: Những Gì Được Đánh Dấu

Trình xác thực kiểm tra tính toàn vẹn cấu trúc và tính nhất quán logic cơ bản. Dưới đây là những gì nó tìm kiếm:

Kiểm Tra Cấu Trúc

Dấu ngoặc đơn cân bằng: Dấu ngoặc đơn mở và đóng phải khớp. Các truy vấn phụ lồng nhau thường có nhiều cấp độ dấu ngoặc đơn, và việc đếm sai chúng là một trong những lỗi SQL phổ biến nhất. Trình xác thực sẽ đếm chúng cho bạn.

Chuỗi được đóng đúng: Mỗi dấu ngoặc kép (đơn hoặc kép) mở đều cần một dấu ngoặc kép đóng. Nghe có vẻ hiển nhiên, nhưng khi bạn viết một truy vấn phức tạp với nhiều ký tự chuỗi, rất dễ bỏ sót một dấu.

Thứ tự mệnh đề chính xác: SQL có các yêu cầu thứ tự cụ thể. SELECT đứng trước FROM, đứng trước WHERE, đứng trước GROUP BY, đứng trước HAVING, đứng trước ORDER BY. Đặt chúng không đúng thứ tự sẽ gây ra lỗi cú pháp ngay lập tức. Trình xác thực kiểm tra thứ tự này dựa trên tiêu chuẩn SQL.

Kiểm Tra Tính Nhất Quán Logic

JOIN với điều kiện ON: Mỗi JOIN đều cần một mệnh đề ON hoặc USING để chỉ định cách các bảng liên quan. Nếu không, bạn sẽ có một cross join—mỗi hàng từ một bảng được ghép với mỗi hàng từ bảng khác. Đó là điều hiếm khi bạn muốn và thường cho thấy thiếu mệnh đề ON.

Điều kiện WHERE hoàn chỉnh: Một mệnh đề WHERE cần các mệnh đề đầy đủ. WHERE status = không có giá trị là không hoàn chỉnh và không hợp lệ. Trình xác thực sẽ đánh dấu các điều kiện một phần này.

HAVING yêu cầu GROUP BY: Mệnh đề HAVING lọc các kết quả được nhóm, vì vậy nó chỉ có ý nghĩa khi bạn có GROUP BY. Sử dụng HAVING mà không có GROUP BY là một lỗi logic mà hầu hết các cơ sở dữ liệu đều từ chối.

Quy tắc nhóm và tổng hợp GROUP BY: Khi bạn sử dụng các hàm tổng hợp như COUNT() hoặc SUM(), bất kỳ cột không được tổng hợp nào trong danh sách SELECT của bạn phải xuất hiện trong GROUP BY. Đây là một yêu cầu cơ bản của SQL mà trình xác thực sẽ kiểm tra.

Ví Dụ về Các Lỗi Thường Gặp Được Phát Hiện

Dưới đây là SQL với nhiều vấn đề mà trình xác thực sẽ đánh dấu:

1SELECT user_id, COUNT(*) FROM orders
2JOIN users
3WHERE status =
4GROUP BY
5HAVING count > 10;
6

Các vấn đề được phát hiện:

  1. JOIN users thiếu điều kiện ON (sẽ tạo cross join)
  2. WHERE status = không hoàn chỉnh (không có giá trị so sánh)
  3. Mệnh đề GROUP BY trống (không có cột được chỉ định)
  4. HAVING count > 10 tham chiếu đến cột chưa được xác định

Khi Nào Sử Dụng Trình Định Dạng SQL Này

Trong Quá Trình Đánh Giá Mã

Bạn đã từng thử xem xét một truy vấn SQL 50 dòng được viết trên một dòng chưa? Thật khó khăn. Trước khi gửi các truy vấn để đánh giá, hãy chạy chúng qua trình định dạng. Những người đánh giá của bạn sẽ cảm ơn bạn, và họ sẽ thực sự có thể tập trung vào logic thay vì giải mã cấu trúc.

Khi đánh giá các yêu cầu kéo với các thay đổi cơ sở dữ liệu, hãy yêu cầu những người đóng góp định dạng SQL của họ trước. Nó giúp dễ dàng phát hiện các lỗi logic hơn khi cấu trúc nhất quán.

Gỡ Lỗi Các Vấn Đề Trong Sản Xuất

Khi bạn đang khắc phục một truy vấn bị lỗi trong sản xuất, việc định dạng nó một cách phù hợp giúp bạn nhìn thấy cấu trúc một cách rõ ràng. Tôi đã gỡ lỗi vô số truy vấn mà vấn đề trở nên rõ ràng ngay khi SQL được định dạng đúng - một điều kiện nối bị thiếu, một nhóm mệnh đề WHERE không chính xác, hoặc một truy vấn con ở sai vị trí.

Sao chép truy vấn từ nhật ký của bạn, dán nó vào đây, và bạn sẽ ngay lập tức thấy nếu có các vấn đề về cấu trúc.

Làm Việc với SQL Được Tạo

ORM (Trình ánh xạ quan hệ đối tượng) như Hibernate, Entity Framework hoặc SQLAlchemy tạo SQL một cách tự động. Đôi khi bạn cần xem truy vấn mà chúng thực sự đang tạo ra. SQL được tạo ra thường là một dòng dài không có định dạng. Công cụ này giúp các truy vấn được tạo bởi ORM trở nên dễ đọc để bạn có thể hiểu và tối ưu hóa chúng.

Giảng Dạy và Học SQL

Nếu bạn đang học SQL hoặc giảng dạy nó, trình định dạng này giúp bạn hiểu cấu trúc truy vấn đúng. Khi bạn dán một truy vấn hoạt động và xem cách nó được định dạng, bạn sẽ học được các quy ước. Khi bạn dán một truy vấn bị hỏng và thấy các lỗi xác thực, bạn sẽ hiểu tại sao nó không hoạt động.

Di Chuyển Giữa Các Hệ Thống Cơ Sở Dữ Liệu

Các cơ sở dữ liệu khác nhau (PostgreSQL, MySQL, SQL Server) có các dialect SQL hơi khác nhau. Khi di chuyển các truy vấn giữa các hệ thống, việc định dạng đúng giúp bạn phát hiện cú pháp dialect cụ thể có thể cần điều chỉnh. Trình định dạng tuân theo các quy ước SQL tiêu chuẩn hoạt động trên hầu hết các cơ sở dữ liệu chính.

Các Phương Án Thay Thế Cho Trình Định Dạng SQL Này

IDE Dành Riêng Cho Cơ Sở Dữ Liệu

Các công cụ như DataGrip, SQL Server Management Studio, hoặc MySQL Workbench có trình định dạng tích hợp sẵn. Chúng rất mạnh mẽ và tích hợp trực tiếp với kết nối cơ sở dữ liệu của bạn.

Sự đánh đổi: chúng yêu cầu cài đặt và thiết lập. DataGrip có giá 199 đô la/năm cho cá nhân. SSMS miễn phí nhưng chỉ dành cho Windows. Nếu bạn cần định dạng nhanh mà không cần cài đặt, hoặc làm việc trên nhiều hệ thống cơ sở dữ liệu khác nhau, một công cụ trên trình duyệt sẽ thực tế hơn.

Tiện Ích Mở Rộng Trình Soạn Thảo

Nếu bạn viết SQL trong VS Code hoặc Sublime Text, các tiện ích mở rộng như SQL Beautify hoặc SqlBeautifier mang tính năng định dạng vào trình soạn thảo của bạn. Điều này hoạt động tốt khi bạn đang tích cực viết truy vấn và muốn định dạng ngay lập tức như một phần của quy trình làm việc.

Hạn chế: các tiện ích mở rộng cần cấu hình, và chúng gắn liền với trình soạn thảo cụ thể của bạn. Khi chia sẻ SQL với đồng đội hoặc đăng truy vấn trong tài liệu, trình định dạng web tiêu chuẩn đảm bảo mọi người đều thấy định dạng giống nhau.

Trình Định Dạng Dòng Lệnh

Các công cụ như sqlformat (Python) hoặc sql-formatter-cli (Node.js) có thể được tích hợp vào các quy trình CI/CD để tự động định dạng SQL trong quản lý phiên bản. Điều này đảm bảo tính nhất quán trên toàn bộ nhóm.

Được sử dụng tốt nhất cho các quy trình tự động hơn là định dạng tạm thời. Nếu bạn chỉ đang dọn dẹp một vài truy vấn hoặc học SQL, các công cụ dòng lệnh sẽ thêm sự phức tạp không cần thiết.

Cách Định Dạng SQL Trở Thành Thông Lệ Tiêu Chuẩn

SQL được phát triển tại IBM vào những năm 1970, nhưng các quy ước định dạng xuất hiện muộn hơn nhiều. SQL ban đầu có chức năng nhưng không nhất quán—mỗi nhà phát triển định dạng truy vấn theo cách riêng của mình.

Điểm then chốt đến vào những năm 1990 khi các cơ sở dữ liệu chuyển từ các dự án của một nhà phát triển sang phát triển theo nhóm. Các tổ chức bắt đầu tạo ra các hướng dẫn kiểu SQL nội bộ để duy trì tính nhất quán. Khi bạn có năm nhà phát triển làm việc trên cùng một cơ sở dữ liệu, SQL dễ đọc trở nên thiết yếu cho sự cộng tác.

Những năm 2000 mang đến các ORM tạo ra SQL một cách tự động. Các công cụ này tạo ra SQL hoạt động nhưng xấu xí—tất cả trên một dòng, không thụt lề. Điều này tạo ra nhu cầu về các trình định dạng tự động có thể làm cho SQL do máy tạo ra trở nên dễ đọc cho con người.

Các trình định dạng SQL trực tuyến xuất hiện vào những năm 2010 khi phát triển web trở nên trưởng thành. Thay vì cài đặt các công cụ hoặc cấu hình plugin IDE, các nhà phát triển có thể định dạng SQL trong trình duyệt. Điều này đã dân chủ hóa quyền truy cập vào việc định dạng phù hợp cho mọi người, từ người mới học SQL đến các nhà phát triển có kinh nghiệm đang dọn dẹp các truy vấn nhanh.

Ngày nay, việc định dạng SQL được coi là một thực hành cơ bản, tương tự như định dạng mã trong các ngôn ngữ lập trình khác. Hướng Dẫn Kiểu SQL của Simon Holywell cung cấp các quy ước được áp dụng rộng rãi, và các công cụ như thế này tự động triển khai các tiêu chuẩn đó.

Ví dụ về Mã

Ví dụ 1: Truy vấn SELECT Cơ bản

Không được định dạng:

1select id, first_name, last_name, email from customers where status = 'active' order by last_name, first_name;
2

Được định dạng:

1SELECT
2  id,
3  first_name,
4  last_name,
5  email
6FROM
7  customers
8WHERE
9  status = 'active'
10ORDER BY
11  last_name,
12  first_name;
13

Ví dụ 2: Truy vấn JOIN

Không được định dạng:

1select c.id, c.name, o.order_date, o.total_amount from customers c left join orders o on c.id = o.customer_id where o.order_date >= '2023-01-01' and o.status != 'cancelled' order by o.order_date desc;
2

Được định dạng:

1SELECT
2  c.id,
3  c.name,
4  o.order_date,
5  o.total_amount
6FROM
7  customers c
8  LEFT JOIN orders o ON c.id = o.customer_id
9WHERE
10  o.order_date >= '2023-01-01'
11  AND o.status != 'cancelled'
12ORDER BY
13  o.order_date DESC;
14

Ví dụ 3: Truy vấn Phức tạp với Truy vấn Con

Không được định dạng:

1select d.department_name, (select count(*) from employees e where e.department_id = d.id) as employee_count, (select avg(salary) from employees e where e.department_id = d.id) as avg_salary from departments d where d.active = true having employee_count > 0 order by avg_salary desc;
2

Được định dạng:

1SELECT
2  d.department_name,
3  (
4    SELECT
5      COUNT(*)
6    FROM
7      employees e
8    WHERE
9      e.department_id = d.id
10  ) AS employee_count,
11  (
12    SELECT
13      AVG(salary)
14    FROM
15      employees e
16    WHERE
17      e.department_id = d.id
18  ) AS avg_salary
19FROM
20  departments d
21WHERE
22  d.active = TRUE
23HAVING
24  employee_count > 0
25ORDER BY
26  avg_salary DESC;
27

Định dạng SQL Lập trình

Dưới đây là các ví dụ về cách triển khai định dạng SQL trong các ngôn ngữ lập trình khác nhau:

1// Ví dụ định dạng SQL trong JavaScript sử dụng thư viện sql-formatter
2const sqlFormatter = require('sql-formatter');
3
4function formatSQL(sql) {
5  return sqlFormatter.format(sql, {
6    language: 'sql',
7    uppercase: true,
8    linesBetweenQueries: 2,
9    indentStyle: 'standard'
10  });
11}
12
13const rawSQL = "select id, name from users where status='active'";
14const formattedSQL = formatSQL(rawSQL);
15console.log(formattedSQL);
16

Câu Hỏi Thường Gặp

Trình định dạng SQL này có hoạt động với PostgreSQL, MySQL và SQL Server không?

Có, nó xử lý cú pháp SQL tiêu chuẩn phổ biến trên các cơ sở dữ liệu chính—PostgreSQL, MySQL, SQL Server (T-SQL), Oracle, SQLite và MariaDB. Trình định dạng tập trung vào SQL cốt lõi hoạt động ở mọi nơi: SELECT, JOIN, WHERE, GROUP BY, v.v.

Các tính năng đặc thù của cơ sở dữ liệu có thể không được định dạng hoàn hảo. Ví dụ, cú pháp mảng của PostgreSQL hoặc các hàm riêng của SQL Server có thể không được xử lý đặc biệt, nhưng sẽ không phá vỡ trình định dạng. Truy vấn vẫn sẽ dễ đọc hơn so với ban đầu.

Mã SQL của tôi có được gửi đến máy chủ không?

Không. Mọi thứ đều diễn ra trong trình duyệt của bạn. Dán SQL, và nó sẽ được định dạng cục bộ mà không cần bất kỳ yêu cầu mạng nào. Các truy vấn của bạn không bao giờ rời khỏi máy tính của bạn.

Điều này quan trọng khi bạn làm việc với lược đồ cơ sở dữ liệu sản xuất hoặc logic kinh doanh độc quyền. Không có rủi ro thông tin nhạy cảm bị ghi lại hoặc lưu trữ trên máy chủ của người khác.

Trình xác thực có thể bắt được tất cả các lỗi SQL không?

Hoàn toàn không. Nó chỉ bắt các vấn đề về cấu trúc và cú pháp—thiếu dấu ngoặc, dấu ngoặc kép không đóng, các mệnh đề ở sai thứ tự. Chỉ vậy thôi.

Nó sẽ không biết tên bảng của bạn có sai, kiểu dữ liệu không tương thích, hoặc truy vấn của bạn sẽ mất 10 phút để chạy. Để làm điều đó, bạn cần cơ sở dữ liệu thực tế. Hãy coi trình xác thực này như trình kiểm tra chính tả cho SQL, không phải là trình phân tích truy vấn đầy đủ.

Tại sao phải định dạng SQL khi cơ sở dữ liệu vẫn chạy nó?

Cơ sở dữ liệu không quan tâm đến việc định dạng—chúng phân tích truy vấn bất kể như thế nào. Nhưng con người thì có. Khi bạn cần gỡ lỗi một truy vấn lỗi, sửa đổi một truy vấn hiện có, hoặc xem xét SQL của người khác, việc định dạng đúng sẽ giúp bạn hiểu trong 30 giây thay vì 30 phút.

SQL được định dạng cũng giúp bạn phát hiện các lỗi logic. Khi cấu trúc rõ ràng, bạn có thể thấy liệu bạn đã nối các bảng không chính xác hoặc đặt điều kiện ở sai vị trí.

Tôi có thể tùy chỉnh thụt lề hoặc kiểu từ khóa không?

Hiện tại không. Trình định dạng sử dụng các quy ước tiêu chuẩn: từ khóa viết hoa, thụt lề hai khoảng trắng, các mệnh đề ở các dòng riêng. Những điều này tuân theo Hướng Dẫn Phong Cách SQL mà hầu hết các nhóm sử dụng.

Nếu bạn cần định dạng tùy chỉnh (chiều rộng thụt lề khác, từ khóa viết thường), bạn sẽ cần một công cụ dòng lệnh có thể cấu hình như sqlformat hoặc một IDE có cài đặt định dạng.

Nó có hoạt động với các thủ tục lưu trữ 1000 dòng không?

Nó sẽ định dạng các truy vấn lớn, mặc dù các thủ tục lưu trữ phức tạp (trên 1000 dòng) có thể mất vài giây để xử lý. Trình định dạng xử lý SQL bạn dán, bất kể độ dài.

Đối với các thủ tục lưu trữ khổng lồ, bạn có thể muốn chia chúng thành các phần nhỏ hơn hoặc sử dụng một IDE cơ sở dữ liệu cụ thể được tối ưu hóa cho các tệp lớn.

Việc định dạng có thay đổi cách truy vấn của tôi thực thi không?

Không. Định dạng chỉ thêm khoảng trắng và thay đổi chữ hoa. Cơ sở dữ liệu của bạn bỏ qua cả hai. Truy vấn được định dạng trả về chính xác cùng kết quả và chạy với cùng hiệu suất như phiên bản chưa được định dạng.

Ngoại lệ duy nhất: nếu trình xác thực tìm thấy lỗi cú pháp thực tế (thiếu dấu ngoặc, v.v.), việc sửa chúng sẽ thay đổi hành vi—nhưng chỉ từ "không chạy" thành "chạy chính xác".

Tiêu chuẩn SQL nào được tuân theo?

Trình định dạng tuân theo các quy ước SQL-92 với các phần mở rộng cho các tính năng phổ biến trong SQL:1999 và các tiêu chuẩn sau này. Điều này bao gồm SQL mà hầu hết các nhà phát triển viết hàng ngày—truy vấn SELECT, nối, truy vấn phụ, câu lệnh CASE, hàm cửa sổ.

Các tính năng SQL rất mới từ SQL:2016 hoặc SQL:2019 có thể không được nhận ra, nhưng chúng sẽ không phá vỡ trình định dạng. Bạn sẽ chỉ nhận được định dạng cơ bản thay vì xử lý chuyên biệt.

Tôi có thể sử dụng nó cho Oracle PL/SQL hoặc SQL Server T-SQL không?

Đối với các truy vấn cơ bản, có. Đối với mã thủ tục (khối PL/SQL, thủ tục lưu trữ T-SQL với luồng điều khiển), việc định dạng sẽ bị giới hạn. Công cụ tập trung vào các câu lệnh SELECT, INSERT, UPDATE, DELETE và các mệnh đề của chúng.

Nếu bạn làm việc nhiều với mã thủ tục đặc thù của cơ sở dữ liệu, IDE gốc của cơ sở dữ liệu (SQL Developer cho Oracle, SSMS cho SQL Server) sẽ cung cấp định dạng tốt hơn để hiểu đầy đủ cú pháp.

Tài liệu tham khảo và Đọc thêm

Bắt Đầu Định Dạng SQL

SQL dễ đọc giúp việc gỡ lỗi nhanh hơn, đánh giá mã dễ dàng hơn và cộng tác mượt mà hơn. Dán truy vấn của bạn ở trên để xem nó được định dạng theo các quy ước tiêu chuẩn trong ngành—không cần cài đặt, không cần cấu hình, không có dữ liệu rời khỏi trình duyệt của bạn.