I want to store Zip Code (within United States) in MySQL database. Saving space is a priority. which is better option using VARCHAR - limited
Zip codes are always 5 characters, hence you would need a CHAR datatype, rather than VARCHAR.
Your options are therefore
CHAR(5)
MEDIUMINT (5) UNSIGNED ZEROFILL
The first takes 5 bytes per zip code.
The second takes only 3 bytes per zip code. The ZEROFILL option is necessary for zip codes with leading zeros.
So, if space is your priority, use the MEDIUMINT.