han: myslq: blob vs. text?

Hallo,

was ist denn der unterschied zwischen blob und text?

grießsle

  1. Ich grüsse den Cosmos,

    was ist denn der unterschied zwischen blob und text?

    blob speichert die Daten binär ab, ist also für entsprechende Inhalte gedacht.
    text speichert ASCII-Zeichen, wie ein char oder varchar.
    Desweiteren ist text auf 65565 Zeichen begrenzt.

    Möge das "Self" mit euch sein

    --
    Neulich dachte ich mir, einmal S/M ausprobieren wäre eine tolle Erfahrung. Also hab ich Windows gebootet ...
    ie:{ br:> fl:| va:| ls:& fo:{ rl:( n4:{ de:] ss:) ch:? js:| mo:) sh:( zu:)
    1. Moin!

      was ist denn der unterschied zwischen blob und text?

      blob speichert die Daten binär ab, ist also für entsprechende Inhalte gedacht.
      text speichert ASCII-Zeichen, wie ein char oder varchar.
      Desweiteren ist text auf 65565 Zeichen begrenzt.

      Deine Aussagen sind nicht ganz vollständig.

      Ein BLOB ist im Prinzip wie TEXT, verwendet aber keinerlei Zeichenkollation und -codierung, und nutzt dementsprechend nur binäre Vergleiche. Ist also für Texte identisch zu TEXT, bei dem man binäre Vergleiche erzwingt.

      TEXT speichert selbstverständlich nicht nur ASCII-Zeichen, sondern erlaubt jede Art von Bytekombination in fast jeder Art von Codierung (ab Version 4.1).

      TEXT erlaubt 65535 Zeichen - BLOB aber auch nur 65535 Bytes. Außerdem gibt es noch TINYTEXT/TINYBLOB, MEDIUMTEXT/MEDIUMBLOB und LONGTEXT/LONGBLOB.

      - Sven Rautenberg

      --
      "Love your nation - respect the others."
      1. yo,

        die codierung ist sicherlich eine sache, due funktionalität eine zusätzliche. bestimmte funktionen und operationen können auf blob datentypen nicht angewandt werden. so wird zum beispiel die funktion LEN, bzw LENGTH auf blob datentypen nicht funktionieren.

        Ilja

        1. echo $begrüßung;

          die codierung ist sicherlich eine sache, due funktionalität eine zusätzliche. bestimmte funktionen und operationen können auf blob datentypen nicht angewandt werden. so wird zum beispiel die funktion LEN, bzw LENGTH auf blob datentypen nicht funktionieren.

          Wieso nicht? LENGTH liefert immer die Länge des Inhalts in Bytes. Dabei ist es egal, welchen Typ das Feld hat.

          BLOB-Felder haben im Gegensatz zu TEXT-Feldern kein Character Set. Wenn du im Sinn hattest, dass die Länge nicht (in jedem Fall) stimmen kann, weil bei Zeichenkodierungen wie UTF-8 die Zeichen unterschiedliche Byteanzahl haben können, dann hast du das BLOB-Feld missbraucht und alle Folgefehler wären dein Problem. Außerdem hättest du die falsche Funktion verwendet. Um die Anzahl der Zeichen in Abhängigkeit der dem Feld zugeordneten Zeichenkodierung zu ermitteln, ist die Funktion CHAR[ACTER]_LENGTH() vorgesehen.

          echo "$verabschiedung $name";

          1. yo,

            Wieso nicht? LENGTH liefert immer die Länge des Inhalts in Bytes. Dabei ist es egal, welchen Typ das Feld hat.

            meiner meinung nach konnte ich diese funktion bei bestimmten datentypen nicht in oracle und auch nicht in mssql ausführen.

            Ilja