SQL - Язык запросов

Введение

SQL - это язык предназначенный для модификации и управления реляционными базами данных, а так же для создания запросов. С его помощью можно сделать выборку, сортировку и фильтрацию данных. Кроме того, операторы SQL позволяют добавлять, изменять и удалять записи из базы данных.

Чтобы Ваши приложения эффективно взаимодействовали с базой данных, Вы должны хорошо знать и понимать SQL. Правильно используя операторы SQL, Вы сможете возложить выполнение определенных операций на саму базу данных, позволит сделать Ваши приложения более эффективными, а так же, значительно уменьшить количество передаваемых данных между клиентом и уделенным сервером.

Оператор SELECT

Оператор SELECT возвращает информацию из базы данных в виде набора записей и состоит из трёх главных блоков, смотрите таблицу 1:

SELECT Сообщает базе данных какие поля должны быть запрошены
FROM Определяет из каких таблиц будут возвращаться поля указанные в блоке SELECT
WHERE Устанавливает критерии для выборки записей.

Таблица 1

Минимальный код с оператором SELECT выглядит так:

SELECT поля FROM таблицы

Если выполнить этот код, то ядро базы данных ищет указанную таблицу и извлекает из неё заданные поля, выбирает строки, сортирует или группирует полученные записи в нужном порядке. Если Вам требуется получить все поля из таблицы, то используйте звездочку "*". Например следующий блок операторов вернёт все поля из таблицы Employees:

SELECT *
FROM Employees

Но получать всё данные из таблицы требуется не так часто. Если добавить блок WHERE, то Вы сможете ограничиться получением только необходимых данных. В приведенном примере показано как ограничится получением записей в которых значения поля LastName равны Buchanan:

SELECT *
FROM Employees
WHERE LastName = 'Buchanan';

Обратите внимание на апострофы, в которые заключено слово Buchanan. При использование WHERE, апострофы требуются если необходимо сравнивать строкой. Как в нашем случае, LastName хранится в базе данных в виде строки. Но если Вам требуется получить численное значение, то апострофы не нужны:

SELECT *
FROM Employees
WHERE EmployeeID = 5;
Блок WHERE IN

Используя блок WHERE с оператором IN, Вы сможете определить, соответствует ли выражение одному из указанных в списке значений. В примере блок WHERE IN позволяет получить фамилии сотрудников из США и Англии, смотрите рисунок 1:

SELECT LastName, Country
FROM Employees
WHERE Country IN ('UK', 'USA');
Блок WHERE IN. Рисунок 1
Рисунок 1


Блок WHERE BETWEEN

Вы можете получить и выборку записей, удовлетворяющих двум критериям, обратите внимание на символы "#", в который заключены даты, смотрите пример:

SELECT OrderID
FROM Orders
WHERE OrderDate
BETWEEN #01/01/93# AND #01/31/93#
Оператор LIKE

Оператор LIKE предназначен для поиска значений в полях по заданному шаблону. Вы можете указать полное значение, например LIKE 'Buchanan' или символ подстановки, к примеру LIKE 'Bu%'. Если при создание запроса Вы укажите LIKE 'B%', то будут найдены все поля значения в которых начинаются с буквы "B". В приведенном ниже примере, возвращаются все где фамилия сотрудников начинается с буквы "D":

SELECT LastName
FROM Employees
WHERE LastName LIKE 'D%';

Результат выполнения показан на рисунке 2:

Оператор LIKE. Рисунок 2
Рисунок 2


Блок ORDER BY

По умолчанию записи возвращаются в том порядке в котором хранились в базе данных. С помощью не обязательного блока ORDER BY можно сортировать полученные в результате запроса данные по значению определённого поля в порядке возрастания, ключевое слово ASC и в порядке убывания, слово DESC. В приведённом ниже примере извлекаемые поля сортируются в порядке убывания, результат выполнения этого кода показан на рисунке 3:

SELECT *
FROM Employees
ORDER BY LastName DESC;
Блок ORDER BY. Рисунок 3
Рисунок 3


Заключение

При написание статьи использовался Microsoft SQL Server 2000 Developer Edition.