Скачиваний:
52
Добавлен:
10.05.2015
Размер:
591.87 Кб
Скачать

Sql – запросы.

Для формирования запросов в VFP используется конструкция SQL:

Select – список выбираемых полей,

From – Список таблиц,

Where – условия выборки,

Info- имя таблицы курсора.

Эта конструкция дополняется операторами, увеличивающими ее функциональность.

Формулировки запросов мы будем отрабатывать на базе данных dream-home (которая вам выдана).

Эта база данных нами уже использовалась при изучении реляционного исчисления.

Еще раз ее краткая характеристика.

Dream-home – это база данных компании, занимающейся сдачей в аренду объектов недвижимости по поручению их владельцев.

Отношения базы данных:

1. Branch – отделения фирмы.

Bno - номер отделения,

Pcode – почтовый индекс.

2. Staff – персонал фирмы.

Sno - лчный номер сотрудника,

Position – должность,

Nin – личный номер соц. страховки,

Bno – номер отделения, в котором работает сотрудник.

3. Property_for_rent – объекты недвижимости физических и юридических лиц.

Pno – номер объекта,

Ono – номер владельца недвижимости,

Sno – номер менеджера, который отвечает за работу с данным объектом,

City – место расположения объекта недвижимости,

Bno – номер отделения фирмы, ведущего данный объект.

4. Renter – арендаторы.

Rno- номер арендатора,

Pre_type – предпочтительный тип жилья.

5. Owner – владельцы.

6. Viewing – осмотр недвижимости.

Запросы к БД «Dream-Home» мы будем формулировать как процедуры к кнопкам, с наименованием запроса. Кнопки разместим на форме «Запросы SQL».

Ссылка на литературу: Т.Конноли и другие «Базы Данных», М-С.-П., 2000г. изд. Вильямс, стр.426.

Запрос 1. Простые запросы.

Текст запроса: Перечислить весь персонал с размером заработной платы больше 10000 фунтов стерлингов в год.

Используется таблица Staff и БД «Dream-home».

Select sno, fname, lname, position, salary ;

From DreamHome! Staff ;

Where salary>10000 ;

Info table «Запрос 1.dbf»** результат запроса в таблицу

Browse ** просмотреть результат

Use ** закрыть таблицу после просмотра

1. Если использовать

Select * ; - то в таблице результатов запроса будут представлены все атрибуты.

2. Если нужно распечатать месячную зарплату, то

Select…………. Salary/12 as м.зарп;

будет в таблице атрибут м.зарп вместо salary и она будет разделена на 12.

Набор операторов сравнения:

= - равно,

< - меньше,

> - больше,

<= - меньше или равно,

>= - больше или равно,

<> - не равно (стандарт ISO),

!= - не равно (диалект).

Более сложные предикаты могут быть построены с помощью логических операторов:

AND – и,

OR – или,

NOT – не.

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

1. Выражения вычисляются слева направо.

2. Первыми вычисляются подвыражения в скобках.

3. Операторы NOT выполняются до выполнения операторов AND и OR.

4. Операторы AND выполняются до выполнения операторов OR.

Запрос 2.Сложные условия поиска.

Текст запроса: Перечислите адреса всех отделений компании в Лондоне и Глазго.

Используется таблица Branch.

Select bno, street, area, city, pcode ;

From DreamHome! Branch ;

Where city=”London” OR city=”Glasgow”;

Результат:

Bno

………

B5

B3

B2

Запрос 3. Условия поиска с проверкой вхождения во множество (IN/NOT IN).

Проверка вхождения результата вычисления выражения в заданное множество организуется с помощью ключевого слова IN. В этом случае запрос 2 будет выглядеть следующим образом:

Select bno, street, area, city, pcode ;

From DreamHome! Branch ;

Where city IN (”London”, ”Glasgow”);

Запрос 4.

Where city NOT IN (”London”, ”Glasgow”);

Результат:

Bno

………

B7

B4

Запрос 5. Использование диапазонов (BEETWEEN/ NOT BEETWEEN) в условиях поиска.

Формулировка запроса: перечислите весь персонал с годовой зарплатой от 20000 до 30000 фунтов стерлингов.

Используется таблица Staff.

Select sno, fname, lname, position, salary ;

From DreamHome! Staff ;

Where salary BEETWEEN 20000 AND 30000;

Результат:

Sno

………

SL21

SG5

Запрос 6. Условия поиска с указанием шаблонов (LIKE/ NOT LIKE).

Текст запроса: Найдите всех работников, проживающих в городе Глазго.

При выполнении этого запроса необходимо организовать поиск строки “Glasgow”, которая может располагаться в любом месте домена Address таблицы Staff.

В SQL существует два специальных символа шаблона, используемых при проверке символьных значений:

“%” – символ процента представляет любую последовательность из нуля или более символов.

“_” - символ подчеркивания представляет собой любой одиночный символ.

Все остальные представляют сами себя.

Примеры:

1. Address LIKE “H%” -этот шаблон означает, что первый символ обязательно должен быть “H”, а остальные символы не представляют интереса и не проверяются.

2. Address LIKE “H_ _ _” - этот шаблон означает, что значение должно иметь длину, равную строго четырем символам, причем первым символом должен быть символ “H”.

3. Address LIKE “%е” – этот шаблон определяет любую последовательность символов, длиной не менее одного символа, причем последним символом обязательно должен быть символ “e”.

4. Address LIKE “%Glasgow” – этот шаблон означает, что нас интересует любая последовательность символов, включающих подстроку “Glasgow”.

5. Address NOT LIKE “H% ” - этот шаблон указывает, что требуются любые строки, которые не начинаются с символа “H”.

Формулировка запроса:

Select sno, fname, lname, address, salary ;

From DreamHome! Staff ;

Where address LIKE “%Glasgow%”;

Соседние файлы в папке Лекции по Базам данных - версия 9.01.10