25/1/2008

MySQL statements uitproberen zonder LAMP

Filed under: — pinguim @ 8:29 pm

MySQL is even in de aandacht geweest wegens de aankoop van het moederbedrijf MySQL AB door Sun. Hopelijk blijft het de basis van vele handige vrije software projecten waar het een goede combinatie meer vormt.

Vanuit verschillende toepassingen of programmeeromgevingen kan je MySQL databank ondervragen met SQL statements. Meestal is het handig om ze op voorhand uit te proberen, zelfs al heb je geen phpMyAdmin in de buurt omdat er geen webserver draait bv.

Daarom: sql-commando’s opslaan in een bestand, en het bestand laten uitvoeren.

Begin een nieuw text-bestand bv met het openen van de database:

USE mijngegevens_db;
SELECT * FROM mijntabel WHERE afdeling = "afd1";

Bewaar in een tekstbestand getMyData.sql

Log in op de databank
mysql -h mijnserver -u pinguim -p
Vanop de mysql command prompt:
source getMyData.sql

Wil je de resultaten niet alleen over het scherm zien rollen maar ook nadien ergens terugvinden, doe dan op de mysql command prompt een “tee” alvorens de vraag te laten uitvoeren:

tee mysqlresultaat.txt
source getMyData.sql

In het tekstbestand mysqlresultaat.txt vind je het commando terug en het resultaat eronder.

Als je een aantal sql-vragen moet stellen met steeds een klein verschil in de vraag, bv telkens een andere maand, afdeling, .. kan je de sql-vraag in een tekstbestand plakken, kopieren naar het aantal totale vragen, en het ene stukje veranderen dat nodig is.

USE mijngegevens_db;
SELECT * FROM mijntabel WHERE afdeling = "afd1";
SELECT * FROM mijntabel WHERE afdeling = "afd2";
SELECT * FROM mijntabel WHERE afdeling = "afd3";

(Daar kan OOo Calc ook mee helpen; vult waarden aan bij kopieren).

Je kan dan de hele set sql-vragen tegelijk laten uitvoeren.

Telkens je iets doet wordt het bijgeschreven in het resultatenbestand.
Dat kan handig zijn omdat je zo een log hebt. Je kan het inderdaad
ook gebruiken terwijl je op de mysql command prompt werkt, om de resultaten nadien te bekijken, of de sql vragen te hergebruiken.

In bovenstaand kan je te de mogelijke afdelingen vinden met:

SELECT DISTINCT afdeling FROM mijntabel

die je dan weer zou kunnen gebruiken in een sql statement …

(LAMP = Linux Apache MySQL Php combinatie)

Powered by WordPress