Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава19.docx
Скачиваний:
3
Добавлен:
25.08.2019
Размер:
2.42 Mб
Скачать

19.3. Реляционные языки манипулирования данными

731

Некоторые версии языка QBE позволяют создать набор {множество) значений ука­занного поля одной таблицы, по отношению к которому проверяются значения поля другой таблицы. Операции сравнения выполняются на уровне множества значений поля с по­мощью сравнения наборов:

ONLY — второй набор — подмножество первого,

N0 — наборы не совпадают,

EVERY — первый набор — подмножество второго,

EXACTLY — наборы совпадают.

Первый набор формируется с помощью ключевого слова SET.

Пример 19.59. Получить сведения о студентах, которые имеют такие же результаты, что и студент с зачетной книжкой 123456

В ряде СУБД кроме выборки записей возможны операции включения новых записей (INSERT), удаления записей (DELETE) или групповой корректировки выбранных записей (CHANGETO).

ОСНОВНЫЕ ХАРАКТЕРИСТИКИ ЯЗЫКА SQL

Краткая характеристика языка SQL

SQL (Structured Query Language) — это язык программирования, который используется при работе с реляционными базами данных в современных СУБД (ORACLE, dBASE IY, dBASE Y, Paradox, Access и др.).

Язык SQL стал стандартом языков запросов для работы с реляционными базами данных для архитектуры как файл-сервер, так и клиент-сервер, а также в условиях приме­нения системы управления распределенными базами данных. SQL использует ограничен­ный набор команд, но в то же время — это реляционно полный язык, предназначенный для работы с базами данных, создания запросов выборки данных, выполнения вычислений, обеспечения их целостности. Синтаксис версий языка SQL может в определенной степени различаться для отдельных СУБД. Рассмотрим наиболее общие операторы языка SQL.

Операторы языка SQL для работы с реляционной базой данных

1. Создание реляционных таблиц. Создание реляционной базы данных означает спе­цификацию состава полей: указание имени, типа и длины каждого поля (если это необхо­димо). Каждая таблица имеет уникальное имя.

Синтаксис оператора создания новой таблицы:

CREATE TABLE таблица (поле 1 тип [(размер)] [индекс 1]

[, поле2 тип [(размер)] [индекс2] [,...]] [, составной_индекс [,...]]) где таблица — имя создаваемой таблицы;

поле1, поле2 — имена полей таблицы;

тип — тип поля;

т.

732 Глава 19. Инструментальные средства пользователя в среде microsoft office

■•I

I

размер — размер текстового поля;

индекс!, индекс! — директивы создания простых индексов (по отдельному полю);

составной^индекс — директива создания составного индекса.

Каждый индекс имеет уникальное в пределах данной таблицы имя.

Для создания простого индекса используется фраза (помещается за именем поля):

CONSTRAINT имя_индекса {PRIMARY KEY | UNIQUE |

REFERENCES внешняя_таблица [(внешнее_поле)]}

Директива создания составного индекса (помещается в любом месте после определе­ния его элементов):

CONSTRAINT имя {PRIMARY KEY (ключевоеЦ, ключевое2 [, ...]]) | UNIQUE (уникальное 1[, уникальное [, ...]]) | FOREIGN KEY (ссылкаЦ, ссылка2 [, ...]]) REFERENCES внешняя_таблица [(внешнее_поле1 [, внешнее_поле2 [,...]])]}

Служебные слова:

UNIQUE — уникальный индекс (в таблице не может быть двух записей, имеющих одно и то же значение полей, входящих в индекс);

PRIMARY KEY — первичный ключ таблицы (может состоять из нескольких полей; упорядочивает записи таблицы);

FOREIGN KEY — внешний ключ для связи с другими таблицами (может состоять из нескольких полей);

REFERENCES — ссылка на внешнюю таблицу.

Пример 19.60.

CREATE TABLE Студент

([Имя] TEXT,

[Фамилия] TEXT,

[Дата рождения] DATETIME,

CONSTRAINT Адр UNIQUE ([Имя], [Фамилия], [Дата рождения]))

Будет создана таблица СТУДЕНТ, в составе которой:

два текстовых поля: Имя, Фамилия,

одно поле типа дата/время —Дата рождения.

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

2. Изменение структуры таблиц. При необходимости можно выполнить реструкту­ризацию таблицы:

удалить существующие поля,

добавить новые поля,

создать или удалить индексы.

Все указанные действия затрагивают одновременно только одно поле или один индекс:

ALTER TABLE таблица

ADD {[COLUMN] поле тип[(размер)] [CONSTRAINT индекс] |

CONSTRAINT составной __индекс) \

DROP {[COLUMN] поле i CONSTRAINT имя_индекса} }