Set
lhs = rhs evaluates rhs and assigns the result to be the value of lhs. From then on, lhs is replaced by rhs whenever it appears.

,
, ...
= 
,
, ...
evaluates the
, and assigns the results to be the values of the corresponding
.
lhs can be any expression, including a pattern.
f[x_] = x^2 is a typical assignment for a pattern. Notice the presence of _ on the left-hand side, but not the right-hand side.
An assignment of the form f[args] = rhs sets up a transformation rule associated with the symbol f.
Different rules associated with a particular symbol are usually placed in the order that you give them. If a new rule that you give is determined to be more specific than existing rules, it is, however, placed before them. When the rules are used, they are tested in order.
New assignments with identical lhs overwrite old ones.
If lhs is of the form f[args], then args are evaluated.
There are some special functions for which an assignment to s[f[args]] is automatically associated with f rather than s. These functions include: MessageName, N and Options.
When it appears in an unevaluated symbolic form, Set is treated as a scoping construct (see Section A.3.8).
lhs = rhs returns rhs even if for some reason the assignment specified cannot be performed.
See The Mathematica Book on the web: Section 1.4.2, Section 2.4.5, Section 2.4.8 and Section A.5.2.
See also: Unset, Clear.
Further Examples