Achim Schrepfer: Buchempfehlung zum Thema SQL/MySQL?

Hallo Forumers,

ich bin auf der Suche nach einem vernünftigen SQL/MySQL-Buch. Ideal wäre eine Art "MySQL-Kochbuch" mit häufigen Problemen und dazugehörigen Lösungen (z.B. wie das Perl-Kochbuch von O'Reilly). Das Buch muss nicht für Einsteiger geeignet sein und es ist auch nicht wichtig, mit welcher Programmiersprache (wenn überhaupt) die Beispiele ausgeführt werden.

Hat jemand einen Tipp für mich?

Viele Grüsse und dankeschön,
Achim

  1. Hallo,

    ich bin auf der Suche nach einem vernünftigen SQL/MySQL-Buch. Ideal wäre eine Art "MySQL-Kochbuch" mit häufigen Problemen und dazugehörigen Lösungen (z.B. wie das Perl-Kochbuch von O'Reilly). Das Buch muss nicht für Einsteiger geeignet sein und es ist auch nicht wichtig, mit welcher Programmiersprache (wenn überhaupt) die Beispiele ausgeführt werden.

    Als Kochbuch wuerde ich das nicht bezeichnen, aber ein sehr umfassender und kompetenter Titel ist "MySQL - Einführung, Programmierung, Referenz" von Michael Kofler: http://www.kofler.cc/mysql/mysqlbuch.html.

    MfG, Thomas

    1. Hi,

      danke erstmal für den Tipp. Scheint ja wirklich ein "Standardwerk" zu sein.

      Als Kochbuch wuerde ich das nicht bezeichnen, aber ein sehr umfassender und kompetenter Titel ist "MySQL - Einführung, Programmierung, Referenz" von Michael Kofler: http://www.kofler.cc/mysql/mysqlbuch.html.

      Ich hab mir mal das Inhaltsverzeichnis angeschaut. Das was mich am meisten interessiert wäre das Thema "Fortgeschrittene SQL-Programmierung", nur leider steht da nichts weiteres drüber. Kannst Du mir sagen, was dieses Kapitel so enthält?

      Viele Grüsse,
      Achim

      1. Hallo,

        Ich hab mir mal das Inhaltsverzeichnis angeschaut. Das was mich am meisten interessiert wäre das Thema "Fortgeschrittene SQL-Programmierung", nur leider steht da nichts weiteres drüber. Kannst Du mir sagen, was dieses Kapitel so enthält?

        Das ist kein besonders großes Kapitel. Es bezieht sich auf ein Buchdatenbank-Beispiel:

        JOINs, ungueltige Datensaetze bei n:m-Relationen suchen, temporaere Tabellen als Ersatz fuer Sub-SELECTs.

        Schaue Dir das Buch doch einfach mal in einer Buchhandlung an. Insbesondere im Bereich Administration/Sicherheit bietet es im Vergleich mit anderen Werken mehr.

        MfG, Thomas

        1. Hi,

          Das ist kein besonders großes Kapitel. Es bezieht sich auf ein Buchdatenbank-Beispiel:
          JOINs, ungueltige Datensaetze bei n:m-Relationen suchen, temporaere Tabellen als Ersatz fuer Sub-SELECTs.
          Schaue Dir das Buch doch einfach mal in einer Buchhandlung an. Insbesondere im Bereich Administration/Sicherheit bietet es im Vergleich mit anderen Werken mehr.

          *grübel* dann ist es vielleicht nicht _ganz_ das richtige. Aber mein Kollege wird sich darüber freuen *g*. Danke nochmal!

          Hat vielleicht noch jemand andere Vorschläge?
          s.a. <?m=31128&t=5584>

          Viele Grüsse,
          Achim

  2. Rehi,

    ich bin auf der Suche nach einem vernünftigen SQL/MySQL-Buch. Ideal wäre eine Art "MySQL-Kochbuch" mit häufigen Problemen und dazugehörigen Lösungen (z.B. wie das Perl-Kochbuch von O'Reilly). Das Buch muss nicht für Einsteiger geeignet sein und es ist auch nicht wichtig, mit welcher Programmiersprache (wenn überhaupt) die Beispiele ausgeführt werden.

    normalerweise mach ich das ja nicht, aber ich hab das Gefühl, dass vielleicht mein Titel etwas unglücklich gewählt war, und deshalb vielleicht viele das Posting gar nicht gelesen haben. Ich kann mir irgendwie nicht vorstellen, dass es nur ein einziges empfehlenswertes SQL/MySQL-Buch geben soll ;-) Deshalb mach ich hier nochmal darauf aufmerksam.

    Hat jemand einen Tipp für mich?

    Gilt immer noch *g*.

    Viele Grüsse,
    Achim

    1. Hi Achim

      ich bin auf der Suche nach einem vernünftigen SQL/MySQL-Buch. Ideal wäre eine Art "MySQL-Kochbuch" mit häufigen Problemen und dazugehörigen Lösungen (z.B. wie das Perl-Kochbuch von O'Reilly). Das Buch muss nicht für Einsteiger geeignet sein und es ist auch nicht wichtig, mit welcher Programmiersprache (wenn überhaupt) die Beispiele ausgeführt werden.

      Wenn du wirklich nur SQL willst, mit den Spezialitäten der einzelnen
      Datenbanken (Oracle, Mysql, Postgresql...) kann ich SQL in a
      Nutshell von Oreilly empfehlen. Allerdings ist da zb nicht drin, wie
      du Subselects simulieren kannst, dafür aber Funktionen und spezielle Attribute.

      Wenn du was findest was beschreibt wie Subselects möglichst generell gut
      umgangen werden können, würde mich dass sehr interessieren.

      Gruss Daniela

      1. Hi,

        danke erst mal für den Tipp. O'Reilly-Bücher kann man sowieso fast wahllos kaufen ;-) aber über SQL in a nutshell bin ich noch nicht gestolpert.

        Wenn du was findest was beschreibt wie Subselects möglichst generell gut
        umgangen werden können, würde mich dass sehr interessieren.

        In der MySQL-Doku finden sich ja einige Ansätze, wie man subselects umgehen kann. Ich umgehe subselects meistens auf Anwendungsebene, was aber in manchen Fällen auch nicht funktioniert. Eine andere Art wären temporäre Tabellen. Hier mal ein Auszug aus der Doku:

        --mysql-dokumentation--
        1.4.4.1 Sub-selects

        MySQL currently only supports sub selects of the form INSERT ... SELECT ... and REPLACE ... SELECT .... You can however use the function IN() in other contexts.

        In many cases you can rewrite the query without a sub-select:

        SELECT * FROM table1 WHERE id IN (SELECT id FROM table2);

        This can be re-written as:

        SELECT table1.* FROM table1,table2 WHERE table1.id=table2.id;

        The queries:
        SELECT * FROM table1 WHERE id NOT IN (SELECT id FROM table2);
        SELECT * FROM table1 WHERE NOT EXISTS (SELECT id FROM table2 where table1.id=table2.id);

        Can be rewritten as:

        SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id=table2.id where table2.id IS NULL

        For more complicated subqueries you can often create temporary tables to hold the subquery. In some cases, however this option will not work. The most frequently encountered of these cases arises with DELETE statements, for which standard SQL does not support joins (except in sub-selects). For this situation there are two options available until subqueries are supported by MySQL.

        The first option is to use a procedural programming language (such as Perl or PHP) to submit a SELECT query to obtain the primary keys for the records to be deleted, and then use these values to construct the DELETE statement (DELETE FROM ... WHERE ... IN (key1, key2, ...)).

        The second option is to use interactive SQL to contruct a set of DELETE statements automatically, using the MySQL extension CONCAT() (in lieu of the standard || operator). For example:

        SELECT CONCAT('DELETE FROM tab1 WHERE pkid = ', tab1.pkid, ';')
          FROM tab1, tab2
         WHERE tab1.col1 = tab2.col2;

        You can place this query in a script file and redirect input from it to the mysql command-line interpreter, piping its output back to a second instance of the interpreter:

        prompt> mysql --skip-column-names mydb < myscript.sql | mysql mydb
        --ende mysql-dokumentation--

        Hoffe, das hilft weiter...

        Viele Grüsse,
        Achim