Datový typ definuje v programování druh nebo význam hodnot, kterých smí nabývat proměnná (nebo konstanta). Datový typ je určen oborem hodnot a zároveň výpočetními operacemi, které lze s hodnotami tohoto typu provádět (srovnej abstraktní datový typ). Datový typ nemůže být určen pouze oborem hodnot, protože existují i datové typy, lišící se pouze v operacích, které je s nimi možné provádět.
Součástí programovacího jazyka je definice základních datových typů. Pomocí těchto základních typů může ve většině jazyků programátor tvořit nové složené typy.
Jak již bylo zmíněno, jednoduché (také elementární) datové typy jsou většinou přímo zabudovány do jazyka, přičemž v běžně používaných jazycích nejsou parametrizovatelné. Složitější typy pak mohou vznikat skládáním elementárních datových typů.
Každý počítačový jazyk může mít poněkud odlišnou sadu elementárních datových typů. U mnoha počítačových jazyků závisí parametry elementárních datových typů na architektuře procesoru, na kterém má běžet program. To platí zvláště u kompilátorů jazyka C a C++.
Příklady elementárních datových typů:
Celé číslo, znak, desetinné číslo.....
Příklady z jazyka JAVA:
int celeCislo = 10;
double desetinneCislo = 5,7;
char znak = 'a';