- •1. Форматирование выходных данных запросов. 39
- •Тема 1.
- •1. Введение. История развития баз данных.
- •1. Введение. История развития баз данных
- •2. Основные понятия и определения
- •Тема 2.
- •1. Архитектура базы данных. Физическая и логическая независимость.
- •1. Архитектура базы данных. Физическая и логическая независимость
- •2. Разработка приложений в среде Microsoft Windows. Системы быстрой разработки приложений. Субд. Модели данных.
- •3. Основные этапы проектирование базы данных.
- •Тема 3.
- •1. Дополнительные общие рекомендации по проектированию базы данных.
- •2. Разработка приложений в среде Microsoft Windows.
- •1. Дополнительные общие рекомендации по проектированию базы данных.
- •2. Разработка приложений в среде Microsoft Windows.
- •Тема 4.
- •1. Построение таблиц.
- •2. Запросы в Microsoft Access. Параметры запросов на выборку данных.
- •3. Операции реляционной алгебры.
- •1. Построение таблиц
- •2. Запросы в Microsoft Access. Параметры запросов на выборку данных.
- •3. Операции реляционной алгебры.
- •Тема 5.
- •1. Понятие технологии «Клиент-сервер». Общие сведения о языке запросов sql.
- •2. Структура sql.
- •1. Понятие технологии «Клиент-сервер». Общие сведения о языке запросов sql.
- •2. Структура sql.
- •Тема 6.
- •1. Запрос выборки в языке sql. Выборка из одной таблицы.
- •2. Суммирование данных с помощью функций агрегирования (групповых функций).
- •1. Запрос выборки в языке sql. Выборка из одной таблицы.
- •2.Суммирование данных с помощью функций агрегирования (групповых функций).
- •Тема 7.
- •1. Форматирование выходных данных запросов.
- •2.Соединение таблиц
- •3.Вложенные подзапросы
- •4.Связанные подзапросы. Оператор exists
- •5.Вложенные и связанные подзапросы. Операторы any, all, come
- •Тема 8.
- •1. Форматирование выходных данных запросов.
- •1. Форматирование выходных данных запросов.
- •Тема 9.
- •1. Запросы обновления таблиц.
- •2. Создание, модификация и уничтожение таблиц. Ограничение на множество допустимых значений данных. Значение по умолчанию.
- •3. Создание и уничтожение индексов. Поддержка ссылочной целостности.
- •1. Запросы обновления таблиц.
- •2. Создание, модификация и уничтожение таблиц. Ограничение на множество допустимых значений данных. Значение по умолчанию.
- •3. Создание и уничтожение индексов. Поддержка ссылочной целостности.
- •Тема 10.
- •1. Создание представлений .
- •2. Определение правд доступа к данным.
- •1. Создание представлений.
- •2. Определение правд доступа к данным.
- •Тема 11.
- •1. Определение синонимов объектов. Понятие транзакций. Управление параллелизмом.
- •Тема 12.
- •1. Встроенный sql, основные понятия
- •1. Встроенный sql, основные понятия.
Тема 6.
1. Запрос выборки в языке sql. Выборка из одной таблицы.
2. Суммирование данных с помощью функций агрегирования (групповых функций).
1. Запрос выборки в языке sql. Выборка из одной таблицы.
Рассмотрим результат выполнения команд SQL на примере БД, состоящей из трех таблиц: преподаватель, студент, оценка.
Преподаватель |
||
Pnum |
Pname |
Pcaf |
001 |
П-1 |
К-1 |
002 |
П-2 |
К-1 |
003 |
П-3 |
К-2 |
Студент |
|||
Snum |
Sname |
Sgrp |
Spdp |
001 |
С-1 |
Г-1 |
001 |
002 |
С-2 |
Г-2 |
001 |
003 |
С-3 |
Г-2 |
002 |
004 |
С-4 |
Г-3 |
|
Оценка |
|||
opnum |
Osnum |
odate |
ocen |
001 |
001 |
10/01/01 |
5 |
001 |
002 |
11/01/01 |
4 |
001 |
003 |
11/01/01 |
3 |
003 |
001 |
15/01/01 |
5 |
003 |
003 |
16/01/01 |
2 |
003 |
003 |
20/01/01 |
4 |
Структура таблицы «Преподаватель»:
Pnum – уникальный номер преподавателя
Pname – Фамилия
Pcaf – кафедра на которой он работает
Структура таблицы «Студент»:
Snum – уникальный номер
Sname – фамилия
Sgrp - группа
Spdp – номер преподавателя-руководителя дипломной работы
Структура таблицы «Оценка»:
Opnum - номер преподавателя поставившего оценку
Osnum - номер студента получившего оценку
Odate - дата получения оценки
Ocen – оценка
Запрос выборки – ядро SQL, наиболее часто используемое средство этого языка.
Выборка информации из БД осуществляется по следующей команде:
SELECT <список полей>
FROM <список таблиц>
WHERE<спецификация выбора строк>
GROUP BY <спецификация группировки>
HAVING <спецификация выбора групп>
ORDER BY <спецификация сортировки>;
Вся команда должна быть набрана в одной строке. Символ новой строки при анализе команды трактуется системой как пробел. Любой запрос должен заканчиваться точкой с запятой.
Рассмотрим простейшие команды SQL, на примере одной таблицы:
Параметр может задаваться через *, т.е. все поля таблицы, иначе – список полей через запятую. Последовательность имен в списке может быть произвольной и не совпадать с последовательностью имен в таблице.
Пример:
SELECT * FROM Преподаватель; // результат – вся таблица преподаватель
SELECT pcaf FROM Преподаватель; // результат – список кафедр
-
pcaf
K-1
K-1
K-2
Перед параметром «список полей», может быть задано ключевое слово «ALL/DISTINCT», т.е. показывать или нет повторяющиеся строки таблицы. ALL используется по-умолчанию.
SELECT DISTINCT pcaf FROM Преподаватель; //исключили повторяющиеся строки
-
pcaf
K-1
K-2
Таким образом оператор SELECT DISTINCT <список полей> FROM <список таблиц> реализует операцию «проекция» реляционной алгебры
Параметр WHERE - определяет условное выражение которому должны удовлетворять строки, включаемые в таблицу результатов.
Выражения могут использовать операции сравнения =, <,>,=<,=>,< >, а так же логические операции AND, OR, NOT.
Пример:
pnum |
pname |
001 |
Г-1 |
002 |
Г-2 |
FROM преподаватель
WHERE pcaf=”k-1”;
Пример:
SELECT osnum, ocen
FROM оценка
osnum |
Ocen |
002 |
4 |
003 |
3 |
003 |
4 |
AND ocen >2
AND NOT ocen =5;
Логические выражения могут содержать специальные операторы. К ним относятся: IN, BETWEEN, LIKE, IS NULL.
Оператор IN имеет следующий формат:
Имя_поля IN(значение1, значение 2…)
Пример:
snum |
sname |
sgrp |
Spdp |
001 |
C-1 |
Г-1 |
Г-1 |
004 |
C-4 |
Г-3 |
|
WHERE sgrp IN(“Г-1”,”Г-3”);
Оператор BETWEEN имеет следующий формат:
Имя_поля BETWEEN значение 1 AND значение 2
osnum |
odate |
Ocen |
002 |
11/01/01 |
4 |
003 |
11/01/01 |
3 |
003 |
17/01/01 |
4 |
SELECT osnum, odate, ocen
FROM оценка
WHERE ocen BETWEEN 3 AND 4;
Оператор LIKE служит для поиска подстрок в текстовых полях и имеет формат:
Имя_поля LIKE ”Шаблон”
Шаблон представляет собой текстовую строку с возможным использованием метасимволов. В основном используется * - множественная произвольная последовательность знаков.
Пример:
snum |
sname |
sgrp |
spdp |
004 |
C-4 |
Г-3 |
|
WHERE sgrp LIKE (“*3”);
Поля таблицы могут содержать значения NULL – значение «не задано». Такие поля не равны не каким другим, в том числе NULL-значениям.
Результатом сравнения NULL-значения с другим значением есть неизвестность.
Обычные операции сравнения не могут быть использованы для сравнения со значением NULL и в таком случае, должен быть использован оператор IS NULL, в формате:
Имя_поля IS NULL;
snum |
sname |
sgrp |
spdp |
004 |
C-4 |
Г-3 |
|
SELECT*FROM студент
WHERE spdp IS NULL;
Некоторые системы, в том числе Microsoft Acess, логическое выражение имя_поля=NULL, автоматически преобразует в имя_поля IS NULL;