SQL - Data Types (MySQL/SQL Server/SQLite)
Overview
This page maps common conceptual types to each engine. SQLite uses type affinity and is flexible.
Text
- MySQL: VARCHAR(n),TEXT
- SQL Server: NVARCHAR(n),VARCHAR(n),TEXT(deprecated) → useVARCHAR(MAX)/NVARCHAR(MAX)
- SQLite: TEXT
Integers & Identity
- MySQL: INT,BIGINT, identity viaAUTO_INCREMENT
- SQL Server: INT,BIGINT, identity viaIDENTITY(1,1)or sequences
- SQLite: INTEGERprimary key auto-increments when declaredINTEGER PRIMARY KEY
Date/Time
- MySQL: DATE,TIME,DATETIME,TIMESTAMP
- SQL Server: DATE,TIME,DATETIME2,SMALLDATETIME,DATETIMEOFFSET
- SQLite: store as TEXT(ISO8601),REAL(Julian day), orINTEGER(Unix time)
Booleans
- MySQL: BOOLEANalias forTINYINT(1)
- SQL Server: BIT
- SQLite: no native boolean; use INTEGER0/1
Example table with types
CREATE TABLE employees (
  id INT AUTO_INCREMENT PRIMARY KEY,
  first_name VARCHAR(50) NOT NULL,
  active BOOLEAN NOT NULL DEFAULT TRUE,
  salary DECIMAL(10,2),
  hired_at DATETIME
);
CREATE TABLE employees (
  id INT IDENTITY(1,1) PRIMARY KEY,
  first_name NVARCHAR(50) NOT NULL,
  active BIT NOT NULL DEFAULT 1,
  salary DECIMAL(10,2),
  hired_at DATETIME2
);
CREATE TABLE employees (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  first_name TEXT NOT NULL,
  active INTEGER NOT NULL DEFAULT 1,
  salary NUMERIC,
  hired_at TEXT -- ISO8601
);