The answers given were pretty good. Sleet is a cold season event and happens as described above. A raindrop or melted snowflake re-freezes before hitting the ground.
Hail is formed when a water droplet is carried high into the top of a thunderstorm (cumulonimbus) cloud. As it gets higher, the air becomes colder and it freezes. When the hail stone becomes too heavy for the thunderstorm updraft to keep it airborne, it will fall to the ground. A hail stone can sometimes make several rounds of being carried up by the updraft and then falling part way through the cloud, only to be carried up again. Each time it is carried up, it will encounter water vapor that freezes to it and it will grow in size. If you are able to cut a large hail stone in half, you can see the different growth rings on it.
So the main difference is how the precip is formed. Hail ONLY forms within a thunderstorm and sleet ONLY forms when a raindrop or melted snowflake re-freezes as it falls to the surface and before it reaches the surface.
Freezing rain is just simply rain that freezes upon contact with a surface (road, car, power line, tree, etc...) object that is below freezing. Sometimes sleet and freezing rain can happen within the same precip event, but freezing rain is liquid when it falls and then instantly freezes upon contact. Sleet has already frozen.
-John