История развития баз данных. Основные понятия и определения. Архитектура базы данных. Физическая и логическая независимость, страница 21

snum

avg

001

5

002

4

003

3

В этом запросе, в отличие от запроса INSERTINTO таблицу Средний балл не нужно предварительно создавать.

Другим способом создания таблиц является использование команд ЯОД. В MS Access эти команды определены в режиме SQL, но не имеют аналогов в конструкторе запросов. Это уменьшает гибкость использования SQL, т.к. требует предварительного определения всех временно создаваемых таблиц. Формат этой команды имеет следующий вид:

CREATETABLE имя_таблицы (имя_поля тип_данных [(размер)], … имя_поля тип_данных [(размер)]);

Каждая таблица должна содержать хотя бы один столбец, т.к. пробелы используются для разделения параметров, а имена полей не могут содержать пробелы (в MS Acces пробелы возможны, но не рекомендуются).

Типы данных для различных программных средств значительно отличаются, однако в целях совместимости со стандартом всегда поддерживают стандартные ANSI типы данных. К ним относятся:

  1. char (размер) – символьные данные (размер по умолчанию равен 1);
  2. long  – целое (4 байта);
  3. real– с плавающей точкой (4 байта);
  4. numeric, float - с плавающей точкой (8 байта);

Пример:

Создать таблицу о среднем балле студента.

CREATE TABLE Средбалл (snum char (3), avg real]);

Структуру таблицы существующей можно изменить по команде ALTERTABLE. Эта команда не является частью стандарта ANSI, но присутствует практически во всех реализациях SQL. Формат команды имеет следующий вид:

ALTER TABLE имя_таблицы

ADD (column) имя_поля тип_данных [размер];

Пример:

Добавить в таблицу Средний балл фамилию студента.

ALTER TABLE Средбалл

ADD sname char (30);

Для удаления столбца используется следующая команда:

ALTER TABLE имя_таблицыDROP [COLUMN] имя_поля;

Пример:

ALTER TABLE СредбаллDROP sname;

Для уничтожения таблицы используется запрос, имеющий следующий формат:

DROPTABLE имя_таблицы;

Пример:

Удалить таблицу Средний балл:

DROPTABLE Средбалл;

В некоторых системах могут удаляться только пустые таблицы, но в MS Access даже заполненная таблица удаляется без всякого предупреждения.

Когда создаётся таблица можно определить ограничения назначения, которые вводятся в поля, и SQL будет отвергать любое значение, не удовлетворяющее условию. Ограничение может быть задано в команде CREATETABLE для конкретного столбца или группы столбцов. Следует отметить, что данное средство не работает в MS Access. Команда CREATETABLEс такими ограничениями отвергается в принципе. Формат команды CREATETABLE с возможными ограничениями имеет вид:

CREATETABLE имя_таблицы (имя_поля тип_данных [(размер)] [ограничение]… , имя_таблицы (имя_поля тип_данных [(размер)] [ограничение])

Типы ограничений к команде:

  1. NOTNULL – значение поля или полей должно быть обязательно задано
  2. CHECK (условие) – должно быть выполнено условие назначения полей. Если ограничение применяется к значению столбца, то должно использоваться только имя столбца. Если ограничение применяется к таблице, то может использоваться значение всех полей добавляемой записи.
  3. UNIQUE – значение поля или полей в различных таблицах не должны повторяться.
  4. PRIMARYKEY – поле или группа полей объявляются первичным ключом. Эти поля не могут содержать 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);