Note that the first two terms are not entirely standardised; some authors use them interchangeably for one or the other concept.
If you accept the axiom of choice, then there is really nothing more to say than what was above. In weaker foundations, more care may be needed. The following seem to be the usual definitions in constructive mathematics:
Of course, the terms are even less standardised here.
The empty set is countable; any uncountable set must be inhabited. Any (Kuratowski)-finite set is countable; any uncountable set must be infinite. A denumerable set is precisely an infinite countable set; sometimes this is written as a countably infinite set.
Classically, a countable set is either finite or denumerable, although this need not hold constructively. We do have, however, that a countable set is either empty or inhabited, which is classically trivial but need not hold constructively for every set.
In some forms of constructive mathematics, especially in the Russian school, it is assumed (or provable from other assumptions) that every set is a subset of a countable set. The fact the the set of real numbers is uncountable still applies, however, as the inclusion map of the subset need not split. In particular, the set of computable number?s is a subset of a countable set, but to prove that it is itself countable requires excluded middle.