Công cụ Định dạng SQL

Làm đẹp SQL và đọc hiểu chi tiết từng mệnh đề bằng ngôn ngữ tự nhiên dễ hiểu.

SQL đầu vào

Thụt lề
Từ khóa
query.sql
Chế độ xem
Dán một câu truy vấn để định dạng hoặc giải thích.

SQL của bạn được định dạng và phân tích ngay trong trình duyệt. Không có dữ liệu nào được tải lên BroBroGo.

Hỏi đáp

Công cụ hỗ trợ định dạng những phân hệ SQL nào?

Hỗ trợ Standard SQL, PostgreSQL, MySQL, MariaDB, SQL Server (T-SQL), Oracle (PL/SQL), SQLite, BigQuery, Snowflake và Spark SQL. Hãy chọn phân hệ khớp với cơ sở dữ liệu của bạn để các từ khóa và dấu trích dẫn được xử lý đúng theo cách mà công cụ đó mong đợi.

Tính năng giải thích bằng ngôn ngữ tự nhiên hoạt động như thế nào?

Công cụ sẽ đọc cấu trúc truy vấn — loại câu lệnh và từng mệnh đề như SELECT, FROM, JOIN, WHERE, GROUP BY và ORDER BY — rồi chú thích chức năng của từng phần. Nó mô tả cấu trúc của câu truy vấn chứ không phải kế hoạch thực thi cơ sở dữ liệu (execution plan), vì vậy nó vẫn hoạt động trên các đoạn SQL chưa hoàn chỉnh hoặc đặc thù của từng nhà cung cấp.

Dán các câu truy vấn thực tế trên hệ thống production có an toàn không?

Có, hoàn toàn an toàn. Việc định dạng và phân tích chạy hoàn toàn trong trình duyệt của bạn — mã SQL của bạn không bao giờ rời khỏi trang web.

Tầm quan trọng của việc định dạng mã SQL trong phát triển phần mềm

Trong quá trình phát triển ứng dụng và quản trị cơ sở dữ liệu, mã SQL rất dễ trở nên lộn xộn và khó đọc do quá trình chỉnh sửa liên tục hoặc do được tạo tự động từ các công cụ ORM. Việc duy trì một định dạng SQL chuẩn hóa, rõ ràng không chỉ giúp các nhà phát triển (developers), nhà phân tích dữ liệu (data analysts), quản trị viên cơ sở dữ liệu (DBAs) và nhân viên hỗ trợ kỹ thuật (support personnel) dễ dàng đọc hiểu cấu trúc truy vấn, mà còn tăng tốc độ phát hiện lỗi cú pháp và tối ưu hóa hiệu năng.

Khi làm việc nhóm, mã nguồn SQL được định dạng đồng nhất giúp cải thiện khả năng cộng tác, đơn giản hóa quá trình rà soát mã (code review) và giảm thiểu xung đột khi hợp nhất các phiên bản mã nguồn trên hệ thống quản lý phiên bản.

Các phân hệ SQL và các tùy chọn định dạng cấu hình

Mỗi hệ quản trị cơ sở dữ liệu sử dụng một phân hệ SQL (dialect) riêng với các quy tắc cú pháp, từ khóa đặc thù và cách xử lý dấu trích dẫn khác nhau. Công cụ hỗ trợ định dạng chuẩn xác trên 10 phân hệ SQL phổ biến bao gồm:

  • Standard SQL
  • PostgreSQL
  • MySQL
  • MariaDB
  • SQL Server (T-SQL)
  • Oracle (PL/SQL)
  • SQLite
  • BigQuery
  • Snowflake
  • Spark SQL

Để đáp ứng các tiêu chuẩn trình bày mã nguồn khác nhau của từng dự án, người dùng có thể tùy chỉnh các thông số định dạng đầu vào bao gồm:

  • SQL đầu vào: Đoạn mã SQL cần xử lý, hỗ trợ độ dài tối đa lên tới 300,000 ký tự.
  • Thụt lề: Lựa chọn kiểu thụt lề bằng 2 khoảng trắng (2 spaces), 4 khoảng trắng (4 spaces) hoặc ký tự tab.
  • Từ khóa: Định dạng viết hoa/viết thường cho các từ khóa SQL theo các chế độ CHỮ HOA, chữ thường, hoặc Giữ nguyên.

