The terms Spanish, Hispanic, Latino, and Mexican can be heard frequently and are sometimes used interchangeably. Although that may be the way the words are commonly used, it is a misuse of these terms. To avoid embarrassment or inadvertently offending others, it is best to learn the proper definitions of Spanish, Hispanic, Latino, Mexican and their differences.
The most basic definition for Spanish is the language that originated from Spain. You can also use the word Spanish to describe the nationality of someone from the country of Spain. *Spanish may not be applied to name the nationality nor the ethnicity of anyone who is not from Spain.* This is the biggest mistake that people make when it comes to describing someone who speaks Spanish. You should not call them a "Spanish person" or "Spanish" unless they originate from Spain. If you are not sure where someone is from, but you wish to acknowledge the fact that the person speaks Spanish, you can use the term "Spanish-speaking person" or "Spanish speaker." Calling someone Spanish because they speak Spanish is a misuse of the term and should be avoided.
Hispanic is used to describe the ethnicity of someone from a Spanish-speaking country or whose ancestry descends from a Spanish-speaking country. Native Spanish speakers can all be described as Hispanic no matter which of the twenty-one Spanish-speaking countries they or their ancestors originated from. Hispanic can also be used as an adjective to describe the culture, countries, and food. (Example: Hispanic culture, Hispanic countries, and Hispanic food). Hispanic is the term you should use to a Spanish speaker NOT Spanish. Hispanic is the correct term.
Latino can be used as an adjective to describe either the ethnicity or culture of someone from Spanish-speaking country or of Hispanic descent who is from the Americas. Latino cannot be used to describe someone from Spain. It is a term used exclusively for people of Latin American origin. Latino can also be used to describe Brazilians, since they are from Latin American. However, Brazilians are not Hispanic since they speak Portuguese and not Spanish. Latino would be used to describe a male, whereas Latina would be the female term. Latinx is a term that has been invented for those who do not ascribe to the male or female genders.
The only time you should use the term Mexican is when you are describing the nationality of someone from Mexico or describing something that originates from Mexico. You should not use the term Mexican as a general term referring to anyone that speaks Spanish. The term to use for that is Hispanic or Spanish speaker. You should never assume that someone's nationality is Mexican and refer to them as such without asking them where they are from. This is extremely rude and could be defined by some as at minimum stereotyping and at maximum racism. Avoid embarrassment or offending others by using the right terminology the first time every time.