sql >> Database teknologi >  >> RDS >> Mysql

Hvad er forskellen mellem tinyint, smallint, mediumint, bigint og int i MySQL?

De fylder forskelligt, og de har forskellige intervaller af acceptable værdier.

Her er størrelserne og intervallerne af værdier for SQL Server , andre RDBMS'er har lignende dokumentation:

Det viser sig, at de alle bruger den samme specifikation (med et par mindre undtagelser nævnt nedenfor), men understøtter forskellige kombinationer af disse typer (Oracle ikke inkluderet, fordi det kun har et NUMBER datatype, se ovenstående link):

| SQL Server MySQL Postgres DB2 --------------------------------------------------- tinyint | X X smallint | X X X X mediumint | X int/integer | X X X X bigint | X X X X

Og de understøtter de samme værdiområder (med én undtagelse nedenfor) og har alle de samme lagerkrav:

| Bytes Range (signed) Range (unsigned) -------------------------------------------------------------------------------------------- tinyint | 1 byte -128 to 127 0 to 255 smallint | 2 bytes -32768 to 32767 0 to 65535 mediumint | 3 bytes -8388608 to 8388607 0 to 16777215 int/integer | 4 bytes -2147483648 to 2147483647 0 to 4294967295 bigint | 8 bytes -9223372036854775808 to 9223372036854775807 0 to 18446744073709551615

De "usignerede" typer er kun tilgængelige i MySQL, og resten bruger bare de signerede områder, med en bemærkelsesværdig undtagelse:tinyint i SQL Server er usigneret og har et værdiområde på 0 til 255



  1. Bevarer ORDER BY i SELECT INTO

  2. Kopier tabelstruktur til ny tabel

  3. Er der nogen hash-funktion i PL/SQL?

  4. MySQL fuldtekstsøgning har altid 0 resultater?