Since a texture is a 2D image that's supposed to be wrapped onto a 3D object, there needs to be some way of converting a 3D position of each point of the surface into a 2D coordinate to use for the texture. Since x, y, and z are already used for the 3D coordinate, u and v are used for the texture coordinate, hence, they're called UVs.
There are several methods for converting between XYZ and UV, each of which are options on the Texture Coordinate node. For example, "Generated" automatically converts the XYZ coordinate of the surface to a UV texture coordinate, and "Normal" converts the surface normal into a UV texture coordinate so that any points facing the same direction on that object will share the same UV coordinates and thus be colored the same (if you're using a texture to color the object as opposed to something else).
Each of the automatic options work great depending on what you want, but if you need precise control over how it converts XYZ to UV, you'll need to use a UV map.
When you unwrap an object, it takes each vertex on the object and automatically converts it to a UV coordinate. Then, you can adjust the conversion in the UV editor. For example, if one vertex by default maps to the UV of (0.3, 0.2) which would be 3/10 horizontally along the texture image and 1/5 vertically along the texture image, by moving the vertex in the UV editor, you can change it to map to a UV of (0.2,0.2) or anything else you want. That way, you can get precise control over how the image wraps around your 3D model.
When you unwrap an object, it gives you several different options or projections for how to unwrap the 3D model, but these are just starting points. Ultimately, it doesn't matter which one you choose, but choosing the right one can help reduce how many tweaks and edits you have to make in the UV editor.
The main projection options are:
- Unwrap which just does a default unwrap. If there are seams (see below) on the object, it will account for those. Otherwise, if it's already unwrapped, it will do nothing.
- Smart UV project which splits the object into several different shapes based on the angle between the surfaces
- Cube/Cylinder/Sphere Projection which work well for their respective or similar shapes
- Project from View which just takes how the object looks from you're current perspective and copies that over to the UV map (kind of like placing a projector right where your eye is and shining the texture onto the entire object. It works well for that particular view, but often doesn't look very well from the side)
- Project from View (bounds) which does the same thing, but it scales everything to fit the texture more nicely.
For the default unwrap option, if you first mark certain edges as seams, it will split the object along those seams as it unwraps the image. For example, notice in the image below how the edges of the islands or groups of connected vertices correlate with the red lines (seams) on the object.

And that's the basics of UV mapping. Now to answer some of your specific questions:
- You only need to unwrap and object when you're going to use a texture on it, and even then, you can sometimes use the other options on the Texture Coordinate node.
- You only need to set up one UV map per object
- See above
- Usually, but not necessarily. For example, maybe you created the UV map for a modifier but just want to use the "Generated" option on the Texture Coordinate node for the material. Or maybe you want one texture to use the UV map you created and another just to use the "Generated" option. But usually you'll just use the UV map option if you already created it
- Honestly, I'm not 100% sure how these projection types on the Texture Coordinate node work, but it seems that "flat" is the best option with UV maps, and the other options work best with the "Generated" option on the Texture Coordinate node.
Let me know if you have any other questions.