Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
dbbook(2010.04.15).pdf
Скачиваний:
51
Добавлен:
09.06.2015
Размер:
2.14 Mб
Скачать

декса используется его уточненное имя.

После создания индекса он является самостоятельным объектом базы данных. Когда пользователь выполняет обращающийся к индексированному столбцу запрос, СУБД автоматически анализирует индекс для поиска требуемых значений.

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

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

3.5. Модификация базовых отношений

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

3.5.1. Вставка строк

Для вставки строк в существующую таблицу используется оператор insert в одной из следующих форм 1-3:

insert into имя_таблицы(имя_столбца,..)

оператор_select

insert into имя_таблицы(имя_столбца,..) values({default | null | выражение},..)

insert into имя_таблицы default values

Примечание. В языке SQL список имен столбцов в формах 1, 2 не является обязательным. Если он не указан, оператор insert должен включать значения для всех не автоматически вычисляемых столбцов в таблице, а порядок их должен соответствовать порядку столбцов в таблице. Но это очень плохой стиль программирования, так как оператор вставки становится зависимым от порядка объявления атрибутов в операторе создания таблицы. Имена столбцов лучше указывать явно

Вформе 1 в таблицу вставляется набор строк, возвращаемый оператором select.

Вформе 2 в таблицу вставляется единственная строка. Вместо указания явного значения столбца для этой строки в виде выражения могут использоваться ключевые слова default или null для вставки значений по умолчанию или null-значений соответственно. Выражение в качестве значения столбца не может содержать оператор select.

Вформе 3 в таблицу вставляется единственная строка, состоящая из значений по умолчанию. Вставка значения по умолчанию подменяется на вставку null-значения, если значение по умолчанию явно не задано. Вставка строки с null-значениями пройдет успешно, если только null-значения допустимы для соответствующих столбцов.

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

кпредставлениям оператор insert должен сводиться к вставке строки или строк лишь в одну из

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

3.5.2. Обновление строк

Оператор обновления update позволяет изменять значения в нескольких строках таблицы:

update имя_таблицы

set {имя_столбца = новое_значение},.. [where условие]

Подобно оператору вставки insert, один оператор обновления update может модифицировать только одну таблицу или одно представление. За ключевым словом set следует перечень имен подлежащих обновлению столбцов с указанием их новых значений. Новое значение может быть константой или выражением, которое также может ссылаться на сам столбец. Например, следующий оператор будет уменьшать значения в столбце Цена на 10%:

update Товары

set Цена = Цена * 0.90

Фраза where не является обязательной. Если она указана, то должна задавать строки, подлежащие обновлению. Если фраза where отсутствует, то будут обновляться все строки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]