Home > Net >  Is there any 'intn' datatype in sql?
Is there any 'intn' datatype in sql?

Time:02-25

I was working on a project recently and fiddling around with sql, when I accidentally forgot to put the () brackets in int(n), however it didn't result in an error and the table was created. This 'intn' datatype also behaves a lot different that int(n), int1/int2/int3/int4 all accept integers less than 128/32768/8388608/2147483648 which is 2^(8n-1), n being the number after int. On the other hand no matter what integer I give inside int(n) it always accepts up to 2147483647 while it should accept only n digits. Can someone pls explain the weird behavior of both these datatypes in layman's terms (I have just started learning SQL). Can you also tell me the correct syntax that I should use while using integer datatype.

CodePudding user response:

These datatypes are aliases (see Using Data Types from Other Database Engines):

datatype is alias of
INT1 TINYINT
INT2 SMALLINT
INT3 MEDIUMINT
INT4 INT
INT8 BIGINT

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=2c5545953ef496acf7893c28c198c3cb

Another variants (for example, INT5) will cause syntax error.

  • Related