- •Занятие 1. Безусловная выборка. Синтаксис запроса.
- •Простая выборка
- •Выборка уникальных значений
- •Задания. Базовый уровень:
- •Повышенный уровень
- •Вопросы. Базовый уровень
- •Повышенный уровень
- •Занятие 2. Расширенные sql-запросы. Выборка с условием. Выборка вычисляемых значений
- •Выборка с использованием оператора between
- •Выборка с использованием оператора in (принадлежит)
- •Выборка с условием
- •Выборка с использованием шаблонов
- •Имя поля like строковая константа
- •Вопросы. Базовый уровень
- •Повышенный уровень
- •11. Каким образом получить выборку вычисляемых значений? Занятие 3. Расширенные sql-запросы. Выборка из связанных таблиц. Группировка данных. Сортировка
- •Выборка из связанных таблиц
- •Простое соединение
- •Соединение с дополнительным условием
- •Соединение трех таблиц
- •Использование группировки данных при организации запросов
- •Использование группировки данных совместно с условием
- •Использование having
- •Сортировка
- •Повышенный уровень
- •Занятие 4. Расширенные sql-запросы. Использование квантора существования в запросах. Коррелированные и некоррелированные подзапросы
- •Использование квантора существования в запросах
- •Коррелированные и некоррелированные подзапросы
- •Задания (базовый уровень):
- •Вопросы. Базовый уровень:
- •Повышенный уровень
- •Занятие 5. Расширенные sql-запросы. Модификация, удаление и добавление данных. Проверка условий целостности данных
- •Модификация данных в таблицах
- •Удаление данных
- •Добавление записей
- •Insert into таблица [(поле [,поле] ...)] values (константа [,константа]...)
- •Insert into таблица [(поле [,поле] ...)] подзапрос
- •Целостность
- •Занятие 6. Объединение, пересечение и разность отношений. Операторы union, intersect, exept
- •Объединение множеств
- •Занятие 7. Соединение отношений. Виды соединений. Оператор join.
- •Задания (базовый уровень):
- •Задания (повышенный уровень)
- •Занятие 8. Администрирование бд. Привилегии. Представления
- •Предоставление доступа к отдельным таблицам
- •Представления
- •16.3. Поясните разницу между системными и объектными привилегиями.
- •Методические указания
- •355000, Ставрополь, пр. Кулакова, 8
Выборка с условием
Для задания условия выборки в SQL-запросе используется команда (ключевое слово) WHERE. Условие, следующее за ключевым словом WHERE, может включать:
1) арифметические операторы сравнения: =, <>, > , <, >=, <=;
2) логические операторы – AND, OR, NOT;
3) скобки, определяющие порядок вычислений.
При выполнении условия выборки числа сравниваются алгебраически: отрицательные числа считаются меньше, чем положительные, независимо от их абсолютной величины. Строки сравниваются с их представлением в коде ANSI. При сравнении двух строк, имеющих разные длины, предварительно более короткая строка дополняется справа пробелами для того, чтобы строки имели одинаковую длину.
Пример. Пусть существует некоторая база данных, в которой имеется таблица Table3, содержащая информацию о поставщиках, покупателях, товарах. Предполагается, что покупатель может приобретать товар в кредит. Произвести из данной базы выбор всех кодов (kod) и фамилий (NAME) покупателей, которые находятся в Москве и имеют кредит(CREDITLIMIT) более 200 000.
С помощью языка SQL запрос, соответствующий примеру, можно представить в виде:
SELECT kod, NAME
FROM Table3
WHERE CITY=“Москва”
AND CREDITLIMIT>200000
Выборка с использованием оператора between
Для организации выборки информации из базы данных, принадлежащей некоторому диапазону, в SQL-запросах используются операторы: «>(Больше)»; «<(Меньше)» и Between (Между). Выбор каждого из этих операторов осуществляется в окне мастера запросов из списка Criteria (Критерий), расположенного во вкладке Filter (Фильтр). Операторы «>(Больше)» и «<(Меньше)» используются в том случае, если задана только нижняя или верхняя граница диапазона, a оператор Between (Между) – если известны обе границы диапазона.
С помощью SQL-запроса, набранного в командном окне,
SELECT kod, NAME, UNITPRICE
FROM Table4
WHERE UNITPRICE BETWEEN 20000 AND 100000
на экран будет выведена таблица, содержащая сведения о товарах, стоимость которых (UNITPRICE) находится в диапазоне от 20000 до 100000 включительно. Оператор BETWEEN возвращает истинные значения и для граничных точек.
Кроме того, при организации выборки из таблицы значений, не принадлежащих некоторому диапазону, может быть использовано условие NOT BETWEEN (не принадлежит диапазону между величинами), например:
SELECT kod, NAME, UNITPRICE
FROM Table4
WHERE UNITPRICE NOT BETWEEN 20000 AND 100000
Выборка с использованием оператора in (принадлежит)
СУБД Visual FoxPro позволяет при создании запросов формировать несколько условий. В том случае, если все задаваемые условия накладываются на одно поле, их можно разместить в одной строке. Для этих целей используется оператор IN (принадлежит).
В частности, результатом выполнения SQL-запроса, приведенного ниже
SELECT kod, NAME, UNITPRICE
FROM Table4
WHERE UNITPRICE IN (100000, 200000, 500000)
является таблица, содержащая информацию о товарах, цена которых равна 100000, 200000 или 500000.
Оператор IN является краткой записью условия, представляющего собой последовательность отдельных сравнений, соединенных между операторами OR (или). Предыдущая конструкция SELECT эквивалентна следующей конструкции:
SELECT kod, NAME, UNITPRICE
FROM Table4
WHERE UNITPRICE=100000
OR UNITPRICE=200000
OR UNITPRICE=500000
Как и в случае с оператором BETWEEN можно также использовать конструкцию NOT IN (не принадлежит), например:
SELECT kod, NAME, UNITPRICE
FROM Table4
WHERE UNITPRICE NOT IN (100000, 200000, 500000)
