SystemVerilog provides several data types for modeling hardware including basic types like reg, wire, integer, real, time and logic. It also introduces user-defined types like enum, struct, union, typedef and class. Enum allows defining a set of named values. Struct packs different data types together. Union shares the same storage for different types. Typedef defines custom type names. Class defines user-defined objects. Operators allow performing arithmetic, relational, equality and logical operations on data types. Assignment, increment/decrement operators are also supported.