d580a088

Чем является SQL и чем он не является



Чем является SQL и чем он не является

Первое, что надо уяснить насчет SQL , — этот язык не является процедурным, как FORTRAN , Basic , С, COBOL , Pascal и Java . Чтобы решить задачу с помощью одного из этих процедурных языков, приходится писать процедуру, которая выполняет одну за другой указанные операции, пока выполнение задачи не будет закончено. Процедура может быть линейной последовательностью или содержать ветвление, но в любом случае программист указывает порядок выполнения.

Иными словами, SQL является непроцедурным языком. Чтобы с его помощью решить задачу, сообщите SQL , что именно вам нужно, как если бы вы говорили с джином из лампы Аладдина. И при этом не надо говорить, каким образом получить для вас то, что вы хотите. Система управления базами данных (СУБД) сама решит, как лучше всего выполнить ваш запрос.

Хорошо. Только что я сказал, что SQL не является процедурным языком. В сущности, это правда. Однако миллионы программистов вокруг (и вы, возможно, один из них) привыкли решать задачи процедурным путем, поэтому в последние годы оказывалось немалое давление, чтобы дополнить SQL некоторыми процедурными возможностями. Поэтому теперь в составе новой версии спецификации SQL , SQL:2003, имеются такие средства процедурного языка, как блоки BEGIN , условные операторы IF , функции и процедуры. Благодаря этим новым средствам, можно хранить программы на сервере с тем, чтобы их могли повторно использовать многие пользователи.

Для иллюстрации того, что я имел в виду, когда говорил "сообщите системе, что именно вам нужно", предположим, что у вас имеется таблица EMPLOYEE с данными о служащих и вы хотите выбрать из нее все строки, соответствующие всем "старшим" работникам. Под "старшими" работниками можно подразумевать каждого, кто старше 40 лет или кто получает более 60000 долларов в год. Нужную вам выборку можно сделать с помощью следующего запроса:

SELECT * FROM EMPLOYEE WHERE AGE >40 OR SALARY >60000 ;

Этот оператор выбирает из таблицы EMPLOYEE все строки, в которых или значение столбца AGE (возраст) больше 40 или значение в столбце SALARY (зарплата) больше 60000. SQL сам знает, каким образом надо выбирать информацию. Ядро базы данных проверяет базу и принимает для себя решение, каким образом следует выполнять запрос. Все, что от вас требуется, — указать, какие данные вам нужны.

Помни: Запрос — это вопрос, который вы задаете базе данных. Если какие-либо ее данные удовлетворяют условиям вашего запроса, то SQL передает их вам.

В современных реализациях SQL отсутствуют многие простые программные конструкции, которые являются фундаментальными для большинства других языков. В приложениях для повседневной жизни, как правило, требуются хотя бы некоторые из этих конструкций, поэтому SQL на самом деле представляет собой подъязык данных. Даже имея дополнения, появившиеся в SQL вместе со стандартом SQL: 1999 и дополнительные расширения, добавленные в SQL:2003, все равно для создания законченного приложения необходимо использовать вместе с SQL один из программных языков, такой, например, как С.

Выбирать информацию из базы данных можно одним из следующих способов.

  • С помощью однократного непрограммируемого запроса с консоли компьютера, вводя команду SQL и читая на экране результаты ее выполнения. Консоль — это традиционный термин, означающий компьютерное оборудование, которое выполняет работу клавиатуры и экрана, применяемых в современных ПК. Запросы с консоли пригодны тогда, когда требуется быстрый ответ на конкретный запрос. Для удовлетворения какой-либо текущей потребности вам могут потребоваться такие данные из базы, которые до этого никогда не требовались. Возможно, они вам никогда больше не понадобятся, но сейчас они нужны. Введите с клавиатуры соответствующий SQL-запрос, и через некоторое время на вашем экране появится результат.
  • С помощью программы, которая извлекает из базы данных информацию, а затем создает на основе этих данных отчет, выводимый или на экран, или на печать. Язык SQL можно использовать и так. Сложный запрос SQL , который, возможно, еще пригодится в будущем, можно поместить прямо в программу. Это позволяет многократно использовать его в дальнейшем. Таким образом, формулировка запроса выполняется один раз. Как вставлять код SQL в программы, написанные на другом языке, рассказывается в главе 15.


Содержание раздела