Hay vs. Tiene
'There is/are' vs. 'has/have'
Both come from the verb haber/tener family, but they answer different questions. Hay states that something exists somewhere ('there is/are'). Tiene says that someone or something owns or contains it ('has').
Hay — existence
Hay is the impersonal form of haber. It never changes for singular or plural: 'Hay un libro', 'Hay tres libros'. It has no subject — you are simply saying something exists. In other tenses: había / hubo (past), habrá (future), habría (conditional), haya (subjunctive).
Tiene — possession
Tener is a normal verb with a subject that agrees: tengo, tienes, tiene, tenemos, tenéis, tienen. Use it when someone or something has, owns, or includes something: 'Mi casa tiene dos baños' — 'My house has two bathrooms.'
Same idea, two angles
Often you can express the same fact both ways: 'En mi casa hay dos baños' (there are two bathrooms in my house) vs. 'Mi casa tiene dos baños' (my house has two bathrooms). With hay, the place usually comes with 'en'; with tiene, the owner is the subject.
Common mistakes
Never say 'hay' with a definite article for a specific known thing: say 'El libro está en la mesa', not 'Hay el libro en la mesa'. Hay goes with un/una, numbers, quantities or no article: 'Hay un libro', 'Hay mucha gente', 'No hay leche'. And don't pluralize it: 'Habían muchas personas' is wrong in standard Spanish — use 'Había muchas personas'.
Hay que vs. tener que
'Hay que + infinitivo' is an impersonal obligation ('one has to'): 'Hay que estudiar'. 'Tener que + infinitivo' is a personal obligation: 'Tengo que estudiar' — 'I have to study.'
Ejemplos
"Hay un café cerca de aquí."
There is a café near here.
Existence — hay.
"Este barrio tiene muchos cafés."
This neighborhood has many cafés.
Possession/containment — tiene.
"No hay tiempo."
There's no time.
"Ana no tiene tiempo."
Ana doesn't have time.
"Había mucha gente en la fiesta."
There were a lot of people at the party.
Always singular: había.
"Hay que reservar mesa; tenemos que llamar hoy."
You need to book a table; we have to call today.