5 SQL-IDE med öppen källkod som du kan lära dig och utforska

, Author

Om du har arbetat mycket med SQL har du förmodligen använt någon form av SQL-IDE för att hjälpa dig att slutföra arbetet. Ja, det är möjligt att göra allt i SQL från kommandoraden, men att skapa eller ens underhålla databaser och tabeller på det sättet är en övning i masochism. Det finns några trevliga kommersiella IDE som dbArtisan och SQL Servers Management Studio, men IDE är ett område där öppen källkod kan fungera lika bra (eller i vissa fall till och med bättre).

Detta är särskilt relevant eftersom molnets (dvs. SAAS) inverkan börjar bli kännbar på den kommersiella databasmarknaden. Bland orsakerna kan nämnas att tjänsteleverantörer i större utsträckning använder sig av databaser med öppen källkod och att alternativ som NoSQL växer fram. Enligt webbplatsen Statista kommer de globala intäkterna från kommersiella databaser att fortsätta att minska under de kommande åren.

För den här artikeln är de fem SQL-klienter jag valt Squirrel, HeidiSQL, DBeaver, Tora och OmniDB. Jag har använt HeidiSQL och Squirrel ett tag, så låt oss börja med den senare.

Squirrel

Squirrel var ett populärt val av klient i den bank där jag arbetade för fem år sedan, eftersom de föredrog Java, och det är det som den är skriven på. Sybase användes också flitigt (det var inte precis den mest populära databasen), och Squirrel är en av de få klienter som kan prata med den. (Om du håller räkningen hemma så var Sybase också SQL Servers föregångare). Squirrel kryssar för alla större databaser (Oracle, DB2, Informix, Ingres, SQL Server, SAPDB och Sybase), plus många fler, och har 17 års erfarenhet.

Men Squirrel förbjöds så småningom i produktionen på banken, främst på grund av dess förmåga att stödja samtidiga sessioner med flera databaser. Ett par gånger fick den slut på minne, vilket orsakade problem med levande databaser; det gav den det röda kortet. För täckningsbredd (tack vare JDBC) rekommenderas det starkt, men se upp med hur många sessioner du kör; ju mer minne du har, desto bättre.

HeidiSQL

HeidiSQL, som är drygt hälften så gammal som Squirrel, har varit min personliga favorit de senaste tre åren. Det är mer begränsat i sitt utbud av databaser (du får bara MySQL/MariaDB, SQL Server och PostgreSQL) men för många räcker det. Jag har funnit den mycket snabb, vilket är viktigt för projekt som en tabell med 29 miljoner rader; ett select count (*) SQL-kommando mot MariaDB som körs på min dator tar cirka två minuter.

Jag tror att en stor del av hastigheten beror på att den använder sina egna drivrutiner och ansluter direkt, inte via ODBC. Särskilt bra är import/exportfunktionerna och batchimport: Du kan köra stora SQL-filer (t.ex. säkerhetskopieringsexport) direkt utan att ladda dem i frågefönstret.

En annan trevlig funktion: När du skriver en SQL-fråga visas den markerade tabellens kolumner i ett annat fönster tillsammans med SQL-funktioner och nyckelord, plus dina egna utdrag. När du arbetar med både live- och utvecklingsdatabaser är det mycket viktigt att enkelt kunna flytta stora block av data.

HeidiSQL är för Windows men kan användas på andra ställen via Wine Emulator på Linux och Mac (men för att vara ärlig skulle jag lika gärna använda antingen Squirrel eller DBeaver).

DBeaver

DBeaver är en annan Java-driven SQL-klient; i likhet med JDBC-kontakten har den en stor uppsättning databaser som den kan ansluta till. Det finns en Enterprise-version, som innehåller stöd för NoSQL-databaser (Cassandra, MongoDb och Redis), men community-utgåvan är den som jag har undersökt.

Det finns en stor lista med databaser att prova från anslutningsguiden; jag valde SQLite, eftersom jag har en 600 MB stor databas som skapades för ett projekt för några år sedan. Den fungerade felfritt med den databasen och jag blev imponerad. Även om jag fortfarande föredrar HeidiSQL skulle jag mycket gärna använda DBeaver om tillfälle gavs.

En sak att notera: DBeaver installerar inte drivrutiner från början, utan hämtar dem när du behöver dem (detta är mycket ”Eclipse-liknande”). Det beror förmodligen på att den är byggd på Eclipse-plattformen, så om du är van vid det kommer du att känna dig som hemma. Jag hade i alla fall inga problem med det; det kändes väldigt smidigt. Utbudet av exportformat inkluderar CSV, HTML och XML, samt JSON och Markdown.

Fördelen med Java för både detta och Squirrel är att du inte är begränsad av plattformen; DBeaver inkluderar både Debian- och RPM-installationer för Linux, samt Windows och Mac.

Tora

Skriven i C++, valde jag Tora som en av de fem eftersom den har stöd för Oracle och har en PL/SQL-debugger. Det är plattformsoberoende och testas med GCC, Clang och MSVC 2013/2015. Förutom Oracle stöder den MySQL, PostgreSQL och andra databaser via ODBC. Det blev öppen källkod för 13 år sedan.

Som man kan förvänta sig använder Tora Qt för användargränssnittet och är snabbt, men det känns lite daterat, särskilt när man ansluter till MySQL. Om du arbetar med Oracle och inte har kommersiell programvara, använd Tora; men för MySQL/PostgreSQL, eller något av HeidiSQL, är Squirrel och DBeaver förmodligen bättre.

OmniDB

OmniDB skiljer sig lite från de andra. Den är skriven i Python och installerar en lokal webbserver och webbläsare. Databaser som stöds är bland annat Oracle, MySQL, MariaDB och PostgreSQL. Databaserna SQLite, SQL Server, DB2 och Firebird stöds inte för närvarande, men finns helt klart med på färdplanen.

Jag är inte ett fan av webb-GUI:er i allmänhet, men detta såg bra ut och fungerar mycket bra. HeidiSQL och DBeaver ger bättre import/export, men OmniDB är öppen för förslag till framtida utveckling. Precis som de två Java-klienterna är OmniDB plattformsoberoende och har det mest moderna utseendet och känslan.

Slutsats

Jag är van vid HeidiSQL, men DBeavers funktioner imponerade på mig. Squirrel är mycket solidt och moget. OmniDB ser trevligt ut, även om det är lite lättviktigt när det gäller funktioner för tillfället; du skulle förmodligen inte gissa att det använder Django CMS. Tora är ganska bra men skulle behöva bättre anslutningsmöjligheter.

Lämna ett svar

Din e-postadress kommer inte publiceras.