Algebraic data types

Explain in your own words what is the difference between type constructors and data constructors in functional programming languages like Haskell.