Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
343
Добавлен:
02.04.2015
Размер:
493.06 Кб
Скачать

Модификация структуры таблицы

Модификация структуры таблицы (добавление или удаление поля) осуществляется инструкцией ALTERTABLE, синтаксис которой описывается так:

ALTERTABLEтаблица {ADD{COLUMNполе тип[(размер)] [NOTNULL]

[CONSTRAINTиндекс] |CONSTRAINTсоставнойИндекс} |

DROP{COLUMNполеICONSTRAINTимяИндекса} }

Где ADD– добавить,DROP– удалить,COLUMN– поле.

Пример 32.Добавить в таблицуСотрудникиновое текстовое полеадрес размером 30 символов можно запросом:

ALTER TABLE Сотрудники ADD COLUMN адрес text (30);

Создание индекса

Создать индекс можно другим способом с помощью инструкции CREATEINDEX, синтаксис которой такой:

CREATE [ UNIQUE ] INDEX индекс

ON таблица (поле [ASC|DESC][, поле [ASC|DESC], ...])

[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]

Чтобы запретить совпадение значений индексированных полей в разных записях, используйте зарезервированное слово UNIQUE.

Необязательное предложение WITHпозволяет задать условия на значения. Например:

  • С помощью параметра DISALLOWNULLзапретить значенияNullв индексированных полях новых записей.

  • С помощью параметра IGNORENULLзапретить включение в индекс записей, имеющих значенияNullв индексированных полях.

  • С помощью зарезервированного слова PRIMARYназначить индексированные поля первичным ключом. Такой индекс по умолчанию является уникальным, следовательно, зарезервированное словоUNIQUEможно опустить.

Пример 33.Создать индекс (первичный ключ) по имениaaaдля поляномерв таблицеСотрудники.

CREATE INDEX aaa ON сотрудники (номер) WITH PRIMARY;

Удаление таблицы или индекса

Синтаксис оператора:

DROP{TABLEтаблица|INDEXиндексONтаблица}

Пример 34.Удалить индекс, созданный в примере 33.

DROP INDEX aaa ON сотрудники;

Нельзя добавлять или удалять одновременно более одного поля или индекса.

Объединение запросов

Запрос на объединение объединяет результаты нескольких независимых запросов или таблиц.

Синтаксис:

[TABLE] запрос_1 UNION [ALL] [TABLE] запрос_2 [UNION [ALL] [TABLE]

запрос_n [ ... ]]

где

запрос_1-n- инструкцияSELECT, имя сохраненного запроса или имя сохраненной таблицы, перед которым стоит зарезервированное словоTABLE.

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

Все запросы, включенные в операцию UNION, должны отбиратьодинаковое число полей; при этом типы данных и размеры полей не обязаны совпадать.

Используйте псевдонимы только в первом предложении SELECT, потому что в остальных они пропускаются. В предложенииORDER BYссылайтесь на поля по их названиям в первом предложенииSELECT.

Примечания

· В каждом аргументе запрос допускается использование предложения GROUPBYилиHAVINGдля группировки возвращаемых данных.

· В конец последнего аргумента запрос можно включить предложение ORDERBY, чтобы отсортировать возвращенные данные.

Пример 35.Выдать номера деталей, цена которых больше 200, а также номера деталей, поставляемых в количестве более 100. Это можно сделать запросом:

SELECT детали.номерд

FROM детали

WHERE (((детали.цена)>200))

UNION

SELECT поставки.номерд

FROM поставки

WHERE (((поставки.кол)>100));

Соседние файлы в папке Материалы для лабораторных Базы данных