verabeitung von sichten

||HOOG||

Aktiver Benutzer
Beiträge
25
hi leute,

ich bin noch neu was RDBMS angeht und hoffe ihr könnt mir helfen...

ich will die tabelle rechnung und die tabelle bankonten verknüpfen um informationen über ihre zahlung abzurufen..

ich habe folgenden sql-befehl verwendet:

||select r.name,r.betrag,b.saldo,b.bank
from rechungen r, bankkonten b
where r.konto_ID = b. konto_ID||

ich habe den alias in der where-klausel probiert weg zulassen doch dann werden alle datensätze aus den jewiligen tabellen angezeigt.... -_-

das kann doch nicht richtig sein,oder?was mach ich da schon wieder falsch???

gruß HOOG
 
Werbung:

Enigma228

Benutzer
Beiträge
7
Hast du in deiner Abfrage "Rechungen" statt "Rechnungen" geschrieben??
Sieht nach Flüchtigkeitsfehler aus.. Aber ich bin auch nur Anfänger/Wiedereinsteiger nach etlichen Jahren..

Gruss
Thomas
 
Zuletzt bearbeitet:

||HOOG||

Aktiver Benutzer
Beiträge
25
ne leider nicht... der wendet jede kunden_id auf jede zeile von bankkonten an...das ist doch nicht normal!!?
aa ok hast du schonmal im bereich sql programmierung gearbeitet?
 

||HOOG||

Aktiver Benutzer
Beiträge
25
aaa du hattest recht...rechnung war kunden_id nicht konto_id -_-
...naja besser spät als nie ^^
 

akretschmer

Datenbank-Guru
Beiträge
9.042
aha ok, warum wegen der angreifbarkeit der daten oder warum?

Nicht nur. Ich vergleiche es mal mit PostgreSQL, nachfolgend PG:

MySQL hat Probleme mit der Sprache SQL. Manche Dinge werden zwar akzeptiert, aber falsch gemacht. So z.B. inline definierte foreign keys oder Check-Constraints. Die kann man gemäß der SQL-Spec definieren, es kommt auch kein Fehler. Nur wirken sie nicht. An anderen Stellen kommen keine Fehler, wo echte Syntaxfehler bestehen. Beispiel: Aggregatfunktionen und GROUP BY. Lies mal hier: http://www.php.de/datenbanken/103488-count-bringt-leere-zeile.html . PG handelt strict nach der SQL-Spec, MySQL ist davon Lichtjahre entfernt.

Datentypen kennt MySQL nur sehr wenige. In PG gibt es diese massig und es ist erweiterbar. Siehe http://www.postgresql.org/docs/9.3/interactive/datatype.html . Da sind so Dinge wie XML und JSON dabei, aber auch RANGE-Typen. Durch Extensions gibt es auch z.B. EAN-Codes, ISBN-Nummern etc. So richtig massiv wird es in PostGIS, wo man faktisch in 4 Dimensionen arbeiten kann: x, y, Höhe und z.B. Zeit. Tracking von Geokoordinaten wird so erst richtig machbar.

MySQL hat nur rudimentäre Möglichkeiten der internen Programmierung. In PG kannst Du intern in vielen Programmiersprachen (pl/pgsql, PERL, PYTHON) und so weiter arbeiten. Auch hier: erweiterbar. Wir haben einen Kunden, der hat faktisch seine ganze Geschäftslogig innerhalb der DB abgebildet. Sehr cool, weil sehr schnell und konsistent.

MySQL unterstützt nur einen Index pro Table und Abfrage. PG hat einen kostenbasierten Optimizer, kann beliebig viele Indexe pro Table & Abfrage nutzen. Richtig sichtbar wird das, wenn man Performance-Analyse mit Explain machen will.

MySQL kann sehr viele analytische Abfragen nicht. PG hat das ganze Spektrum von Window-Funktionen, es kann gruppenweise aggregieren, es kann rekursive Abfragen und so weiter. Viele komplexe Analysen bauen darauf auf, mit MySQL stehst da im Regen.

MySQL hat viele Engines (MyISAM, InnoDB, Blackhole). Keine kann alles. MyISAM kann keine Transactions und arbeitet mit massiven tablelocks. InnoDB kann kein Fulltext (erst seit 5.6), Blackhole speichert zwar sehr schnell, hat aber massive Datenverluste beim Select.
Einfach nur ein wildes Chaos. PG ist aus einem Guß und kann mehr als alle MySQL-Engines zusammen.

MySQL gehört zu Oracle. Oracle hat eine eigene DB, mit der sie reich geworden sind. Nur ganz naive hoffen, daß Oracle noch viel in MySQL investieren wird, um sich eine kostenfreie Konkurrenz seines Kernproduktes zu schaffen. PG ist zu Oracle zumindest auf Augenhöhe.


Das waren nur wenige Dinge. Das geht z.B. mit Datenintegrität weiter. MySQL und Zeichensätze - ein Dilemma. MySQL prüft keine Eingaben - man kann nicht vorhandene Datumsangaben als DATE speichern. Einfach nur FAIL. PG im Vergleich dazu funktioniert einfach. Und das sehr gut!


Und ja: ich könnte das noch episch fortsetzen...
 
Zuletzt bearbeitet:

||HOOG||

Aktiver Benutzer
Beiträge
25
ok, kann zwar nicht alles verstehen,aber manches kann ich auf jedenfall nachvollziehen!also meinste soll ich mich lieber direkt mit PG beschäftigen...über visual basic oder gibt es da ein extra programm für??

danke für di mühe der umfangreichen erklärung!!!
 

akretschmer

Datenbank-Guru
Beiträge
9.042
ok, kann zwar nicht alles verstehen,aber manches kann ich auf jedenfall nachvollziehen!also meinste soll ich mich lieber direkt mit PG beschäftigen...über visual basic oder gibt es da ein extra programm für??

danke für di mühe der umfangreichen erklärung!!!

Du kannst auch mit Visual Basic arbeiten: http://www.vb-paradise.de/programmieren/datenbankprogrammierung/12443-postgresql/

An sich ist PostgreSQL ein DB-Server, so wie auch MS-SQL-Server, Oraggle, MySQL, DB2, Informix, ... Du brauchst also erst einmal das DB-System. Für Windows gibt es das als schickes Install-Paket hier: http://www.postgresql.org/download/windows/
 

||HOOG||

Aktiver Benutzer
Beiträge
25
ok ,cool der installiert gerad WINx86-32! hast du viell auch noch ne gute seite zum reinfinden oder verstehen des programms??
 

akretschmer

Datenbank-Guru
Beiträge
9.042
Werbung:

||HOOG||

Aktiver Benutzer
Beiträge
25
bis jetzt hab ich nur einstieg in sql aber ioch werde mich montag mal in die bibliothek bewegen und mal ein paar gute bücher mitnehemen!!hab mir auch direkt ein ticket für den 9.11 bestellt^^
 
Oben