Định dạng các truy vấn SQL với thụt lề và viết hoa đúng cách trong khi kiểm tra cú pháp. Giúp các truy vấn cơ sở dữ liệu của bạn trở nên dễ đọc và không có lỗi ngay lập tức.
Một công cụ đơn giản để định dạng và xác thực các truy vấn SQL của bạn với định dạng đúng và kiểm tra cú pháp.
Trình Định Dạng & Xác Thực SQL là một công cụ trực tuyến mạnh mẽ nhưng dễ sử dụng, được thiết kế để giúp các nhà phát triển, quản trị viên cơ sở dữ liệu và người mới bắt đầu SQL định dạng và xác thực các truy vấn SQL của họ một cách hiệu quả. Công cụ miễn phí này tự động định dạng các lệnh SQL với thụt lề, viết hoa và khoảng cách đúng theo các quy tắc cú pháp SQL tiêu chuẩn, giúp các truy vấn của bạn dễ đọc và dễ bảo trì hơn. Ngoài ra, nó thực hiện các kiểm tra xác thực để xác định các lỗi cú pháp phổ biến trước khi bạn thực thi chúng trên cơ sở dữ liệu của mình, có thể tiết kiệm hàng giờ thời gian gỡ lỗi. Dù bạn đang viết các truy vấn cơ sở dữ liệu phức tạp, học SQL, hay chỉ cần làm sạch mã SQL lộn xộn, trình định dạng và xác thực này cung cấp một giao diện trực quan để cải thiện quy trình làm việc SQL của bạn ngay lập tức.
Sử dụng Trình Định Dạng & Xác Thực SQL rất đơn giản:
Giao diện được thiết kế để trực quan và phản hồi, hoạt động liền mạch trên cả thiết bị để bàn và di động.
Trình định dạng tự động viết hoa các từ khóa SQL như SELECT, FROM, WHERE, JOIN, v.v., làm cho chúng nổi bật hơn so với tên bảng và cột. Điều này cải thiện khả năng đọc và tuân theo các quy tắc phong cách SQL tiêu chuẩn.
Các truy vấn SQL được thụt lề theo cấu trúc logic của chúng:
Trình định dạng chèn ngắt dòng tại các điểm hợp lý trong truy vấn của bạn:
Khoảng cách đúng cũng được thêm vào xung quanh các toán tử, dấu ngoặc và giữa các mệnh đề để nâng cao khả năng đọc.
Trình xác thực kiểm tra các lỗi cú pháp SQL phổ biến và cung cấp phản hồi rõ ràng:
Trình xác thực cũng xác định các lỗi logic phổ biến:
Khi phát hiện lỗi, chúng được hiển thị theo định dạng rõ ràng, thân thiện với người dùng:
Trình định dạng SQL tuân theo những quy tắc cụ thể này để đảm bảo SQL nhất quán, dễ đọc:
Tất cả các từ khóa SQL đều được viết hoa, bao gồm:
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
Trình xác thực kiểm tra các vấn đề sau:
SQL Không Hợp Lệ với Lỗi:
1SELECT user_id, COUNT(*) FROM orders
2JOIN users
3WHERE status =
4GROUP BY
5HAVING count > 10;
6
Lỗi Xác Thực:
Trình Định Dạng & Xác Thực SQL có giá trị trong nhiều tình huống:
Trong khi Trình Định Dạng & Xác Thực SQL của chúng tôi cung cấp chức năng thiết yếu, có những giải pháp thay thế để xem xét:
SQL (Ngôn Ngữ Truy Vấn Cấu Trúc) được phát triển vào những năm 1970 tại IBM, với phiên bản thương mại đầu tiên được phát hành vào năm 1979. Viện Tiêu chuẩn Quốc gia Hoa Kỳ (ANSI) đã công bố tiêu chuẩn SQL đầu tiên vào năm 1986, tiếp theo là Tổ chức Tiêu chuẩn Quốc tế (ISO) vào năm 1987.
Khi SQL phát triển qua nhiều tiêu chuẩn (SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2008, SQL:2011, SQL:2016, và SQL:2019), các thực tiễn định dạng cũng phát triển để cải thiện khả năng đọc và bảo trì mã.
Trong những ngày đầu của SQL, việc định dạng không nhất quán và chủ yếu dựa trên sở thích cá nhân. Khi các hệ thống cơ sở dữ liệu trở nên phức tạp hơn và phát triển theo nhóm trở nên phổ biến, nhu cầu về định dạng chuẩn hóa ngày càng tăng.
Các mốc quan trọng trong lịch sử định dạng SQL:
Xác thực SQL đã phát triển từ việc kiểm tra cú pháp đơn giản đến phân tích tinh vi hơn:
Không Định Dạng:
1select id, first_name, last_name, email from customers where status = 'active' order by last_name, first_name;
2
Đã Đị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
Không Đị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
Đã Đị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
Không Đị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
Đã Đị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
Dưới đây là các ví dụ về cách triển khai định dạng SQL trong nhiều ngôn ngữ lập trình khác nhau:
1// Ví dụ định dạng SQL bằng 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
1# Ví dụ định dạng SQL bằng Python sử dụng sqlparse
2import sqlparse
3
4def format_sql(sql):
5 return sqlparse.format(
6 sql,
7 reindent=True,
8 keyword_case='upper',
9 identifier_case='lower',
10 indent_width=2
11 )
12
13raw_sql = "select id, name from users where status='active'"
14formatted_sql = format_sql(raw_sql)
15print(formatted_sql)
16
1// Ví dụ định dạng SQL bằng Java sử dụng JSqlParser
2import net.sf.jsqlparser.parser.CCJSqlParserUtil;
3import net.sf.jsqlparser.statement.Statement;
4
5public class SQLFormatter {
6 public static String formatSQL(String sql) throws Exception {
7 Statement statement = CCJSqlParserUtil.parse(sql);
8 return statement.toString()
9 .replaceAll("(?i)SELECT", "\nSELECT")
10 .replaceAll("(?i)FROM", "\nFROM")
11 .replaceAll("(?i)WHERE", "\nWHERE")
12 .replaceAll("(?i)ORDER BY", "\nORDER BY");
13 }
14
15 public static void main(String[] args) throws Exception {
16 String rawSQL = "select id, name from users where status='active'";
17 String formattedSQL = formatSQL(rawSQL);
18 System.out.println(formattedSQL);
19 }
20}
21
1<?php
2// Ví dụ định dạng SQL bằng PHP
3function formatSQL($sql) {
4 // Thay thế các từ khóa bằng phiên bản viết hoa
5 $keywords = ['SELECT', 'FROM', 'WHERE', 'JOIN', 'LEFT JOIN', 'RIGHT JOIN',
6 'INNER JOIN', 'GROUP BY', 'ORDER BY', 'HAVING', 'LIMIT'];
7
8 $formattedSQL = $sql;
9 foreach ($keywords as $keyword) {
10 $formattedSQL = preg_replace('/\b' . preg_quote($keyword, '/') . '\b/i', "\n$keyword", $formattedSQL);
11 }
12
13 // Thêm thụt lề
14 $lines = explode("\n", $formattedSQL);
15 $result = '';
16 $indentLevel = 0;
17
18 foreach ($lines as $line) {
19 $trimmedLine = trim($line);
20 if (!empty($trimmedLine)) {
21 $result .= str_repeat(" ", $indentLevel) . $trimmedLine . "\n";
22 }
23 }
24
25 return $result;
26}
27
28$rawSQL = "select id, name from users where status='active'";
29$formattedSQL = formatSQL($rawSQL);
30echo $formattedSQL;
31?>
32
Định dạng SQL là quá trình cấu trúc mã SQL với thụt lề, ngắt dòng và viết hoa đúng cách để làm cho nó dễ đọc và bảo trì hơn. Định dạng SQL tốt tuân theo các quy tắc đã được thiết lập như viết hoa các từ khóa, đặt các mệnh đề trên các dòng riêng biệt và sử dụng thụt lề nhất quán cho các cấu trúc lồng nhau.
Định dạng các truy vấn SQL mang lại nhiều lợi ích:
Trình định dạng SQL này hỗ trợ cú pháp SQL tiêu chuẩn hoạt động trên hầu hết các hệ thống cơ sở dữ liệu chính, bao gồm:
Mặc dù trình định dạng xử lý SQL tiêu chuẩn tốt, một số tính năng cụ thể cho cú pháp có thể không được định dạng tối ưu.
Trình xác thực kiểm tra các lỗi cú pháp và cấu trúc phổ biến nhưng không thể phát hiện tất cả các lỗi có thể, đặc biệt là những lỗi liên quan đến:
Tốt nhất là sử dụng nó như một hàng rào đầu tiên trước khi thực thi các truy vấn trên cơ sở dữ liệu của bạn.
Hiện tại, trình định dạng sử dụng một phong cách chuẩn dựa trên các quy tắc phong cách SQL được chấp nhận rộng rãi. Các phiên bản trong tương lai có thể bao gồm các tùy chọn tùy chỉnh cho:
Có, công cụ này xử lý tất cả SQL hoàn toàn trong trình duyệt của bạn. Các truy vấn SQL của bạn không bao giờ được gửi đến bất kỳ máy chủ nào hoặc lưu trữ ở bất kỳ đâu. Điều này làm cho nó an toàn để sử dụng với mã SQL nhạy cảm hoặc độc quyền.
Đối với các truy vấn SQL rất lớn:
Công cụ dựa trên web này yêu cầu kết nối internet để tải ban đầu. Tuy nhiên, một khi đã tải, nó hoạt động hoàn toàn trong trình duyệt của bạn. Đối với việc sử dụng hoàn toàn ngoại tuyến, hãy xem xét:
Trình xác thực tập trung vào các yếu tố cú pháp phổ biến giữa các phiên bản SQL (SQL-92 và các phiên bản sau). Nó có thể không nhận ra một số tính năng cụ thể cho các tiêu chuẩn mới nhất hoặc các phần mở rộng độc quyền. Để xác thực theo phiên bản cụ thể, hãy xem xét việc sử dụng các công cụ do nhà cung cấp cơ sở dữ liệu của bạn cung cấp.
Trong khi công cụ web này không cung cấp tích hợp trực tiếp, nhiều IDE có khả năng định dạng tương tự thông qua các tiện ích mở rộng hoặc plugin. Đối với các quy trình tự động, hãy xem xét các công cụ dòng lệnh như:
Hãy thử Trình Định Dạng & Xác Thực SQL của chúng tôi ngay hôm nay để cải thiện chất lượng mã SQL, khả năng đọc và tính chính xác của bạn!
Khám phá thêm các công cụ có thể hữu ích cho quy trình làm việc của bạn