Whoa! Hold on. Is there a difference (when talking about keys and addresses), between Bitcoin and other coins?
What I've seen is that, to transfer your coins from your exchange wallet to your software wallet, you use your software wallet's public key, and to transfer funds from your software wallet to your exchange's wallet, you use the exchange wallet's public key. Basically meaning you can keep your funds safe by never using your software wallet's private key. Do you need both?
Considering you are trying to understand the concept, I will say you should remove the part about the exchange wallet and understand the basics first, before trying to apply it to different concepts.
If you create a bitcoin wallet, what you own are set of keys (public and private) which you can use to access sets of inputs and outputs on the blockchain; all the keys are derived from the seed phrase.
Your private keys are derived from the seed phrase and is used to sign transactions, reason why it is commonly said, 'Not your keys, Not your coins'.
Your public keys is derived from your private keys, it sort of serves as a layer of security to verify the signature.
Your public address is a hash of the public key and is used to receive inputs to a specific wallet, it determines destination, sort of how a home address works.
This derivation pathway is not backward compatible, i.e, you cannot generate the public keys from the public address, or the private key from the public key.
To send a transaction, You need the private keys (and by extension the public keys, to check the signature),
To watch a wallet (only), you need the public keys,
To select the destination of an input, you need the public address.