Jest to potrzebne, gdy chcesz wysłać do serwera dane zawierające znaki, których nie można przedstawić w czystym ASCII, takie jak „ñ” lub „ö”.
Jeśli instancja MySQL nie jest skonfigurowana tak, aby domyślnie oczekiwać kodowania UTF-8 z połączeń klienckich (wiele z nich, w zależności od lokalizacji i platformy).
Przeczytaj http://www.joelonsoftware.com/articles/Unicode.html jeśli nie wiesz, jak działa Unicode.
Przeczytaj Czy używać „SET NAMES” aby zobaczyć alternatywy SET NAMES i o co dokładnie chodzi.