Sicuramente non varchar.
Bisognerebbe sapere il valore massimo che possono contenere i campi da e a. Sino a 32mila circa basterebbero smallint.
Qua trovi un elenco dei tipi di campi con rispettivi range, vedi tu.

http://mysql.com/doc/refman/4.1/en/n...-overview.html

Per i prezzi se non sono interi ti consiglio di usare decimal.

hai editato.