Cơ chế phân tích cấu trúc truy vấn bằng ngôn ngữ tự nhiên

Bên cạnh việc làm đẹp mã nguồn, công cụ cung cấp tính năng giải thích chi tiết từng mệnh đề của câu truy vấn bằng ngôn ngữ tự nhiên. Tính năng này phân tích cấu trúc cú pháp của câu lệnh để phân loại và diễn giải chức năng của từng thành phần.

Khác với các kế hoạch thực thi cơ sở dữ liệu (database execution plans) vốn phụ thuộc vào tài nguyên hệ thống, chỉ mục và số liệu thống kê thực tế của bảng dữ liệu, tính năng giải thích này chỉ tập trung vào cấu trúc logic của truy vấn. Nhờ đó, công cụ vẫn có thể phân tích và giải thích chi tiết ngay cả trên các đoạn mã SQL chưa hoàn chỉnh hoặc các cú pháp đặc thù của từng nhà cung cấp.

Hệ thống phân loại các câu lệnh SQL đầu vào thành các nhóm chức năng cụ thể bao gồm:

Loại câu lệnh Mô tả chức năng hiển thị
SELECT Một câu truy vấn đọc và trả về các hàng dữ liệu mà không thay đổi bất kỳ thứ gì.
INSERT Thêm các hàng mới vào bảng.
UPDATE Thay đổi các giá trị trong các hàng đã tồn tại.
DELETE Xóa các hàng khỏi bảng.
CREATE Định nghĩa một đối tượng mới như bảng, view hoặc chỉ mục (index).
ALTER Thay đổi định nghĩa của một đối tượng hiện có.
DROP Xóa vĩnh viễn một đối tượng khỏi cơ sở dữ liệu.
TRUNCATE Làm trống một bảng, xóa mọi hàng dữ liệu.
WITH Xây dựng một kết quả tạm thời có tên (CTE) cho câu truy vấn tiếp theo.
MERGE Thêm mới, cập nhật hoặc xóa các hàng trong một thao tác kết hợp duy nhất.
OTHER Một câu lệnh SQL.

Đối với từng câu lệnh, công cụ bóc tách và giải thích vai trò của từng mệnh đề cấu thành:

  • SELECT: Các cột và biểu thức được trả về.
  • SELECT DISTINCT: Các cột được trả về, với các hàng trùng lặp đã được loại bỏ.
  • FROM: Bảng (hoặc truy vấn con) mà dữ liệu được đọc từ đó.
  • JOIN: Kết hợp mỗi hàng với các hàng khớp từ một bảng khác.
  • WHERE: Chỉ giữ lại các hàng khớp với điều kiện này.
  • GROUP BY: Gộp các hàng thành các nhóm để có thể tính toán các hàm tổng hợp như COUNT hoặc SUM cho từng nhóm.
  • HAVING: Lọc các nhóm đó sau khi các hàm tổng hợp đã được tính toán.
  • ORDER BY: Sắp xếp các hàng kết quả.
  • LIMIT: Giới hạn số lượng hàng được trả về.
  • OFFSET: Bỏ qua một số lượng hàng nhất định trước khi trả về kết quả.
  • UNION: Kết hợp các kết quả này với kết quả của một câu truy vấn khác.
  • VALUES: Các giá trị hàng đang được chèn vào.
  • INTO: Bảng sẽ nhận các hàng dữ liệu mới.
  • SET: Các giá trị cột mới được gán.
  • UPDATE: Bảng có các hàng dữ liệu sẽ bị thay đổi.
  • DELETE FROM: Bảng mà các hàng dữ liệu sẽ bị xóa khỏi đó.
  • WITH: Định nghĩa một tập kết quả tạm thời có tên được sử dụng bên dưới.
  • STATEMENT: Câu lệnh, được hiển thị nguyên trạng.

