
3. Создание запросов на выборку записей
Выборка – это динамический набор данных из базы, отображающийся на экране компьютера. Выборку записей создают при помощи конструкции SELECT:
SELECT предикат список полей
FROM таблица {IN адрес внешней БД на диске}
{WHERE условие поиска}
{GROUP BY поле для группировки записей}
{HAVING дополнительное условие поиска в группе}
{ORDER BY список полей для сортировки};
Команды, приведенные в фигурных скобках, необязательны.
Предикатом может быть служебное слово ALL (показать все найденные записи), TOP n – показать первые n записей, TOP n PERCENT – показать первые n% записей; DISTINCT – показать только различные записи.
Список полей содержит имена полей, отображаемых в выборке. Элементы списков отделяются запятыми. Все поля таблицы обозначаются так: таблица .* или *, если рассматривается одна таблица.
Источником данных может быть одна или несколько таблиц текущей или внешней базы данных.
Имена полей из разных таблиц должны быть дополнены именами таблиц. Между именами записывают точку, например Склад1.Цена, Товары.Цена.
Если таблиц несколько, то их объявляют списком в команде FROM. Если между двумя таблицами установлена внутренняя связь по некоторому полю, например, [Номер товара], то команду FROM надо писать так:
FROM таблица1 INNER JOIN таблица2
ON таблица1.[Номер товара]=таблица2.[Номер товара].
Команда ORDER BY служит для сортировки полученных записей по возрастанию или по убыванию. соответствующее направления сортировки задается предикатами ASC или DESC, которые записывают после имени поля.
Пример 2. Из таблицы ТОВАРЫ выбрать первые три записи со всеми полями о товарах дешевле 100 грн. Решение:
SELECT TOP 3 *
FROM Товары
WHERE Цена<100;
4. Поиск данных в бд
Команда WHERE является важнейшей в конструкции SELECT. Она служит для отбора нужных записей согласно некоторому критерию (условию поиска). Условие поиска – это простое или составное логическое выражение. Простое логическое выражение – это два выражения, соединенные операцией отношения: =, <, >, <>, <=, >=, !=.
Выражения могут содержать имена полей и постоянные величины, соединенные допустимыми операциями. Составные логические выражения образовывают из простых или при помощи логических операций NOT, AND, OR и других, как это принято в языках программирования.
Рассмотрим примеры условий поиска:
1) [Название товара]= «телефон»;
2) [Дата изготовления]=#5/21/05#;
3) NOT Продавец= «Афоня» или Продавец != «Афоня»;
4) Мат>3 and Физ>3 and Инф>3;
5) [Цена товара] >20.5 AND [Цена товара]<80.2.
Для последнего примера определена более удобная и компактная конструкция:
[Цена товара] BETWEEN 20.5 AND 80.2.
Все даты за последние 30 дней:
Дата BETWEEN day()-30 AND day().
Даты следует записывать в американском формате месяц/день/год.
Для поиска данных в текстовых полях также полезна операция сравнения LIKE.
Пример 3. Из некоторой таблицы выбрать все записи о фирмах, названия которых начинаются на «Д» и офисы которых зарегистрированы в городах, названия которых начинаются от «А» до «Ж». Сгруппировать фирмы по городам, а города отсортировать по алфавиту.
Решение:
SELECT *
FROM [Конкретная таблица]
WHERE Фирма LIKE «Д*» AND Город LIKE [А-Ж]
GROUP BY Город
ORDER BY Город;
Условия конструируют так же, как и в QBE, только в логических выражениях SQL указывают имена полей.
Приведенная выше конструкция SELECT предназначена для создания запросов на выборку записей из БД.