Wenn die Daten schon als *.xls vorliegen, dann diese zunächst in eine "Textdatei" sprich in eine CSV-Datei exportieren.
Diese lassen sich dann in der Regel mit diversen Tools (oder mit den Kommandozeilen Werkzeugen der Datenbank selbst) in eine Datenbank importieren.
Mit SQL holt man sich die nötigen Informationen wieder aus der DB.
Empfehlung:
SQuirreL bietet Plugins und da sollte auch was dabei sein, um eine CSV-Datei in die Datenbank zu importieren. Wenn die Excel Dateien alle den gleichen Aufbau haben wäre das von Vorteil, sonst wäre ggf. etwas Handarbeit erforderlich, diese zunächst mal anzugleichen (wenn es sich um ähnliche Daten handelt). Da wir die Inhalte nicht kennen kann man hier schlecht Tipps geben.
In der Datenbank wird dann eine "Tabelle" angelegt. Das geht mit dem Befehl "CREATE TABLE <name_der_tabelle> (<definition_der_spalten>);"
Der Name der Tabelle und auch der einzelnen Spalten sollte immer kleingeschrieben werden, darf keine Leerzeichen enthalten (wohl aber "Unterstriche") und sollte keine Sonderzeichen oder Umlaute enthalten ("ganz böse").
Wichtig! Jede Tabelle sollte eine eindeutige ID, einen sogenannten Primärschlüssel besitzen. Dieser kann entweder künstlich sein (Stichwort "SERIAL") oder man nutzt eine bestehende Spalte. Bei Artikeln ist die Artikelnummer in der Regel eindeutig (zumindest in der Artikel-Stammdatenliste). Eindeutig bedeutet, es gibt diesen genau ein einziges mal in der Spalte der Tabelle.
Hat man die Tabelle erstellt, können die Daten aus den CSV-Dateien in die DB importiert werden. Wie gesagt sollte SQuirreL hier über die Plugins was bereitstellen.
Die Ergebnisse der in Squirrel ausgeführten Datenbankanfragen können per Rechtsklick auf die angezeigten Ergebnisse wieder direkt in eine Excel Datei exportiert werden.
Eine simple SQL-Abfrage sieht wie folgt aus:
SELECT <spaltenname1>, <spaltenname2>, ... FROM <name_der_tabelle>;
Damit bekommt man "alles" aus der Tabelle zurück.
Du möchstest aber auf bestimmte Strings (gleichheit) prüfen, das sieht dann eher so aus:
SELECT <spaltenname1>, <spaltenname2>, ... FROM <name_der_tabelle> WHERE <spaltenname_mit_dem_zu_pruefenden_inhalt>='abc123';
Wenn der Begriff den Du suchst ein Teilstring ist als z.B. "bc12" und davor und dahinter noch was kommt wird mit dem SQL-Befehl "LIKE" (berücksichtigt Gross-/Kleinschreibung...je nach Datenbank) oder "ILIKE" (speziell bei PostgreSQL ignoriert dies die Gross-/Kleinschreibung) gearbeitet. Als Platzhalter wird das Prozentzeichen bei SQL verwendet ('%').
Für das Beispiel mit dem Teilstring oben sieht das dann wie folgt aus (wir wollen hier die Gross/Kleinschreibung ignorieren):
SELECT <spaltenname1>, <spaltenname2>, ... FROM <name_der_tabelle> WHERE <spaltenname_mit_dem_zu_pruefenden_inhalt> ILIKE '%bc12%';
Wenn man das zurückgelieferte Ergebnis nach einer bestimmten Spalten sortieren möchte, hängt man am Ende ein " ORDER BY <spaltennameXXX>" an.
Standard ist eine Aufsteigende Sortierung englisch "ascending". Man kann dies explizit hinter der Angabe der Spalte mit "ASC" angeben. Will man absteigend sortieren (englisch "descending"), was mag man da wohl angeben? Richtig "DESC".
Alles in den "<..>" Klammern ist entsprechend zu ersetzen. Die SQL Befehle habe ich alle in GROSSBUCHSTABEN geschrieben.
So, das wäre dann eine kurze Einführung in SQL-Datenbanken basics.
Man kann die Tabellen untereinander verknüpfen,...
PostgreSQL erlaubt auch Mengenoperationen (UNION, INTERSECT, EXCEPT), die mit MySQL deutlich komplizierter umgesetzt werden müssen, weil die entsprechenden SQL-Befehle nicht unterstützt werden.
Weitere Vorteile von PostgreSQL gegenüber MySQL, sind die Datenbank Kommentare. MySQL kann es prinzipiell aber nur wenn man diese gleich bei der Erstellung mit angibt. PostgreSQL kann diese auf Tabellen plus Spalten und man kann sie beliebig löschen und wieder neu anlegen.