They're all network devices - this means that you can connect them together and to other devices on your network such as pc's, tablets, phones etc.
Switches are used to connect lots of devices together inside the same network. You can use it to plug in lots of Ethernet devices such as a desktop PC, a laptop, a TV, games console etc. This will then allow them to talk to each other.
A router is normally used to connect two different networks together. For example it might connect the network inside your house to the internet connection provided by your ISP (this is it's own separate network). Home routers almost always come with extra stuff too such as providing WiFi, DHCP services, a firewall between networks etc. Interestingly, a router almost always contains a switch for your home network.
A hub is much the same as a switch but it's a lot dumber.. A switch can look at the data flowing over it and figure out where it needs to send it, much like a postman will use the address on an envelope to make sure the parcel comes to your house. A hub is like a postman that has a magic box that can duplicate the parcel and send it to everyone on your street (or network). While that might be great if your neighbour has ordered himself a £2k gaming machine, it really sucks in terms of efficiency as all that duplicate data is clogging up your network.
Anyways - if you want to bridge two networks (e.g. between your home network and your ISP's) you want a router. If you want to connect lots of devices into your internal network but you've run out of ethernet ports then you want a switch. If you've decided that you want to spam your network with lots of redundant data (potential security issues here but that's a big topic to cover!) then you should probably ignore a hub and just stop building your network.