Un tipo di dati definisce le caratteristiche di un elemento di dati e determina il modo in cui tali dati vengono elaborati. ESQL supporta sei tipi di dati, riportati di seguito. I dati richiamati dai database, ricevuti in un messaggio a definizione automatica o definiti in un modello di messaggio (utilizzando i tipi di dati MRM) vengono associati ad uno di tali tipi ESQL di base quando vengono elaborati nelle espressioni ESQL.
All'interno di un broker, i campi di un messaggio contengono dati con un tipo di dati definito. E' anche possibile utilizzare variabili intermedie per consentire l'elaborazione di un messaggio. E' necessario dichiarare tali variabili con un tipo di dati prima dell'utilizzo. Un tipo di dati della variabile è fisso; se si prova ad assegnare valori di un tipo differente, viene visualizzata un'eccezione o una conversione implicita. I campi di messaggi non hanno un tipo di dati fisso ed è possibile assegnare valori di un tipo differente. Il campo utilizza il nuovo valore e tipo.
Non è sempre possibile prevedere il tipo di dati che risulta dalla valutazione di un'espressione. Questo perché le espressioni sono compilate senza riferimento ad alcun tipo di schema di messaggi e quindi alcuni tipi di errore non vengono rilevati fino al runtime.
ESQL definisce le seguenti categorie di dati. Ciascuna categoria contiene uno o più tipi di dati.