Difference between select option and ranges ? | SAP ABAP

The main difference between select option and ranges is that ranges implicitly or automatically creates internal table with fields like OPTION,LOW,HIGH,SIGN,etc . Where as in case of select option we have to explicitly create internal table.
When u declares a select options it will implicitly declare an internal table (ranges) for you.
While using RANGES syntax u can declare internal table explicitly.
The only need of declaring ranges is when you r not taking input from the user but you want make limit based selection at that time it will be use full.
e.g. SELECT ** from ** where MATNR in val_range.
here u can use select-option or ranges : val_range.