русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Построение запросов с комплексными условиям


Дата добавления: 2015-07-09; просмотров: 1880; Нарушение авторских прав


 

В языке SQL условия отбора записей из таблицы задаются ключевым словом WHERE. Условие может быть «простое» или «комплексное». Комплексное условие состоит из нескольких простых, объединенных логическими операторами.

При формировании условий используются следующих основные правила:

 

Правило 1. Для формирования простого условия можно использовать набор операторов, который показан в таблице4 ниже:

Таблица 4

Операторы, применяемые в построении комплексных запросов

= Равно
> Больше
>= Больше или равно
< Меньше
<= Меньше или равно
<> Не равно

 

Пример запроса с простым условием: отобрать все товары (т.е. строки из таблицы price), которые имеют цену больше или равную (>=) 3000.

 

SELECT pnun AS номер , pname AS наименование, price AS цена FROM price WHERE price>=3000;

 

Результат выполнения этого запроса показан на рис. 13.

 

Рис. 13.Результат выполнения запроса с условием (price>=3000).

 

Правило 2. Для логического соединения простых условий и создания сложного условия используются логические операторы :

Таблица 4.

Логические операторы, применяемые для построения комплексных условий.

OR Логическое «ИЛИ»
AND Логическое «И»
NOT Не равно (логическое отрицание)

 

Дополним условие предыдущего запроса дополнительным ограничением по дате регистрации продукта в прайсе (например, pdate>#12/14/2005#;).

Иначе говоря, надо отобрать все строки с товарами, которые имеют цену больше или равную (>=) 3000 и зарегистрированы позднее (>) 12/14/2005. (дата в условиях выделяется символом «решетка» - #...#)

На языке SQL запрос выглядит следующим образом:

 

SELECT price.pnun AS номер, price.pname AS наименование, price.price AS цена, price.pdate



FROM price

WHERE price>=3000 AND pdate>#12/14/2005#;

 

Результат запроса со сложным условием представлен на Рис. 14 ниже.

 

Рис.14. Выполнение запроса с условием (price>=3000 AND pdate>#12/14/2005#)

 

Рассмотрите этот запрос в режиме QBE (см. рис.15 ниже). В конструкторе запросов можно заменить, что условие AND формируется соседними столбцами. Оно указывает, что отбираются записи, которые удовлетворяют и первому и второму условиям одновременно (логическое «И»).

 

Логическое условие AND ( «И»)

Рис. 15. Запрос в формате QBE со сложным условием (price>=3000 AND pdate>#12/14/2005#)

 

Сформулируем запрос комплексным условием, который использует логическую связку «ИЛИ» (OR). Например, надо отобрать все строки из прайса для автомобилей «Волга» и «Ауди» (т.е. условие WHERE pname="Волга" OR pname ="Ауди") (см. рис.16)

Запрос с комплексным условием на языке SQL запишется так:

SELECT pnum AS номер, pname AS наименование, price AS цена

FROM Price WHERE pname="Волга" OR pname ="Ауди" ;

 

Замечание: Логический оператор «ИЛИ» соответствует обычному (бытовому) пониманию союза «И» (т.е. можно интерпретировать этот логический оператор так: подходит «и тот и другой» объект).

В режиме QBE запрос со связкой «ИЛИ» выглядит так, как показано на рис.16 ниже. Условия располагаются в одном столбце и связываются союзом «ИЛИ».

Логическое условие OR («ИЛИ»)

Рис.16. Построение запроса со сложным условием (pname="Волга" OR pname ="Ауди")

 

Результат выполнения запроса с логическим условием «ИЛИ» (pname="Волга" OR pname ="Ауди") показан на рис. 17. Отобраны только две строки, в которых наименования автомобилей удовлетворяют заданным условиям (автомобили "Волга" или "Ауди").

Рис.17. Пример запроса с комплексным условием «ИЛИ» (pname="Волга" OR pname ="Ауди")

 

Правило 3. Когда много простых условий связано большим числом логических операторов (ЛО), порядком проверки условий, можно управлять расстановкой круглых скобок. Сначала проверяется условие, которое находится внутри самых «глубоких» скобок.

Пример: Пусть задано комплексное условие вида:

((<условие C >ЛО2(<условие A>ЛО1<условие B>))ЛО3<условие D> ),

в котором используются 4-ре простых условия A, B, C и D, соединенные тремя логическими операторами ЛО1, ЛО2 и ЛО3. Последовательность исчисления логического предиката будет следующая:

Сначала вычисляется <условие A> и <условие B> и выполняется логическая связка ЛО1;

Затем вычисляется <условие C> и выполняется ЛО2;

В заключении вычисляется <условие D> ) и выполняется ЛО3.

 

Рассмотрим запрос с вложенной структурой условий. Например, надо отобрать строки из таблицы Price, удовлетворяющие следующим нескольким условиям (простые условия соединяются с помощью AND):

SELECT pnum AS Номер, pname AS Наименование, price AS Цена FROM price

WHERE (( pnum ='3001' OR pnum ='3003')

AND ( pdate <=#12/16/2005#) AND ( pdate >=#12/14/2005#)

AND ( price >3000));

 

Такой запрос сначала обработает условие OR, а затем условия AND.

 

1.4. Вставка текстовых столбцов.

 

В запросы можно вставлять текстовые столбцы, которые облегчают понимание результатов. Например, в запросе ниже вставлено два текстовых столбца: «Наименование» и «цена». Этот текст будет повторяться в каждой строке результирующей таблицы.

Пример SQL запроса с текстовыми столбцами:

SELECT pnum AS НОМЕР, 'Наименование' , pname AS НАЗВАНИЕ, 'Цена' , price AS ЦЕНА

FROM Price

WHERE pnum ='3003' ;

 

Результат запроса показан на рис. 18.

 

Рис. 18. Пример запроса со вставленными текстовыми столбцами

 



<== предыдущая лекция | следующая лекция ==>
Задание списка имен столбцов и изменение имен столбцов в запросе. | Задания для самостоятельной работы.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.529 сек.