Định dạng truy vấn SQL [đã đóng]


14

Có bất kỳ chương trình / plugin / phần mở rộng truy vấn SQL (dựa trên Linux) nào không?

Tôi sử dụng PostgreSQL và MySQL nhưng các DB khác cũng được chào đón.

Tôi có thể sử dụng VM để kiểm tra nhưng sẽ thích giải pháp dựa trên Linux (Ubuntu).

Tôi đã thấy một phiên bản trực tuyến nhưng không có gì có thể cài đặt được.

IDE dựa trên Eclipse cũng là một lợi thế

Thí dụ:

select f1, f2, fname, lName from tblName where f1 = true and fname is not null order by lName asc

đến một cái gì đó như

SELECT f1, f2, fname, lName
FROM tblName
WHERE f1 = true
AND fname IS NOT NULL
ORDER BY lName ASC

Đây là một ví dụ trực tuyến:

Nhưng tôi thích điều này hơn trong một môi trường địa phương

Liên quan:

CẬP NHẬT:

Nhìn vào điều này:

CẬP NHẬT CUỐI CÙNG:

Mặc dù đây có thể là một Jet Brains quá mức có IDE cơ sở dữ liệu mới có một số tùy chọn định dạng lại tuyệt vời


Bạn đã xem qua bộ định dạng SQLinForm ( sqlinform.com ) chưa. Nó được viết bằng Java và do đó chạy trên Linux và có phiên bản dòng lệnh và API có sẵn
Guido

Câu trả lời:


8

pgAdmin đi kèm với một định dạng truy vấn tích hợp. Bạn sẽ tạo một khung nhìn để xem truy vấn được định dạng như thế này:

nhập mô tả hình ảnh ở đây

Tất nhiên, số nhận dạng trường hợp hỗn hợp không được trích dẫn sẽ được chuyển sang chữ thường. (Nhưng tôi sẽ coi đây là một phước lành.)

Và những từ ồn ào như ASCtrong ORDER BYsẽ được cắt bớt.

Và cuối cùng nhưng không kém phần quan trọng, chế độ xem sẽ phải hợp lệ trong cơ sở dữ liệu để bắt đầu. Vì vậy, không chính xác những gì bạn yêu cầu. Các truy vấn thực sự được thiết kế ngược từ định nghĩa xem.


1
Xin lỗi tôi nghĩ rằng bạn đã hiểu nhầm câu hỏi, tôi có thể tự định dạng này. Những gì tôi đang tìm kiếm là một cái gì đó để làm điều này trong một lệnh hoặc IDE. Ví dụ: Tôi sẽ làm nổi bật truy vấn và nhấn ctrl + shift + F, điều này sẽ tự động thụt lề, tất cả từ khóa thành UPPER, mỗi lệnh / từ khóa bắt đầu trên một dòng mới, v.v ... Vì vậy, nếu ai đó gõ hoặc viết kịch bản truy vấn dài này, tôi chỉ muốn một cách nhanh chóng để định dạng nó thay vì làm điều này bằng tay. Dưới đây là một ví dụ trực tuyến: dpriver.com/pp/sqlformat.htm
Phill Pafford

1
@PhillPafford: Vâng, không chính xác những gì bạn đang tìm kiếm. Điều gần nhất với một trình định dạng truy vấn PostgreSQL mà tôi biết. Không có nghĩa là không có gì ngoài đó.
Erwin Brandstetter

Bạn đã thử jetbrains.com/dbe
Phill Pafford

3

Mặc dù chung chung hơn (SQL thay vì pgQuery), fsqlf ( http://sourceforge.net/projects/fsqlf/ ) là một dòng lệnh hoặc chương trình GUI, nguồn mở, để định dạng SQL. Nó hỗ trợ có một tệp format.conf cho phép bạn linh hoạt trong cách nhìn sản phẩm cuối cùng.

Ví dụ:

  [wwalker@speedy:~] 
$ echo "select f1, f2, fname, lName from tblName where f1 = true and fname is not null order by lName asc" | fsqlf 

SELECT
  f1
, f2
, fname
, lName
FROM tblName
WHERE f1=true
AND fname is not null
ORDER BY lName asc
  [wwalker@speedy:~] 
$ vim formatting.conf # 2 character change
  [wwalker@speedy:~] 
$ echo "select f1, f2, fname, lName from tblName where f1 = true and fname is not null order by lName asc" | fsqlf 

SELECT
 f1 ,
 f2 ,
 fname ,
 lName
FROM tblName
WHERE f1=true
AND fname is not null
ORDER BY lName asc
  [wwalker@speedy:~] 
$ vim formatting.conf # 1 character change
  [wwalker@speedy:~] 
$ echo "select f1, f2, fname, lName from tblName where f1 = true and fname is not null order by lName asc" | fsqlf 

SELECT
 f1 , f2 , fname , lName
FROM tblName
WHERE f1=true
AND fname is not null
ORDER BY lName asc
  [wwalker@speedy:~] 
$ 



0

Trình soạn thảo truy vấn của MySQL Workbench thực sự cung cấp Trình định dạng truy vấn SQL: bạn chỉ cần nhấp vào biểu tượng "làm đẹp" như hiển thị bên dưới (vòng tròn màu đỏ). Lưu ý rằng nó không thay đổi trường hợp của các toán tử SQL. (Tôi đã gửi báo cáo lỗi .)

nhập mô tả hình ảnh ở đây


-1

SQLinForm ( http://www.sqlinform.com ) dựa trên Java và do đó có thể chạy trong môi trường Linux. Họ có một API và phiên bản dòng lệnh mà bạn có thể dễ dàng sử dụng trong các tập lệnh của mình.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.