Chinese has seven groups of "dialects" which differ from each other more greatly than separate European languages. Speakers of different "dialects" are unintelligble to each other. Chinese dialects are brought together by Chinese characters, as grammar and word-order between dialects is more or less the same, it is mainly the pronunciation of the words which differs greatly. This is one of the main arguments for keeping Chinese characters instead of converting to Pinyin(which represents the sounds of only one dialect, Mandarin). Another argument for keeping the characters is that in Mandarin, there are several words of different meaning pronounced exactly the same with the exact same tone but written with different characters, it would not be possible to write them differently with Pinyin.

The official language of China is 普通话(pu3tong1hua4) or Mandarin, based on the Beijing dialect. Like all the other "dialects" of China, it also has sub-dialects(which are more close to the European idea of "dialect").

Most Chinese can speak Mandarin(although many of the older generation, especially those living in rural areas, do not). I know that all students in PRC and ROC(Taiwan) are required to learn Mandarin, but I'm not sure about Hong Kong, they've been pretty Cantonese out there for quite a while. PRC generally doesn't discourage the use of non-Mandarin dialects, although in ROC there's been a movement to replace the official Mandarin with Taiwanese.

You can read more about Chinese dialects here:

By the way, I finally figured out which dialect my parents(and most Chinese in Thailand) speak. It is classified in the Ethnologue as "Min Nan"(southern Min); the Min dialect is spoken in Fujian region(it's north of Canton). The dialect spoken in Thailand is called "Dae Jiu" in Thai, they call themselves "Chao Jo."