MySQL-Datenbankdatentyp

8

Ich bin neu in der Datenbankprogrammierung und habe eine sehr grundlegende Frage:

Was bedeutet es in meiner PHPMyAdmin-GUI, die ich benutze, um Tabellen in meiner Datenbank zu erstellen, wenn die Spalte "type" (dh Datentyp) den Datentyp und etwas in Klammern danach hat. Beispielsweise: int (20), bigint (30) .....

Ich verstehe, dass der Typ int und bigint die Anzahl der Bytes angibt, die verwendet werden, und folglich den Bereich der Werte, die gespeichert werden können. Aber was bedeutet der Wert in den Klammern?

Was steht (20) und (30) für .... welche Auswirkung hat das auf ....

Tut mir leid, wenn das Q grundlegend ist, ich versuche Datenbanken zu verstehen ....

Vielen Dank

    
banditKing 30.07.2011, 20:17
quelle

3 Antworten

12

Dies ist im Grunde eine Anzeigebreite .

Ich habe eine sehr gute Erklärung für dieses Konzept gefunden hier ist so entschieden, nicht Beschreibe es selbst und lass es dich selbst von der ursprünglichen Quelle lesen.

Ebenso wie eine maximale Länge für Zeichenkettendatentypen angegeben werden kann (z. B. VARCHAR (5 ) = Maximal 5 Zeichen), kann für numerische Datentypen eine "Anzeigelänge" angegeben werden (ZB: INT (5) ).

Es gibt ein allgemeines Missverständnis, dass die Angabe einer Anzeigelänge in einer INT-Spalte den Bereich dieser Spalte einschränkt. Als Beispiel wird häufig angenommen, dass eine Spalte als INT (1 ) reduziert den vorzeichenlosen Bereich der Spalte auf 0 - 9 und INT (2 ) würde den vorzeichenlosen Bereich der Spalte auf 0 - 99 reduzieren. Dies ist jedoch nicht der Fall. Eine INT Datenspalte hat IMMER einen realisierbaren vorzeichenlosen Bereich von 0 - 4294967295 oder einen vorzeichenbehafteten Bereich von -2147483648 bis 2147483647, unabhängig von der angegebenen Anzeigebreite, unabhängig davon, ob sie 1 ist ( INT ( 1) ) oder 20 ( INT (20) ).

  1. Die Anzeigebreite ändert nicht die Speicheranforderungen für einen Datentyp.
  2. Die Anzeigebreite verändert die tatsächlichen Daten in keiner Weise (dh sie speichert den gesamten Wert für die Daten)
  3. Eine Spalte gibt ihren vollen Wert zurück, wenn sie in einer Abfrage aufgerufen wird, unabhängig von der Anzeigebreite (das Buch widerspricht direkt dieser Behauptung, wie oben dargestellt)
sll 30.07.2011, 20:29
quelle
0

Der Wert in der Klammer ist die Größe oder Länge des Feldes. [Edit strike] Bei einem Wert von 2 kann ein Uint-Feld nur Werte von 0 bis 99 hosten. [/ Strike] Sie können diesen Wert selbst einstellen und dadurch etwas Speicher sparen, wenn Sie erwarten, dass Ihre Werte diese Begrenzung nicht überschreiten. Nützlich in Verbindung mit varchar.

Hier ein weiterer Thread über varchar sizes: Was sind die optimalen Varchar-Größen? für MySQL?

    
Jens Struwe 30.07.2011 20:19
quelle
0

Link zum mysql-Dokument, das es erklärt Ссылка

    
Pratik Khadloya 24.09.2014 23:04
quelle

Tags und Links