2010-11-11 6 views
10

Einfache Frage. Ich habe versucht, auf Google zu suchen und nach ungefähr 6 Suchen dachte ich, dass es hier schneller sein würde.Was ist die Größe eines SQL Int (N)?

Wie groß ist ein int in SQL?

// table creation statement. 
intcolumn INT(N) NOT NULL, 
// more table creation statement. 

Wie groß ist das INT(N) Element? Was ist seine Reichweite? Ist es 2^N oder ist es N Bytes lang? (2^8N)? Oder noch etwas, von dem ich keine Ahnung habe?

Antwort

12

Es hängt von der Datenbank ab. MySQL hat eine extension, wobei INT (N) eine INT mit einer Anzeigebreite von 4 Dezimalstellen bedeutet. Diese Information wird in den Metadaten beibehalten. Der INT selbst ist immer noch 4 Byte groß, und Werte von 10000 und größer können gespeichert werden (und werden wahrscheinlich angezeigt, aber dies hängt davon ab, wie die Anwendung die Ergebnismenge verwendet).

+0

Hey danke Freund! Das ist meine Frage :) – Michael

+0

Beachten Sie dies ganz anders von einem Typ wie VARCHAR (n), wobei n in diesem Fall die maximal zulässigen gespeicherten Zeichen ist. Siehe {http://stackoverflow.com/questions/5634104/what-is-the-size-of-column-of-int11-in-mysql-in-bytes, http://stackoverflow.com/a/1262249/ 1357094} – cellepo

-1

Das hängt vollständig von der Datenbank-Engine ab, die Sie verwenden. Aber ich glaube, dass die meisten Engines die INT/INTEGER-Typen als 32-Bit betrachten. Bei den meisten Engines können Sie die Signedness angeben.

Das tatsächliche N gibt nur die Anzahl der Ziffern an. Ein vorzeichenloser INT (3) hat also den Bereich von 0-999.

+1

Die Zahl gibt nicht die Länge der Ganzzahl an. Große Ganzzahlen können weiterhin in einer Spalte "int (3)" gespeichert werden – Luke

Verwandte Themen