Simply put, a domain name is the address that you type into a website browser address bar to get to a website.
For example, the domain name for Google is google.com
The domain name for this website is dsign.site
A domain name is unique to your website (just like a fingerprint), and cannot be shared between different websites.
The domain name then attaches to your hosting IP address (ex. 126.96.36.199) which is a numeric address of your site. We may have had to use that to navigate the web, but since it is hard to remember and identify your brand, company, or name this way, domain names were invented.
A web host, is the server (a remote computer) where all your data is stored. Think of a domain name as your mobile phone number and the hosting provider as your carrier. Just like you can always change your carrier while saving your phone number, you can attach your domain name to another hosting provider in case you find something more reliable, or a company that fills the gap of services your current hosting provider is lacking.
My advice: If you are just starting to plan to create a site do not rush to buy a domain name and a hosting service. First find a web developer, tell them the desired domain name and parameters of your site, and seek their advice on where it would be best to purchase it. Though you can always re-attach your domain name to any other hosting provider, in some cases (especially if you bought your domain name really cheap) it can take some time to transfer the domain and can produce complications.
Hope this helps. If you still have questions, please leave a comment below.