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

13. Операторы обновления данных sql.

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

UPDATE <имя таблицы>     SET {имя столбца = {выражение для вычисления значения столбца      | NULL      | DEFAULT},...}      [ {WHERE <предикат>}];

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

Если столбец допускает NULL-значение, то его можно указать в явном виде. Кроме того, можно заменить имеющееся значение на значение по умолчанию (DEFAULT) для данного столбца.

Оператор UPDATE очень прост в использовании, он состоит из трех основных частей:

     •     имени таблицы, подлежащей обновлению;

     •     имен столбцов и их новых значений;

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

Для обновления нескольких столбцов используется только одна команда SET, и каждая пара столбец-значение отделяется от другой запятой (после имени последнего столбца запятая не ставится). Если требуется изменять данные в зависимости от содержимого некоторого столбца, можно воспользоваться выражением CASE. Если, скажем, нужно поставить жесткие диски объемом 20 Гб на ПК-блокноты с памятью менее 128 Мб и 40 гигабайтные - на остальные ПК-блокноты, то можно написать такой запрос:

UPDATE Laptop     SET hd = CASE WHEN ram<128 THEN 20 ELSE 40 END

14.Подсхемы пользователя как способ защиты данных и их реализация в sql.

Отдельное логическое представление данных для каждого пользователя называется внешней моделью данных или пользовательским представлением.Так, сотрудник, оформляющий заказы, работает с представлением, в котором основой является заказ и пункты заказа. Сотрудник, занимающийся работой с клиентами, должен иметь полную информацию о клиентах и их заказах. Его может интересовать, например, с какой частотой осуществляет заказы тот или иной клиент, его предпочтения и т.д. Руководитель отдела маркетинга должен работать с представлением, в котором в виде сводок представлена вся маркетинговая деятельность компании (товары, поставщики, клиенты, заказы, продажи) и имеется возможность проводить анализ этой деятельности.Использование подсхем облегчает работу пользователя, так как он должен знать структуру только своей части БД.Безопасность же обеспечивается тем, что данная подсхема имеет ограниченное «поле видимости» - имея доступ к одной подсхеме, нельзя изменить данные другой подсхемы, равно как и целой БД.

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

В стандартной SQL определены два оператора GRANT и REVOKE соответственно предоставление и отмены привелегий.Они имеют следующий формат:

GRANT {< список действий | ALL PRIVILEGES}

DN < имя_объекта > TO ( < имя_пользователя > ) PUBLIC}

{WITH GRANT OPTION}

Здесь список действий определит набор действий из общедопустимого перечня действий над объектом данного типа. ALL PRIVILEGES- разрешены все действия из допустимых для объектом данного типа.

< имя_объекта >-задает имя конкретного объекта таблицы, представлений и т.д.

< имя_пользователя > или PUBLIC определяет, кому предоставляются данные привилегии.

Для отмены ранее назначенных привилегий в стандарте SQL определен оператор REVOKE.Оператор отмены привилегий имеет следующий синтаксис:

REVOKE { < список операций | ALL PRIVILEGES} ON < имя_объекта >

FROM { < список_пользователей | PUBLIC} CASCADE | RESTRICT}

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