Caps lock works only on letters, shift lock on everything that has a different meaning when shift is pressed, so also the numbers, symbols, function keys, etc.
I don't know about the C64 implementation, but some Shift locks also acted as a shift toggle rather than just "all caps"/"shift stuck", so you could use shift to "unshift" during shift lock to get a lowercase letter or a number.