Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

verabeitung von sichten

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von ||HOOG||, 25 Oktober 2013.

  1. ||HOOG||

    ||HOOG|| Aktiver Benutzer

    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
     
  2. Enigma228

    Enigma228 Benutzer

    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: 25 Oktober 2013
  3. ||HOOG||

    ||HOOG|| Aktiver Benutzer

    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?
     
  4. ||HOOG||

    ||HOOG|| Aktiver Benutzer

    aaa du hattest recht...rechnung war kunden_id nicht konto_id -_-
    ...naja besser spät als nie ^^
     
  5. akretschmer

    akretschmer Datenbank-Guru

    Scheinbar ist Dein Problem gelöst. Dennoch sei Dir ans Herz gelegt: nutze expliziete statt implizite JOIN-Syntax. Und falls nicht völlig zu spät: kein MySQL. ;-)
     
  6. ||HOOG||

    ||HOOG|| Aktiver Benutzer

    warum das denn nich?
     
  7. akretschmer

    akretschmer Datenbank-Guru

    Was? MySQL?

    Das ist einfach nur Schrott. Digitaler. Oder Binärer. Jedenfalls Schrott.
     
  8. ||HOOG||

    ||HOOG|| Aktiver Benutzer

    aha ok, warum wegen der angreifbarkeit der daten oder warum?
     
  9. akretschmer

    akretschmer Datenbank-Guru

    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: 26 Oktober 2013
    ||HOOG|| gefällt das.
  10. ||HOOG||

    ||HOOG|| Aktiver Benutzer

    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!!!
     
  11. akretschmer

    akretschmer Datenbank-Guru

    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|| gefällt das.
  12. ||HOOG||

    ||HOOG|| Aktiver Benutzer

    ok ,cool der installiert gerad WINx86-32! hast du viell auch noch ne gute seite zum reinfinden oder verstehen des programms??
     
  13. akretschmer

    akretschmer Datenbank-Guru

    Naja,, die Doku ist recht gut, die sollte man auf alle Fälle mal zumindest querlesen, um zu sehen, was es alles so gibt.

    http://planet.postgresql.org/ ist recht interessant, http://2013.pgconf.de/ ist in wenigen Tagen (ich bin da im Orga-Team...)
    Ansonsten: jedes SQL-Buch.
     
  14. ||HOOG||

    ||HOOG|| Aktiver Benutzer

    welches orga team?BPT oder ICSB??
    dann follow ich direkt
     
  15. ||HOOG||

    ||HOOG|| Aktiver Benutzer

    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^^
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden