SQL требуют вообще больше программистких вакансий. Вовсе не только в С#....
В свое время SQL был придуман, чтобы простые МЕНЕДЖЕРЫ, вовсе не программисты, могли получать данные из БД, написав запросы на почти естественном английском языке. Это просто.
Как правило, SQL относится к т.н. реляционным базам данных. В последнее время упрощенные варианты SQL используют и для других, но все же рожден и оптимизирован SQL именно для реляционных.
Реляционная БД - это набор таблиц с колонками, чьи поля связаны по смыслу.
Колонки фиксированы, имеют свои названия. Таблица растет построчно, строк может быть единицы или миллионы - неважно.
Причем порядок строк значения не имеет - то есть один раз вы получите строчки из таблицы в одном порядке, другой раз в другом порядке, в таком как удобно программе, а не вам. Если порядок вам важен - нужно явно указывать это в запросе, но такое требование снижает скорость выполнения запроса.
Пример:
Таблица "Преподаватели"
Колонка "Фамилия", Колонка "Дата рождения", Колонка "Стоимость академического часа"
Таблица "Группы учеников"
Колонка "Название", Колонка "Количество"
Таблица "Занятия"
Колонка "Название группы", "Фамилия преподавателя", "Название предмета", "Дата занятия"
Можем узнать сколько денег нужно заплатить преподавателю за все занятия:
SELECT Фамилия, SUM(Стоимость академического часа) FROM Преподаватели, Занятия WHERE Преподаватели.Фамилия = Занятия.Фамилия преподавателя GROUP BY Фамилия
Или во что нашему учебному заведению обходятся разные виды занятий
SELECT Название предмета, SUM(Стоимость академического часа) FROM Преподаватели, Занятия WHERE Преподаватели.Фамилия = Занятия.Фамилия преподавателя GROUP BY Название предмета
Или вывести расписание
SELECT Название предмета, Название группы, Фамилия преподавателя, Дата занятия FROM Преподаватели, Занятия WHERE Занятия ORDER BY Дата занятия
База данных может быть ФАЙЛОМ и вы указываете своему инструменту (библиотеки, которую используете для доступа к базе данных) - путь к этому файлу. Это может быть несколько файлов - каталог. Также указываете путь.
Это может быть сервер баз данных - отдельная программа. Как она хранит данные, в каких файлах - не ваша забота. Вам для доступа к базе данных нужно указать имя сервера (или IP-адрес его или unix-сокет или named pipe), название базы данных, имя и пароль.
В первом случае исполняет SQL некая библиотека (входящая в стандартную поставку .NET или дополнительно установленная), которую вам нужно не забыть включить в дистрибутив своей законечнной программы.
Во втором случае исполняет SQL некая отдельная программа. Но "некая библиотека" и тут используется. Она обращается к серверу баз данных на особом языке - протоколе (который вам знать не нужно и даже не полезно).
Однако SQL - это всего лишь ОДИН ИЗ ВАРИАНТОВ манипуляции с данными базы данных. Довольно универсальный и удобный.
Есть еще ORM - это класс инструментов, а не язык. Он более приближен к исходному языку программирования.
Конкретно для C# есть еще круче инструмент - LINQ.
А еще можно общаться в базой данных тупыми командами безо всего этого. А писать что-то вроде: "взять из таблицы Преподаватели все строчки, сохранить их в массиве, затем ....."