A cover of an associative (not necessarily commutative nor unital) ring R is a collection of proper subrings of R whose set-theoretic union equals R. If such a cover exists, then the covering number σ(R) of R is the cardinality of a minimal cover, and a ring R is called σ-elementary if σ(R) < σ(R/I) for every nonzero two-sided ideal I of R. If R is a ring with unity, then we define the unital covering number σ u (R) to be the size of a minimal cover of R by subrings that contain 1 R (if such a cover exists), and R is σ u -elementary if σ u (R) < σ u (R/I) for every nonzero two-sided ideal of R. In this paper, we classify all σ-elementary unital rings and determine their covering numbers. Building on this classification, we are further able to classify all σ u -elementary rings and prove σ u (R) = σ(R) for every σ u -elementary ring R. We also prove that, if R is a ring without unity with a finite cover, then there exists a unital ring R ′ such that σ(R) = σ u (R ′ ), which in turn provides a complete list of all integers that are the covering number of a ring. Moreover, if E (N ) := {m : m N, σ(R) = m for some ring R}, then we show that |E (N )| = Θ(N/ log(N )), which proves that almost all integers are not covering numbers of a ring.