
- •Раздел 1. Проектирование баз данных. 2
- •Раздел 2. Разработка приложений для работы с Базами Данных в среде Delphi. 25
- •Раздел 1. Проектирование баз данных.
- •1.1. Основы построения баз данных. Модели данных.
- •1.1.1. Реляционная модель данных.
- •1.1.2. Нормализация базы данных.
- •1.2. Проектирование базы данных методом “сущность-связь”.
- •Раздел 2. Разработка приложений для работы с Базами Данных в среде Delphi.
- •2.1. Технология создания информационной системы.
- •2.1.1.Создание таблиц базы данных в Database Desktop.
- •2.1.2. Целостность базы данных.
- •Программа bde Administrator и модули данных.
- •Компоненты доступа и работы с данными. Тема: Наборы данных. Состояние и режимы наборов данных.
- •Тема: Объекты поля. Операции с полями.
- •Тема. Отображение и выбор значения поля.
- •Тема. Визуальные компоненты отображения записей из набора данных.
- •Закладки.
- •Тема. Ограничения на вводимые значения.
- •Тема. Сортировка набора данных.
- •Тема. Операции с таблицей базы данных.
- •Тема. Фильтрация записей.
- •Тема. Поиск записей.
- •Тема. Модификация набора данных.
- •Тема. Работа с отчетами
- •Отчет для связанных наборов данных
- •Составной отчет
- •Модули данных
- •Конструктор отчетов Rave Report
- •Реляционный способ доступа к данным.
- •Основные сведения о языке sql.
- •Оператор выбора Select.
- •Агрегирование и группирование записей.
- •Объединение таблиц.
- •Вложенные запросы.
- •Модификация записей.
- •Примеры баз данных
Оператор выбора Select.
Оператор выбора Select – возвращает одно или множество значений указанных полей записей, удовлетворяющих указанному условию и упорядоченных по заданному критерию. Формат оператора:
SELECT <список имен полей>
FROM <таблица> [WHERE <условие отбора> ] [ORDER BY <список имен полей>];
где
<список имен полей> - имена тех полей таблицы, значения которых будут возвращены. Список должен включать хотя бы одно поле. Если в результирующий набор включаются все поля таблицы, то можно указать символ ‘*’.
<таблица> - та таблица базы данных, из которой осуществляется отбор, например, Tovar;
<условие отбора> - отбираются только те записи, в которых условие выполняется;
Например,
SELECT S_Fam, S_Birthday FROM Sotrudniki
Результирующий набор данных включает поля S_Fam и S_Birthday из таблицы Sotrudniki.
SELECT * FROM Sotrudniki
Будут выбраны все поля таблицы Sotrudniki
Для каждого имени поля можно указать псевдоним в виде
AS <псевдоним>
где
<псевдоним> - любой идентификатор, на который можно при необходимости сослаться.
Например,
1) SELECT S_fio AS Fam FROM Sotrudniki
2) SELECT S_fio AS Фамилия, S_birthday AS Дата_рождения
FROM Sotrudniki
В списке полей можно использовать не только сами поля, но и любые выражения с использованием арифметических операций +, -, *, /.
Например,
SELECT S_fio, 2005-EXTRACT (YEAR FROM S_Birthday)
AS Age FROM Sotrudniki
В выражениях для полей можно использовать строковые константы и операцию «||», которая означает сцепление строк.
Например,
SELECT 'Фамилия: ' || S_fio,
'год рожд.:' || CAST(EXTRACT (YEAR FROM
S_Birthday) AS CHAR(4)) FROM Sotrudniki
Условие отбора после WHERE отбирает только те записи, для которых заданное условие истинно. Условие может включать имена полей (кроме вычисляемых), константы, логические выражения, содержащие арифметические операции, логические операции и операции отношения:
= |
равно |
> |
больше |
>= |
больше или равно |
< |
меньше |
<= |
меньше или равно |
!= или <> |
или не равно |
Like |
наличие заданной последовательности символов |
between … and |
диапазон значений |
in |
соответствие элементу множества |
Например,
SELECT * FROM Tovar WHERE Kol_vo<15 and Cena>4
Операция Like:
<поле> LIKE ‘<последовательность символов>’
применяется к полям типа строка и возвращает True, если в строке встретился фрагмент, заданный в операции как <последовательность символов>. В начале последовательности и в ее конце может присутствовать символ % (любое количество любых символов).
Например,
SELECT * FROM Tovar WHERE Tovar Like 'Л%'
Операция between … and:
<поле> between <значение> and <значение>
задает для указанного поля диапазон отбираемых значений.
Например,
SELECT * FROM Tovar WHERE Cena BETWEEN 20 and 50
Операция In:
<поле> in (<множество>)
отбирает записи, в которых значение указанного поля является одним из элементов указанного множества.
Например,
1) SELECT * FROM Sotrudniki
WHERE S_fio IN ('Иванов И.И.','Инин И.И.')
2) SELECT * FROM Sotrudniki
WHERE Extract(YEAR FROM S_Birthday) IN (1976,1980)
Элемент ORDER BY определяет упорядочивание (сортировку) записей, по указанным полям. Можно указывать только поля, фигурирующие в списке отобранных (после слова SELECT), в том числе и вычисляемые. Для сортировки по убыванию значений поля нужно после имени поля указать ключевое слово DESC.
Например,
SELECT Tovar, Kol_vo, Cena
FROM Tovar ORDER BY Tovar, Cena DESC
SELECT Tovar, Kol_vo, Cena, Kol_vo*Cena AS Стоимость
FROM Tovar ORDER BY Стоимость
После ключевого слова SELECT в оператор могут вставляться ключевые слова:
DISTINCT – в результирующий набор данных не включаются повторяющиеся записи, в которых совпадают значения полей указанных в списке оператора,
или ALL – означает включение всех записей.
Например,
SELECT DISTINCT Tovar FROM Tovar
- будет выдан список различных товаров, которые имеются в таблице.
Пример. Сортировка по вычисляемому полю. (Распечатка).