SQL Select only if... Anweisung PL SQL ?

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Selmau
User
Beiträge: 2
Registriert: Dienstag 21. März 2017, 18:53

Hallo Zusammen

Ich bin an einem Java Swing Projekt dran und habe nun ein Problem beim Auslesen einer MYSQL Datenbank, welche ich in Java in ein JTable anzeigen möchte. In der Datenbank möchte ich Bestellungen für verschiedenen Produkte einlesen, da ich aber relativ viele Produkte abdecke, hat die Datenbank bzw Tabelle sehr viele Spalten. Nun möchte ich natürlich, wenn ich eine Bestellung spezifisch anzeige, dass nur jene Spalten angezeigt werden, bei denen ein Wert eingetragen wurde bzw. nicht alle Werte null sind. So ist nämlich die Tabelle auch übersichtlich, was Sie mit allen Produkten (Spalten) nicht wäre.

Nun brauche ich eine SQL Query, die mir genau dies aus meiner Datenbank auswählt. Ich habe ein wenig recherchiert und habe gelesen dass anscheinend dies nur mit PL SQL möglich ist. Nun meine Frage: Ist dies mit SQL überhaupt möglich und wenn ja wie wäre der ansatz für meine query?

Zu meiner Hardware bzw. Software, ich habe einen Server gemietet, auf der die Maria.db Sql version 10.6 installiert ist oder ich kann auch auf einen Wamp Server ausweichen auf dem Apache SQl installiert ist.

Ich hoffe jemand kann mir weiterhelfen weil SQL ist für mich immer noch ein wenig Neuland sobsld es etwas tiefer in die Materie geht.

Gruss Selmau
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@Selmau: Du hast jetzt nicht für jedes Produkt eine eigene Spalte? Solche Probleme löst man mit mehreren Tabellen, die eine Verknüpfung zwischen Produkt und Bestellung herstellen.
Selmau
User
Beiträge: 2
Registriert: Dienstag 21. März 2017, 18:53

Besten Dank für deine Antwort

Du meinst also, dass ich für jedes Produkt Tabelle erstellen soll und dann be einer Bestellung jeweils in diejenigen Tabellen hineinschreibe? Das würde einfach heissen dass ich etwa 40 Tabellen hätte und somit ei enormer Aufwand bei einer Sortimentenwechslung

Für das Auslesen müsste wäre es dann einfacher da ich in der query sagen könnte, es soll nur jene Spalten Anzeigen, wo die Bestellnumnee =xy ist, dafür wird das hineinschreiben kompliziert, da ich für jedes Produkt abfragen muss in Java, ob mehr als 0 davon bestelkt wurden

Für mich wäre die Variante mit einer Tabelle einiges leichter zu regeln in Java, wenn dies mit Pl SQL funktionieren würde.
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@Selmau: nein, das meine ich nicht. Was hast Du schon über relationale Datenbanken gelernt? Dir scheinen noch wichtige Grundlagen zu fehlen. Ohne Deine genauen Anforderungen zu kennen, ist es schwierig, Dir beim Tabellendesign zu helfen. Aber prinzipiell sieht sowas so aus:
[codebox=text file=Unbenannt.txt]
Tabelle Produkt:
ID | Bezeichnung | etc.
------------------------

Tabelle Bestellung:
ID | Datum | etc.
------------------

Tabelle Bestellmenge:
Bestell_ID | Produkt_ID | Menge
--------------------------------
[/code]
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

wenn du deine Daten nicht wie von Sirius3 vorgeschlagen strukturieren / normalisieren kannst (oder willst), dann würde sich für dich auch sehr eine Dokumenten-orientierte Datenbank wie CouchDB oder MongoDB anbieten.

Anbindungen für PYTHON gibt es für beide Datenbanken ;-)

Gruß, noisefloor
BlackJack

Für Java gibt's die auch, damit man sie dann von Jython aus verwenden kann. :-)
Antworten