Quy tắc xử lý lỗi và giới hạn kỹ thuật

Để đảm bảo tính ổn định và hiệu năng hoạt động trực tiếp trên trình duyệt, công cụ áp dụng các quy tắc xử lý và giới hạn kỹ thuật nghiêm ngặt sau:

  • Giới hạn kích thước: Nếu mã SQL đầu vào vượt quá giới hạn 300,000 ký tự, hệ thống sẽ dừng xử lý và hiển thị thông báo lỗi: "Câu truy vấn này quá lớn để xử lý. Vui lòng thử với câu truy vấn nhỏ hơn.".
  • Lỗi cú pháp: Trong trường hợp mã SQL đầu vào chứa lỗi cú pháp không thể phân tích, hệ thống sẽ hiển thị thông báo: "Không thể định dạng SQL này — vui lòng kiểm tra lại cú pháp.". Khi lỗi này xảy ra, kết quả định dạng đã tạo ra trước đó vẫn được giữ nguyên trên giao diện chứ không bị ghi đè bởi thông báo lỗi.
  • Giới hạn giải thích: Đối với các tệp SQL chứa nhiều câu lệnh đồng thời, công cụ hỗ trợ phân tích tối đa 25 câu lệnh đầu tiên. Nếu vượt quá số lượng này, hệ thống sẽ hiển thị ghi chú: "Chỉ hiển thị 25 câu lệnh đầu tiên.".
  • Chức năng xóa dữ liệu: Khi người dùng nhấn nút "Xóa", toàn bộ vùng nhập liệu và vùng kết quả sẽ được làm trống, các thông tin lỗi bị ẩn đi và hệ thống hiển thị trạng thái "Đã xóa.".
  • Lưu trữ cấu hình: Bản nháp của câu truy vấn cùng với các tùy chọn giao diện (như chế độ Trình soạn thảo tối) được lưu trữ cục bộ trong bộ nhớ trình duyệt của người dùng để duy trì trạng thái làm việc cho các phiên truy cập sau.

Bảo mật dữ liệu và xử lý phía máy khách

Vấn đề bảo mật thông tin, đặc biệt là cấu trúc bảng và dữ liệu nhạy cảm trong các câu truy vấn của doanh nghiệp, là yếu tố cực kỳ quan trọng. Công cụ này thực hiện toàn bộ quá trình định dạng, phân tích cú pháp và tạo giải thích ngay trong trình duyệt web của người dùng.

Không có bất kỳ dữ liệu SQL nào được tải lên máy chủ BroBroGo hay truyền tải qua mạng internet. Quy trình xử lý khép kín hoàn toàn trên thiết bị của người dùng giúp đảm bảo tính riêng tư của dữ liệu trong suốt quá trình sử dụng công cụ.

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

Công cụ hỗ trợ định dạng những phân hệ SQL nào? Hỗ trợ Standard SQL, PostgreSQL, MySQL, MariaDB, SQL Server (T-SQL), Oracle (PL/SQL), SQLite, BigQuery, Snowflake và Spark SQL. Hãy chọn phân hệ khớp với cơ sở dữ liệu của bạn để các từ khóa và dấu trích dẫn được xử lý đúng theo cách mà công cụ đó mong đợi.

Tính năng giải thích bằng ngôn ngữ tự nhiên hoạt động như thế nào? Công cụ sẽ đọc cấu trúc truy vấn — loại câu lệnh và từng mệnh đề như SELECT, FROM, JOIN, WHERE, GROUP BY và ORDER BY — rồi chú thích chức năng của từng phần. Nó mô tả cấu trúc của câu truy vấn chứ không phải kế hoạch thực thi cơ sở dữ liệu (execution plan), vì vậy nó vẫn hoạt động trên các đoạn SQL chưa hoàn chỉnh hoặc đặc thù của từng nhà cung cấp.

Dán các câu truy vấn thực tế trên hệ thống production có an toàn không? Có, hoàn toàn an toàn. Việc định dạng và phân tích chạy hoàn toàn trong trình duyệt của bạn — mã SQL của bạn không bao giờ rời khỏi trang web.