So let's say I want to start learning C# so I can program Unity with it. I look for a good reviewed book and it says "Learn Visual C#!". I ask myself, what is the difference between Visual C# and C#? If I know Visual C#, do I also know C#?
Visual C#, like Visual C++, is simply Microsoft's implementation of the C# language, along with the IDE and design-time tools used for developing C#. The terms are usually interchangeable, since in Windows land, for many years, Visual Studio was almost the only development tool, and is still the most dominant one. So when learning Visual C#, anything you learn that is the language itself will be identical in other C# environments. The .NET Framework libraries will be mostly the same in other environments, and the tools (Visual Studio IDE, debugger, etc) are specific to the Microsoft implementation.
The "Visual XXX" terminology was part of the product branding used by Microsoft starting in the 90's to refer to their development IDEs, stressing their GUI-based nature, as opposed to many text-based IDEs or IDE-less development environments that were popular. This originally included standalone tools like Visual Basic (1991) or Visual C++ (1993), but were later merged into Visual Studio. When the .NET languages were released in 2000, they were released under the same branding.
C# is a programming language.
Visual C# is Microsoft's implementation of the language. MS uses the “Visual” prefix as a brand name for programming related products, eg. “Visual Basic .NET” or “Visual Studio”.
There are a number of other C# implementations as well, most importantly Mono. While both Mono and Visual C# implement the same language, there can be smaller incompatibilities, esp. with regards to the available libraries.