Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы Госы_3.doc
Скачиваний:
97
Добавлен:
27.10.2018
Размер:
1.55 Mб
Скачать

39. Изменение содержимого базы данных средствами языка sql.

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

Операция вставки INSERT может быть единичной или групповой.Для единичной вставки необходимо явным образом определить значение колонок новой строки. Если указан неполный перечень колонок таблицы. то что остались колонки получают неопределенное значение (NULL).

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

Операция удаления DELETE групповая, тобтозастосовується ко всем строкам таблицы, которая удовлетворяет необходимым условиям. В отличие от запис-орієнтованих словно манипулирование данными, SQL не использует понятия текущей строки в таблице, допуская. что любая строка может быть однозначно идентифицирована в таблице с помощью значения первичного ключа. Если условие отсутствует, то удаляются все строки таблицы. Условие может использовать функцию проверки вхождения значения в некоторую другую таблицу, заданную с помощью SELECT -конструкції.

Операция обновления значений в строках таблицы UPDATE также групповая. Условие определяет, к каким строкам нужно применить операцию обновления. В условия, аналогично DELETE, можно использовать SELECT -конструкції.

В SQL большое внимание уделяется обеспечению целостности данных при выполнении операций обновления данных. Предвиденная возможность учета специальных ограничений целостности. Любые операции, которые нарушают такие ограничения, отклоняются.

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

Такого рода ограничения целостности определяются при создании отдельных таблиц и определении структуры базы данных.

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

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

40. Идентификаторы языка sql

Идентификаторы языка SQL предназначены для обозначения объектов в базе данных и являются именами таблиц, представлений, столбцов и других объектов базы данных. Символы, которые могут использоваться в создаваемых пользователем идентификаторах языка SQL, должны быть определены как набор символов. Стандарт SQL задает набор символов, который используется по умолчанию, - он включает малые и большие буквы латинского алфавита (AZ, az), цифры (0-9) и символ подчеркивания (_).

На формат идентификатора накладываются следующие ограничения: 1) идентификатор может иметь длину до 128 символов; 2) идентификатор должен начинаться с буквы; 3) идентификатор не может содержать пробіли.

Заключенный в кавычки идентификатор - это любая последовательность символов, заключенная в квадратные скобки ([]). Заключенные в кавычки идентификаторы позволяют задавать идентификаторы с символами, которые нельзя использовать в простых идентификаторах. Все символы внутри квадратных скобок становятся частью идентификатора, включая все пробелы.

Заключенный в кавычки идентификатор не может содержать следующие символы.

Перевод строки. Табуляция. Возвращение на одну позицию тома. Дополнительные квадратные скобки (то есть квадратные скобки внутри квадратных скобок, которые выделяют идентификатор).

Заключенный в кавычки идентификатор может содержать символы Юнікоду.

Заключенные в кавычки идентификаторы позволяют создавать символы для имен свойств, которые нельзя использовать в простых идентификаторах, : SELECT c.ContactName AS [Contact Name] FROM customers AS c

Заключенные в кавычки идентификаторы можно также использовать, чтобы задавать идентификаторы, которые являются зарезервированными ключевыми словами Entity SQL. Например, если в типа Email есть свойство "From", то с помощью квадратных скобок его можно отличить от зарезервированного ключевого слова FROM следующим образом: SELECT e. [From] FROM emails AS e

Заключенный в кавычки идентификатор можно использовать в правой части оператора "точка" (.).

SELECT t FROM ts as t WHERE t. [property] == 2

Чтобы использовать в идентификаторе квадратную скобку, добавляйте дополнительную квадратную скобку. В следующем примере "abc]" является идентификатором. SELECT t from ts as t WHERE t. [abc]]] == 2