Putroppo la tua domanda richiede un sacco di spiegazioni cmq riassumendo:

in genere vengono usati maggiormente latin1 e UTF8 (questi sono i due principali, da loro si estendeno le sottocategorie come utf8_unicode_ci, utf8_general_ci, etc...)
La loro differenza sta nei caratteri supportati, ad esempio latin1 supporta solo l'alfabeto occidentale (tranne €) mentre utf8 supporta quasi tutti i caratteri (essendo un ramo dell'unicode)...
Fai una ricerca sui due per capirne di più

Per il tipo di tabelle ti rimando qui a un articolo non molto lungo ma che ti fa capire le differenze fondamentali tra i due principali tipi di tabelle di mysql (innodb e myisam)

per altre domande siamo qui