When defining datatypes in a database, I have always had a problem with choosing whether to use integers or strings to store certain \'numerical\' data.
Say I am bui
It is always important to understand the semantics of data you are working with. Let me explain it on the example.
Consider you want to store PIN in your database. To answer what datatype you should use you must firt answer what PIN (Personal identification number) really means.
If it is really a number as its name truly indicates then I don't see any reason why it shouldn't be represented as an integer.
Some people could argue that you cannot distinguish between 0001 and 01. Evidently they do not consider PIN a number and if they are working witch such semantics they should use string.
Note: If PIN length would be fixed to let's say 4 digits they could still use integer because any number will be always filled with leading zeros and will ment exactly the same (0001 will be the same as 01) - but these fixed length restriction are typical for numbers to avoid incorrect input.
If semantics clearly states that PIN is a number, i.e., that PIN 0001 is exactly same as PIN 01, I would use an integer representation.
Therefore in your case it is important to understand postal code semantics. That semantics can vary in different countries (or even change over time) so it is also important which do you want to use. To cover all sort of postal codes and even possible changes I would consider using more abstract data type or just a string (I believe there are already semantics that contains more characters than just digits).
I would not recommend to follow simplificated rules such as the one about arithmetric operations over data representation. If you do not want to perform mathematical operations with data now doesn't mean you will not want sometimes in future.
You have data and you want to store it, represent it somehow - simply think about what it is that you are working with.