Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БАЗЫ ДАННЫХ.docx
Скачиваний:
11
Добавлен:
16.11.2018
Размер:
41.16 Кб
Скачать

Элементы языка sql и запросы в форме sql

SEQUEL (Structured English Query Language)

Почти с самого начала являлся полным языком БД обеспечивающим по мимо средств формулирования запросов и манипулирования БД следующие возможности:

  1. средства определения и манипулирования схемой БД

2) средства ограничения целостностей и триггеров

3) средства определения представлений БД

4) средства определения структур физического уровня поддерживающих эффективного выполнения загрузки.

5) средства авторизации доступа к отношению и их порядку

6) средства определения точек сохранения транзакции и выполнение фиксации и откатов транзакции.

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

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

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

Индекс1,индекс2 – директивы создания простого индекса

Составной индекс – директивы создания составного индекса

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

CONSRAINT имя индекса {PRIMARY KEY|UNIQUE|REFERENCES внешняя таблица [(внешнее поле)]}

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

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

Unique – Уникальный индекс

Primary key – первичный ключ таблицы который может состоять из нескольких полей

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

Reference – ссылка на внешнюю таблицу

CREATE TABLE студент

([имя] text, [фамилия] text, [дата рождения] DATETIME

CONSRAINT Адр UNIQUE ([имя]), [фамилия], [дата рождения])

В результате выполнения данного запроса будет собрана таблица студент имеющая 2 текстовых поля (имя фамилия), одно поле дата/время (дата рождения) и составной индекс со значениям указанным полей.

Изменения структуры таблицы

При необходимости можно изменить структуру таблицы

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

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

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

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

ALTER TABLE таблица

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

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

Constraint - Подобное действие означает добавления индекса в таблицу

Пример на изменения структуры таблицы:

Add table студент add column [группа] text(5)

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

Create [unique] index индекс

On таблица (поле [,…])[with{primary | disallow null | ignore null}]

Create index гр on студент ([группа]) with disallow null

Удаление таблицы:

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

Drop table имя таблицы

Drop table студент

Для удаления только индекса (сами данные не разрушаются):

Drop index имя индекса on имя таблицы

Адр.

Drop index Адр on студент

Вод данных в таблицу

Формирование новой записи в таблицы выполняется следующей командой

Insert into таблица [(поле1[,поле2[,…]])] values (значение1[,…])

В этом случае сначала выполняется оператор код запроса select который формирует выборку для сортировки данных.

Фраза select определяет структуру данных источника передаваемых записей – имена таблиц и полей содержащих исходные данные для загрузки в таблицу.

Оператор from позволяет указать имена исходных таблиц участвующих в формирование выборки, а фраза where задает условие выполнения подзапроса. При этом структура данных выборки должна соответствовать структуре данных таблицы в которую производиться добавление. Добавление (перезагрузка) возможно и во внешнюю базу данных для которой указывается полностью специфицированное имя. (диск, каталог, расширение) при этом структуры таблиц должны совпадать.

Insert into студент select [студент-заочник].*from [студент-заочник]

Insert into студент select [студент-заочник].*from [студент-заочник] where [дата рождения] >=#01/01/800#