The way you use them in the front end is mostly the same, though you must use specific service calls for each type when controlling them from button actions, scripts, or automations.
Generally speaking, the difference is that Input selects and Input numbers are user created while most Select and Number entities are created by integrations. There are some exceptions to this in that users can create Select and Number entities through the MQTT and Template integrations.