Позвольте мне разобраться с этим. Я иду по длинной дороге здесь, так что терпите меня.
В конечном итоге все программы, данные и т. Д. На компьютере состоят из одних и тех же элементов: единиц и нулей. Ни больше ни меньше. Итак, как компьютер узнает, что один набор единиц и нулей должен обрабатываться как образ, а другой - как исполняемый файл?
Ответ - контекст. Это то, в чем люди ужасно хороши, поэтому неудивительно, что это основа большей части того, что делает компьютер. Механизмы сложны, но конечный эффект сводится к компьютеру, который постоянно переключает перспективу, чтобы делать невероятно гибкие вещи с невероятно ограниченным набором данных.
Я говорю об этом, потому что компьютерные языки похожи. В конце концов, ВСЕ компьютерные языки заканчиваются серией операционных кодов, проходящих через процессор. Другими словами, это язык ассемблера. Все компьютерные языки являются языком ассемблера, включая любую реализацию SQL.
Причина, по которой мы беспокоимся, заключается в следующем: языки программирования позволяют нам создать полезную иллюзию подхода к проблемам с новой точки зрения. Они дают нам возможность решить проблему и изменить ее решение.
С риском быть клише, когда нам не нравится ответ на проблему, другой язык программирования позволяет нам задать другой вопрос.
Итак, когда вы подходите к языку, будь то язык запросов, объектно-ориентированный язык или процедурный язык, ваш первый вопрос должен звучать так: «Какова перспектива этого языка? Каковы его взгляды на задачу решения проблем?» ?» Я бы пошел так далеко, что предположил, что язык без ясного видения сам по себе является большим количеством проблем, чем он стоит.
С C я хотел бы предположить, что перспектива такова: «Даже операции самого низкого уровня совершенно разных процессоров можно описать простым простым языком». C предназначен для того, чтобы сесть на место водителя любого процессора, сохранив при этом тот же старый руль, педали и приборную панель.
Итак, с C вы делаете все. Вот почему это называется «язык ассемблера высокого уровня». Или, цитируя моего друга, «C - это латынь компьютерных языков. Язык ассемблера - это хрюканье обезьян на деревьях».
SQL - это совершенно другой зверь с совершенно другой точки зрения ... или это так? С точки зрения SQL это так: «Даже самые сложные команды совершенно разных баз данных можно описать простым общим языком».
Звучит знакомо, а? SQL предназначен для того, чтобы вы могли сесть на место водителя любого программного обеспечения для баз данных и иметь такой же руль, педали и т. Д.
Итак, в общем, C - это язык, используемый для предоставления общепринятых команд любому произвольному ЦП, в то время как SQL - это язык, используемый для предоставления общепонятных команд любому произвольному фону базы данных.
Теперь, где они пересекаются? Это на самом деле довольно просто.
Что делает процессор? Он получает, преобразовывает и отправляет информацию. Поэтому, если ваша цель состоит в том, чтобы интерпретировать и представлять данные или принимать команды от конечного пользователя, вы работаете в C. Для процедур , которые необходимо автоматизировать с помощью компьютера.
Что делает база данных? Он хранит, группирует и извлекает большие наборы информации. Поэтому, если в какой-то момент вашей C-программе потребуется хранить, группировать или извлекать большой набор данных или подмножества большого набора данных, скорее всего, вы будете взаимодействовать с базой данных.
Как? Разумеется, если ваша C-программа отправляет команды SQL в базу данных. ;)
Я надеюсь, что это как-то освещает, потому что в противном случае я буду просто выглядеть напыщенным, и так далее, для этого длинного бессвязного ответа. : -Р