SQL Query Formatter [ditutup]

14

Apakah ada program / plugin / ekstensi SQL Query Formatting?

Saya menggunakan PostgreSQL dan MySQL tetapi DB lain dipersilakan juga.

Saya dapat menggunakan VM untuk menguji tetapi akan lebih suka solusi berbasis Linux (Ubuntu).

Saya telah melihat versi online tetapi tidak ada yang dapat diinstal.

IDE Berbasis Eclipse juga merupakan nilai tambah

Contoh:

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

untuk sesuatu seperti

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

Ini adalah contoh online:

Tapi saya lebih suka ini berada di lingkungan lokal

Terkait:

MEMPERBARUI:

Melihat ini:

PEMBARUAN AKHIR:

Walaupun ini mungkin karena Jet Brains memiliki IDE Database baru yang memiliki beberapa opsi pemformatan ulang yang bagus

Phill Pafford
sumber
Apakah Anda sudah melihat formatter SQLinForm ( sqlinform.com ). Ini ditulis dalam Java dan dengan demikian berjalan di Linux dan memiliki versi baris perintah dan API yang tersedia
Guido

Jawaban:

8

pgAdmin hadir dengan formatter kueri bawaan. Anda akan membuat tampilan untuk melihat kueri yang diformat seperti ini:

masukkan deskripsi gambar di sini

Tentu saja, pengidentifikasi kasus campuran tanpa tanda kutip akan diberikan ke huruf kecil. (Tapi saya akan menganggap ini sebagai berkah.)

Dan kata-kata berisik seperti ASCdalam ORDER BYakan dipangkas.

Dan last but not least, tampilan harus valid dalam database untuk memulai. Jadi tidak persis apa yang Anda minta. Pertanyaan sebenarnya direkayasa balik dari definisi tampilan.

Erwin Brandstetter
sumber
1
Maaf saya pikir Anda salah paham pertanyaannya, saya bisa memformatnya sendiri. Yang saya cari adalah melakukan sesuatu dalam perintah atau IDE. Contoh: Saya akan menyorot kueri dan tekan ctrl + shift + F, ini akan membuat indentasi otomatis, semua kata kunci ke UPPER, setiap perintah / kata kunci dimulai pada baris baru, dll ... Jadi, jika seseorang mengetik atau menulis permintaan panjang ini, saya hanya ingin cara cepat untuk memformatnya daripada melakukan ini dengan tangan. Ini adalah contoh online: dpriver.com/pp/sqlformat.htm
Phill Pafford
1
@PhillPafford: Ya, tidak persis apa yang Anda cari. Hal terdekat dengan pemformat kueri PostgreSQL yang saya tahu. Bukan berarti tidak ada apa-apa di luar sana.
Erwin Brandstetter
Sudahkah Anda mencoba jetbrains.com/dbe
Phill Pafford
3

Meskipun lebih umum (SQL bukan pgSQL), fsqlf ( http://sourceforge.net/projects/fsqlf/ ) adalah baris perintah atau program GUI, open source, untuk memformat SQL. Ini mendukung memiliki file format.conf yang memungkinkan Anda banyak fleksibilitas dalam bagaimana produk akhir terlihat.

Contoh:

  [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:~] 
$ 
Wayne Walker
sumber
0

BlancoSqlEditorPlugin adalah formatter SQL berbasis Eclipse Plugin. Itu ditulis dalam Java dan OSS.

Tosiki Iga
sumber
Apakah ada versi bahasa Inggris dari halaman ini?
dezso
0

Editor kueri Workbench MySQL secara native menyediakan SQL Query Formatter: Anda hanya perlu mengklik ikon "percantik" seperti yang ditunjukkan di bawah ini (lingkaran merah). Perhatikan bahwa itu tidak mengubah kasus operator SQL. (Saya mengirimkan laporan bug .)

masukkan deskripsi gambar di sini

Franck Dernoncourt
sumber
-1

SQLinForm ( http://www.sqlinform.com ) didasarkan pada Java dan dengan demikian dapat berjalan di lingkungan Linux. Mereka memiliki versi API dan baris perintah yang dapat Anda gunakan dengan mudah di skrip Anda.

Guido
sumber