Look at a domain as a social security number for your website. It is a place where if someone were to type in can only take them to your website. It’s hosted on a server, but that domain points them to you. Costs and services vary per provider but make sure that your domain name is memorable and unique so that your customers or clients can remember.
A domain is like the name of a television show. Every show on TV has a different (unique) name. Imagine the confusion that would result if this were not the case. A website is like the show itself. All the files, text, code, graphics, etc. that make up a website are like the props, sets, actors, lighting, sound, etc. that comprise a TV show. Before a show goes into production, it is just a name, or concept. You can register a domain and choose not to create a website, although you may have grand ideas or a general concept of the kind of website you’d like for your domain to have someday. A hosting provider is like a network that provides studio space (disk space on a server) for the show (website) and also broadcasts it into people’s homes (like when visitors view your site in a browser).