Adding to that....
volatile memory types: SRAM, DRAM
As there memories are volatile it is clear that you can't store your application program in this memory....also temporary data can be saved
Non-volatile memory types: ROM, EPROM, EEPROM, FLASH
EEPROM has less density & also costlier and can be read/write only byte at a time...So, mostly you don't use it for program memory and can be used as data memory...
FLASH can be programmed in blocks & even at less cost , highly dense, so used widely as program memory....
The main reason why you will be using EEPROM for data storage is that you can erase/write single byte without the need to erase whole block as in flash....
Here another question arises then why need of RAM and why don't you use EEPROM instead...Reason for this is EEPROM acces times are very high compared to RAM.....