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 1R (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, ifE(N):={m:m⩽N,σ(R)=m for some ring R}, then we show that |E(N)|=Θ(N/logN), which proves that almost all integers are not covering numbers of a ring.