- •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, основные понятия.
2. Создание, модификация и уничтожение таблиц. Ограничение на множество допустимых значений данных. Значение по умолчанию.
В теории практики баз данных всегда различают 2 понятия: язык манипулирования данными (ЯМД) и язык описания данных (ЯОД). К ЯМД относятся рассмотренные выше команды SQL, а к ЯОД относятся команды создания таблиц и связей между ними. Речь идёт не только об описании состава и формата полей, но и о значении по умолчанию и ограничении на множество допустимых значений. Всё это определяется не на уровне конкретных записей, а как свойство определяемых таблиц данных и совокупностей таблиц.
Создание таблиц может быть выполнено командой языка ЯМД на основе данных из уже существующих таблиц. Это типичная форма хранения промежуточных данных. Формат это команды имеет следующий вид:
SELECT список_полей INTO новая_таблица FROM источник;
Здесь список_полей – это имена полей исходных таблиц, из которых будет состоять новая таблица; новая_таблица – имя создаваемой таблицы; источник – таблица или подзапрос.
Пример:
Создать таблицу средний балл с данными о средних баллах студентов.
SELECT snum, avg INTO новая_таблица FROM источник;
snum |
avg |
001 |
5 |
002 |
4 |
003 |
3 |
средбалл (snum, avg)
SELECT osnum, AVG (ocen) FROM оценка
GROUP BY osnum;
В этом запросе, в отличие от запроса INSERT INTO таблицу Средний балл не нужно предварительно создавать.
Другим способом создания таблиц является использование команд ЯОД. В MS Access эти команды определены в режиме SQL, но не имеют аналогов в конструкторе запросов. Это уменьшает гибкость использования SQL, т.к. требует предварительного определения всех временно создаваемых таблиц. Формат этой команды имеет следующий вид:
CREATE TABLE имя_таблицы (имя_поля тип_данных [(размер)], … имя_поля тип_данных [(размер)]);
Каждая таблица должна содержать хотя бы один столбец, т.к. пробелы используются для разделения параметров, а имена полей не могут содержать пробелы (в MS Acces пробелы возможны, но не рекомендуются).
Типы данных для различных программных средств значительно отличаются, однако в целях совместимости со стандартом всегда поддерживают стандартные ANSI типы данных. К ним относятся:
char (размер) – символьные данные (размер по умолчанию равен 1);
long – целое (4 байта);
real– с плавающей точкой (4 байта);
numeric, float - с плавающей точкой (8 байта);
Пример:
Создать таблицу о среднем балле студента.
CREATE TABLE Средбалл (snum char (3), avg real]);
Структуру таблицы существующей можно изменить по команде ALTER TABLE. Эта команда не является частью стандарта ANSI, но присутствует практически во всех реализациях SQL. Формат команды имеет следующий вид:
ALTER TABLE имя_таблицы
ADD (column) имя_поля тип_данных [размер];
Пример:
Добавить в таблицу Средний балл фамилию студента.
ALTER TABLE Средбалл
ADD sname char (30);
Для удаления столбца используется следующая команда:
ALTER TABLE имя_таблицы DROP [COLUMN] имя_поля;
Пример:
ALTER TABLE Средбалл DROP sname;
Для уничтожения таблицы используется запрос, имеющий следующий формат:
DROP TABLE имя_таблицы;
Пример:
Удалить таблицу Средний балл:
DROP TABLE Средбалл;
В некоторых системах могут удаляться только пустые таблицы, но в MS Access даже заполненная таблица удаляется без всякого предупреждения.
Когда создаётся таблица можно определить ограничения назначения, которые вводятся в поля, и SQL будет отвергать любое значение, не удовлетворяющее условию. Ограничение может быть задано в команде CREATE TABLE для конкретного столбца или группы столбцов. Следует отметить, что данное средство не работает в MS Access. Команда CREATE TABLE с такими ограничениями отвергается в принципе. Формат команды CREATE TABLE с возможными ограничениями имеет вид:
CREATE TABLE имя_таблицы (имя_поля тип_данных [(размер)] [ограничение]… , имя_таблицы (имя_поля тип_данных [(размер)] [ограничение])
Типы ограничений к команде:
NOT NULL – значение поля или полей должно быть обязательно задано
CHECK (условие) – должно быть выполнено условие назначения полей. Если ограничение применяется к значению столбца, то должно использоваться только имя столбца. Если ограничение применяется к таблице, то может использоваться значение всех полей добавляемой записи.
UNIQUE – значение поля или полей в различных таблицах не должны повторяться.
PRIMARY KEY – поле или группа полей объявляются первичным ключом. Эти поля не могут содержать NULL-значений. Значение ключа должно быть уникальным, и таблица должна иметь только один такой ключ.
Пример:
Создать таблицу наиболее успевающих студентов, специализирующихся на кафедре.
CREATE TABLE КАФ_СТУД_ОТЛ (snum char (3) UNIQUE, sname char (30), ball float CHECK (ball >= 4), NOT NULL (snum,sname));
Таблица оценка может быть задана со следующими параметрами:
CREATE TABLE Оценка (opnum char (3) NOT NULL, osnum char (3) NOT NULL, odate char (8) NOT NULL, ocen int CHECK (ocen IN NULL OR ocen >= 2 AND ocen =< 5), PRIMARY KEY (opnum, osnum, odate);
Для каждого поля создаваемой таблицы может быть определено значение по умолчанию, принимаемое, если в команде INSERT INTO не определено значение поля записи/ Для этого в определении поля указывается DEFAULT = значение.
Например:
ball float CHECK (ball >= 4) DEFAULT = 4;
Если параметр DEFAULT не указан, значение по умолчанию является NULL. Если при этом задано ограничение NOT NULL, то значение поля должно быть обязательно определено непосредственно или через DEFAULT.