"Legacy" - These addresses start with a "1"
"P2SH-P2WPKH" - These addresses start with a "3"
"P2WPKH" - These addresses start with "bc1"
One private key can be "converted" to all 3 types... for instance, if we take the private key:
L2sf8SUpytobSSxSteJ7ixKt8pHXjm9FzavktpsN4Vy1t5M4Cos5
And import it into Electrum use the three different script types:
We get a wallet that has 3 different addresses... all generated from the same private key:
Bitcoin Core will automatically create all three addresses when you import a single private key... you don't need to specify the script type.
The "3"-type (P2SH-P2WPKH aka "Nested SegWit") and "bc1"-type addresses (P2WPKH aka "bech32" aka "Native SegWit") are "SegWit Compatible"... the only difference being that the "3"-type ones are compatible with older clients/services that don't recognise the "bc1" address format. This is becoming less and less of a problem as time goes on and wallet apps and online platforms upgrade to support bech32 addresses.
Also note that even though all of these addresses are generated from the same private key, they are treated as completely separate addresses by the bitcoin network. So, funds sent to the different addresses are effectively segregated from each other.
So, if you setup the wallets as I have shown above, and then sent 1 BTC to bc1q77avy7yp04j4sql8u7jq4qwyhrn2dushe6q0dd it will show in Electrum and Bitcoin Core, but the addresses 1PasdfsTw1Mmm9E6bqcCz6dfAmsfMN4Q7f and 36T6zbUdRtR5bEEioUexWGKJRPxgwjkpAL will still show as "empty"...