E011-01, “INTEGER and SMALLINT data types (including all spellings)”

Apache DerbyBigQueryDb2 (LUW)H2MariaDBaMySQLaaaOracle DBPostgreSQLSQL ServerSQLitebbb(≥16 bit)  smallint(≥32 bit)   integer(≥32 bit)       int
  1. Not as cast target: cast(… as <target>). Use cast(… as signed)
  2. Accepts character strings (not statically typed or generously cast)

Normative References

ISO/IEC 9075-2:2023 does not define a precision for these data types.0 The bit numbers above correspond to the data type mappings for the C programming language.1

The data types smallint, integer and int where already required for Entry SQL-92.

You can’t catch up on 20 years of SQL evolution in one day. Subscribe the newsletter via E-Mail, Twitter or RSS to gradually catch up and to keep modern-⁠sql.com on your radar.

About the Author

Photo of Markus Winand

Markus Winand provides insights into SQL and shows how different systems support it at modern-sql.com. Previously he made use-the-index-luke.com, which is still actively maintained. Markus can be hired as trainer, speaker and consultant via winand.at.

Buy the Book

Cover of “SQL Performance Explained”: Squirrel running on grass

The essence of SQL tuning in 200 pages

Buy now!
(paperback and/or PDF)

Paperback also available at Amazon.com.

Hire Markus

Markus offers SQL training and consulting for developers working at companies of all sizes.
Learn more »


  1. ISO/IEC 9075-2:2016 §6.1 SR 30

  2. ISO/IEC 9075-2:2023 §13.5 together with ISO/IEC 9899:2017, § Sizes of integer types <limits.h>

Connect with Markus Winand

Markus Winand on LinkedInMarkus Winand on XINGMarkus Winand on Twitter
“modern SQL” by Markus Winand is licensed under a Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.
Legal | Contact | NO WARRANTY | Trademarks | Privacy and GDPR | CC-BY-NC-ND 3.0 license