  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 $\sigma(R)$ of $R$ is the
cardinality of a minimal cover, and a ring $R$ is called $\sigma$-elementary if
$\sigma(R) < \sigma(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 $\sigma_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 $\sigma_u$-elementary if $\sigma_u(R) <
\sigma_u(R/I)$ for every nonzero two-sided ideal of $R$. In this paper, we
classify all $\sigma$-elementary unital rings and determine their covering
numbers. Building on this classification, we are further able to classify all
$\sigma_u$-elementary rings and prove $\sigma_u(R) = \sigma(R)$ for every
$\sigma_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
$\sigma(R) = \sigma_u(R')$, which in turn provides a complete list of all
integers that are the covering number of a ring. Moreover, if \[\mathscr{E}(N)
:= \{m : m \le N, \sigma(R) = m \text{ for some ring } R\},\] then we show that
$|\mathscr{E}(N)| = \Theta(N/\log(N))$, which proves that almost all integers
are not covering numbers of a ring.
