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

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

  Добавление атрибута

ALTER TABLE <имя_таблицы> ADD               (<имя_столбца> <тип_столбца           [NOT NULL]            [UNIQUE | PRIMARY KEY]            ,...)

Удаление атрибута

ALTER TABLE <имя_таблицы> DROP (<имя_столбца>,...)

Модификация типа данных атрибута

ALTER TABLE <имя_таблицы> MODIFY              (<имя_столбца> <тип_столбца>            [NOT NULL]            [UNIQUE | PRIMARY KEY]             ,...)

 

Предложения модификации данных средствами sql Предложение delete имеет формат

DELETE

FROM базовая таблица | представление

[WHERE фраза];

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

Предложение INSERT имеет один из следующих форматов:

INSERT

Into {базовая таблица | представление} [(столбец [,столбец] ...)]

Values ({константа | переменная} [,{константа | переменная}] ...);

или

INSERT

Into {базовая таблица | представление} [(столбец [,столбец] ...)]

подзапрос;

Отличие заключается в том, что во втором случае сначала выполняется подзапрос(в памяти формируется рабочая таблица), а потом заполняется таблица.

Предложение UPDATE :

UPDATE (базовая таблица | представление}

SET столбец = значение [, столбец = значение] ...

[WHERE фраза]

При отсутствии WHERE фразы обновляются значения указанных столбцов во всех строках модифицируемой таблицы. WHERE фраза позволяет сократить число обновляемых строк, указывая условия их отбора.

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

Ddl: Операторы создания/удаления индексов.

Создание индекса (PgSQL):

CREATE [UNIQUE] INDEX <имя_индекса> ON <имя_таблицы> (<имя_столбца>,...)

Наличие индекса по заданному атрибуту (совокупности атрибутов):

  • Существенно ускоряет процессы поиска и выборки кортежей, релевантных запросу

  • Усложняет / замедляет операции вставки и обновления атрибутов кортежей

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

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

Удаление индекса:

       DROP INDEX <имя_индекса>

DDL. Виртуальные таблицы (представления). Создание и уничтожение представлений.

Основные задачи:

1) Обеспечение независимости пользовательских программ от изменения логической структуры базы данных при ее расширении и (или) изменении столбцов.

2) Представления дают возможность различным пользователям по-разному видеть одни и те же данные (возможно, даже в одно и то же время).

3) От определенных пользователей могут быть скрыты некоторые данные, невидимые через предложенное им представление.

Создание / удаление представлений

Представление - это виртуальная таблица, которая не существует на уровне среды хранения СУБД, но для пользователя выглядит доступной при выполнении SQL-запросов определенных типов.

Синтаксис предложения CREATE VIEW:

CREATE VIEW < имя_представления >

[(столбец[,столбец] ...)]

( AS < SELECT-подзапрос >

[WITH CHECK OPTION] );

где подзапрос, следующий за AS и являющийся определением данного представления, не исполняется, а просто сохраняется в каталоге;

"WITH CHECK OPTION" (с проверкой) указывает, что для операций INSERT и UPDATE над этим представлением должна осуществляться проверка, обеспечивающая удовлетворение WHERE фразы подзапроса;

Пример: Cоздадим представление S1 из отношения S

CREATE VIEW S1

( AS SELECT Стоимость Подрядчик

FROM S

WHERE Стоимость > $100 000 );

Уничтожение ненужных представлений выполняется с помощью предложения DROP VIEW (уничтожить представление), имеющего следующий формат:

DROP VIEW < представление >;