Is capitalization of SQL commands/keywords required, expected or completely optional? Also, is it done automatically in some environments?
The SQL language is not case sensitive.  It is not important whether you type select or SELECT.

Often rules about capitalisation are included in a company's or project's coding standards. These often dictate where indentation, alignment and white space should be used, too.  This is important because it adds uniformity across all the code.  After a short while your eyes get used to the layout and can scan the code much more quickly, identifying important clauses and missing constructs.

Exactly where white space, alignment and capitalisation should be applied is a subject of active debate. Every programmer I've ever worked with had their own idea. There is no universally correct answer.  The value lies in uniformity, not the individual choices.

Some years ago colleagues were working on a project where the database was declared with a case sensitive collation.  Then they did have to be careful about capitalisation as key words or variables were considered different, much like Java.