
- •1.Субд FoxPro 2.0. Команды создания, открытия и закрытия бд. Рабочие области.
- •Краткая характеристика foxpro
- •2.Субд FoxPro 2.0.Коменда изменения структуры бд,дополнения и редактирования.
- •3. Команды FoxPro: If и Case.
- •4. Циклы в foxpro while, for, scan
- •5 Структура команд субд FoxPro
- •Команды вывода list и display
- •Команды перемещения по базе данных
- •Функции, связанные с указателем записи
- •Команды удаления данных
- •Команда изменения значения поля бд
- •Ускоренный поиск
- •Приблизительный поиск
- •8.Команда создания новой базы данных.
- •9 Команда sql по дополнению бд
- •Команда sql по дополнению бд
- •10 Команда sql по удалению записей (для Visual FoxPro)
- •Команда sql по удалению записей (для Visual FoxPro)
- •11 Общий вид команды формирования запроса select.
- •Указание результатов выборки и источника данных
- •Указание объекта, куда пересылается выборка:
- •Критерий отбора данных:
- •Группировка данных
- •Сортировка данных
- •12 Нормализация структуры данных.
- •Нормализация данных при реляционном подходе
- •Нормализация структуры данных
- •13 Нормализация отношений.
- •Пример нормализации отношений
- •14 Реляционные операторы.
- •Традиционные операции над множествами. Объединение (union).
- •Пересечение (intersect).
- •Вычитание (minus).
- •Произведение (times).
- •15 Специальные реляционные операторы: выборка, проекция, соединение, деление. Выборка (where)
- •Проекция [ ].
- •Соединение ( join ).
- •Деление (divideby)
- •Примеры реляционных выражений.
Примеры реляционных выражений.
Рассмотрим несколько примеров использования реляционной алгебры для выражения словесных запросов в виде формул и в виде команд языка SQL.
1. Получить имена поставщиков, которые поставляют деталь P4:
(( SP JOIN S ) WHERE P#='P4') [SNAME]
Запрос на языке SQL:
SELECT DISTINCT S.SNAME
FROM S, SP
WHERE S.S# = SP.S# AND SP..P#='P4'
2. Получить имена поставщиков, которые поставляют, по крайней мере, одну красную деталь.
(((P WHERE COLOR='Red') JOIN SP) [S#] JOIN S) [SNAME]
Запрос на языке SQL:
SELECT DISTINCT S.SNAME
FROM S
WHERE S.S# IN
(SELECT SP.S#
FROM SP
WHERE SP.P# IN
(SELECT P.P#
FROM P
WHERE P.COLOR='Red'))
3. Получить имена поставщиков, которые поставляют все детали.
((SP[S#,P#] DIVIDEBY P[P#] JOIN S) [SNAME]
Запрос на языке SQL:
SELECT DISTINCT S.SNAME
FROM S
WHERE NOT EXISTS
(SELECT *
FROM P
WHERE NOT EXISTS
(SELECT *
FROM SP
WHERE SP.S#=S.S# AND SP.P#=P.P#))
или такой запрос
SELECT DISTINCT S.SNAME
FROM S
WHERE ( SELECT COUNT(SP.P#)
FROM SP
WHERE SP.S#=S.S#)=(SELECT COUNT(P.P#)
FROM P)
Здесь выдаются имена поставщиков, для которых количество наименований поставляемых деталей равно количеству всех наименований.
Примечание: Из 8 операторов Кодда 3 оператора (соединение, пересечение, деление) можно выразить через остальные операторы.