SQL Data Types Overview Link to heading

SQL data types define the kind of data that can be stored in a column of a table. Choosing the correct data type is crucial for data integrity, performance, and efficient storage.


๐Ÿงฎ Numeric Data Types Link to heading

Data TypeDescriptionExample Values
INT / INTEGERWhole numbers (positive/negative)1, -20, 5000
SMALLINTSmaller range of whole numbers-32,768 to 32,767
BIGINTVery large integersUseful for IDs
DECIMAL(p,s)Exact numeric value with fixed precisionDECIMAL(5,2) โ†’ 123.45
NUMERIC(p,s)Same as DECIMAL
FLOAT(n)Approximate floating-point3.14159
REALLess precision than FLOAT
BITBoolean-like (0 or 1)1, 0

๐Ÿ”ค Character/String Data Types Link to heading

Data TypeDescriptionExample
CHAR(n)Fixed-length string (padded with spaces)CHAR(10)
VARCHAR(n)Variable-length stringVARCHAR(255)
TEXTLong text data (non-standard in some SQL engines)
NCHAR(n)Fixed-length Unicode string
NVARCHAR(n)Variable-length Unicode string
NTEXTDeprecated in some systems (e.g., SQL Server)

๐Ÿ“… Date and Time Data Types Link to heading

Data TypeDescriptionExample
DATEOnly date (YYYY-MM-DD)2025-07-31
TIMEOnly time (HH:MM:SS)14:25:36
DATETIMEDate and time2025-07-31 14:25:36
TIMESTAMPUsually stores UTC time; auto-update
YEAROnly year (2-digit or 4-digit)2025

๐Ÿ“ฆ Binary Data Types Link to heading

Data TypeDescription
BINARY(n)Fixed-length binary
VARBINARY(n)Variable-length binary
BLOBBinary Large Object

โœ… Boolean Data Type Link to heading

Data TypeDescription
BOOLEANTRUE or FALSE (often 1/0 behind)

๐Ÿงช Example Table Link to heading

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(100),
    birth_date DATE,
    salary DECIMAL(10,2),
    is_active BOOLEAN
);

๐Ÿ” Notes Link to heading

  • SQL data types vary slightly by database system (e.g., MySQL, PostgreSQL, SQL Server, Oracle).
  • Always use VARCHAR instead of CHAR unless you need fixed-length data.

Extras Link to heading

SQL Data Types Comparison Across DBMSs Link to heading

This document compares SQL data types across major database management systems: MySQL, PostgreSQL, SQL Server, and Oracle.


๐Ÿงฎ Numeric Data Types Link to heading

SQL StandardMySQLPostgreSQLSQL ServerOracle
INTINT, INTEGERINTEGER, INTINT, INTEGERNUMBER(p,0)
SMALLINTSMALLINTSMALLINTSMALLINTNUMBER(5,0)
BIGINTBIGINTBIGINTBIGINTNUMBER(19,0)
DECIMAL(p,s)DECIMAL, NUMERICSameDECIMAL, NUMERICNUMBER(p,s)
FLOATFLOAT, DOUBLEFLOAT, DOUBLE PRECISIONFLOAT(n)BINARY_FLOAT
REALREALREALREALBINARY_DOUBLE

๐Ÿ”ค String Data Types Link to heading

SQL StandardMySQLPostgreSQLSQL ServerOracle
CHAR(n)CHAR(n)CHAR(n)CHAR(n)CHAR(n)
VARCHAR(n)VARCHAR(n)VARCHAR(n)VARCHAR(n)VARCHAR2(n)
TEXTTEXT, TINYTEXT, etc.TEXTTEXT, VARCHAR(MAX)CLOB
NCHAR(n)NCHAR(n)NCHAR(n)NCHAR(n)NCHAR(n)
NVARCHAR(n)NVARCHAR(n)VARCHAR(n) with UTF8NVARCHAR(n)NVARCHAR2(n)

๐Ÿ“… Date and Time Data Types Link to heading

SQL StandardMySQLPostgreSQLSQL ServerOracle
DATEDATEDATEDATEDATE (includes time)
TIMETIMETIME [WITHOUT TZ]TIMEDATE with format
DATETIMEDATETIMETIMESTAMPDATETIMEDATE or TIMESTAMP
TIMESTAMPTIMESTAMPTIMESTAMP [WITH TZ]DATETIME2, TIMESTAMPTIMESTAMP
YEARYEAR(4)Not directly supportedUse SMALLINTUse NUMBER(4)

๐Ÿ“ฆ Binary / Large Object Data Types Link to heading

SQL StandardMySQLPostgreSQLSQL ServerOracle
BLOBTINYBLOB, BLOBBYTEAVARBINARY(MAX)BLOB
VARBINARYVARBINARY(n)BYTEAVARBINARY(n)RAW(n)
CLOBTEXTTEXTVARCHAR(MAX), TEXTCLOB

โœ… Boolean Data Type Link to heading

SQL StandardMySQLPostgreSQLSQL ServerOracle
BOOLEANTINYINT(1) (0/1)BOOLEANBIT (0 or 1)NUMBER(1) (0 or 1)

๐Ÿš€ Auto-Increment/Identity Link to heading

FeatureMySQLPostgreSQLSQL ServerOracle
Auto-Increment IDAUTO_INCREMENTSERIAL, BIGSERIALIDENTITYSEQUENCE + TRIGGER

โœ… Summary Table Link to heading

FeatureMySQLPostgreSQLSQL ServerOracle
Rich TextTEXT typesTEXT typesTEXT, VARCHAR(MAX)CLOB
Unicode SupportNVARCHARFull UTF-8NVARCHARNCHAR/NVARCHAR2
Boolean SupportEmulatedNativeBIT (0/1)Emulated
Auto-IncrementAUTO_INCREMENTSERIALIDENTITYSEQUENCE
Rich Date TypesModerateVery richRichVery rich

๐Ÿ’ก SQL data type names and behaviors may vary slightly depending on the exact version and configuration of your DBMS.