Представления обновления SQL
Обновить вид
Команда SQL UPDATE VIEW может использоваться для изменения данных представления.
Все виды не обновляются. Таким образом, команда UPDATE применима не ко всем представлениям. Обновляемое представление - это такое, которое позволяет выполнять команду UPDATE над собой, не затрагивая никакую другую таблицу.
Содержание:
- Когда можно обновить вид?
- Синтаксис и параметры
- пример
- Обновляемые представления SQL
- SQL обновляемые представления с использованием оператора IN
- SQL обновляемые представления с агрегатной функцией
- Обновление представлений SQL с арифметическим выражением
- Представления обновления SQL с использованием подзапросов
Когда можно обновить вид?
1 Представление определяется на основе одной и только одной таблицы.
2 Представление должно включать ПЕРВИЧНЫЙ КЛЮЧ таблицы, на основе которой было создано представление.
3 В представлении не должно быть полей, созданных из агрегатных функций.
4 Представление не должно содержать ни одного предложения DISTINCT в своем определении.
5 Представление не должно содержать ни одного предложения GROUP BY или HAVING в своем определении.
6 Представление не должно иметь никаких ПОДПИСЕЙ в своих определениях.
7 Если представление, которое вы хотите обновить, основано на другом представлении, последнее должно быть обновляемым.
8 Ни одно из выбранных выходных полей (представления) не должно использовать константы, строки или выражения значений.
Синтаксис:
ОБНОВЛЕНИЕ <view_name> SET <column1> = <value1>, <column2> = <value2>, ..... ГДЕ <условие>;
Параметры:
название | Описание |
---|---|
view_name | Имя виртуальной таблицы или представления, где данные будут изменены. |
column1, column2 | Наименование столбцов таблицы. |
значение1, значение2 | Значения для столбцов, которые будут обновлены. |
состояние | Состояние или критерии. |
Пример:
Образец представления: просмотр агента
Чтобы обновить представление 'agentview' со следующими условиями -
1. «Комиссия» должна быть установлена на .13 ,
2. «working_area» должно быть «Лондон»,
можно использовать следующий оператор SQL:
Код SQL:
UPDATE agentview
SET commission=.13
WHERE working_area=’London’;
Выход:
Выполнить запрос в этом представлении
Код SQL:
SELECT * FROM agentview;
Обновляемые представления SQL
В следующем разделе мы обсуждаем, как можно обновить представление в операторе UPDATE VIEW.
Пример:
Пример таблицы: агенты
Это утверждение ниже создает обновляемое представление 'countryagent':
Код SQL:
CREATE VIEW countryagent
AS SELECT *
FROM agents
WHERE working_area='Brisban';
Чтобы обновить столбец «комиссия» значением .13 представления «странаагент», можно использовать следующий оператор SQL:
Код SQL:
UPDATE countryagent
SET commission=.13;
Выход:
Выполнить запрос в этом представлении
Код SQL:
SELECT * FROM countryagent;
SQL обновляемые представления с использованием в операторе
В следующем разделе мы обсудим, как оператор SQL IN можно использовать в операторе UPDATE VIEW для обновления данных столбцов в представлении.
Пример:
Пример таблицы: заказы
Это утверждение ниже создает обновляемое представление 'orderindate':
Код SQL:
CREATE VIEW orderindate
AS SELECT agent_code,ord_num,cust_code,advance_amount
FROM orders
WHERE ord_date IN ('15-APR-08','15-Aug-08');
Чтобы обновить представление 'orderindate' со следующими условиями -
1. 'advance_amount' установлен на 2000,
2. 'advance_amount' должно быть 1500,
можно использовать следующий оператор SQL:
Код SQL:
UPDATE orderindate SET advance_amount=2000
WHERE advance_amount=1500;
Выход:
Выполнить запрос в этом представлении
Код SQL:
SELECT * FROM orderindate;
SQL обновляемые представления с агрегатной функцией
Здесь, в следующих темах, мы обсуждаем, что представление не может быть обновлено (с помощью оператора UPDATE VIEW), если какое-либо из полей представления создано с использованием предложения AGGREGATE FUNCTION или GROUP BY.
Пример:
Пример таблицы: заказы
Это утверждение ниже создает представление 'daywiseorder':
Код SQL:
CREATE VIEW daywiseorder(ord_date,ord_count)
AS SELECT ord_date,COUNT(*)
FROM orders
GROUP BY ord_date;
Чтобы обновить представление 'daywiseorder' со следующими условиями -
1. «ord_count» установлен на 2,
2. 'ord_count' должно быть 1,
можно использовать следующий оператор SQL:
Код SQL:
UPDATE daywiseorder SET ord_count=2
WHERE ord_count=1;
Замечания:
Это представление не является обновляемым. Агрегатная функция «COUNT» использовалась в определении представления, поэтому это представление не подлежит обновлению, т.е. «представление» доступно только для чтения.
Выполнить запрос в этом представлении
Код SQL:
SELECT * FROM daywiseorder;
Обновление представлений SQL с арифметическим выражением
В следующих разделах мы обсуждаем, что представление не может быть обновлено (с помощью оператора UPDATE VIEW), если любое из полей представления создано с использованием арифметического выражения.
Пример:
Образец таблицы: клиент
Это утверждение ниже создает представление «myclient»:
Код SQL:
CREATE VIEW myclient(client_name,client_no,outspercent)
AS SELECT cust_name,cust_code
outstanding_amt*100/(opening_amt+receive_amt)
FROM customer
WHERE cust_country='USA'
AND outstanding_amt*100/(opening_amt+receive_amt)>50;
Чтобы обновить представление «myclient» со следующим условием -
1. «превосходящий» установлен на 80,
можно использовать следующий оператор SQL:
Код SQL:
UPDATE myclient SET outspercent=80;
Замечания:
Это представление не является обновляемым. Арифметическое выражение было использовано в определении представления. Таким образом, это представление не может быть обновлено, то есть «представление» доступно только для чтения.
Выполнить запрос в этом представлении
Код SQL:
SELECT * FROM myclient;
Представления обновления SQL с использованием подзапросов
На этой странице мы обсуждаем, что представление не может быть обновлено (с помощью оператора UPDATE VIEW), если любое из полей представления создано с использованием подзапроса.
Пример:
Пример таблицы: заказы
Пример таблицы: агенты
Это утверждение ниже создает представление «myagent»:
Код SQL:
CREATE VIEW myagent>
AS SELECT *
FROM agents
WHERE agent_code IN
(SELECT agent_code
FROM orders
WHERE ord_date='15-AUG-08');
Обновить представление «myagent» следующим условием -
1. «комиссия» установлена в .15,
можно использовать следующий оператор SQL:
Код SQL:
UPDATE myagent SET commission=.15;
Смотрите нашу базу данных моделей
Упражнения по SQL
- Упражнения по SQL, практика, решение
- SQL Получить данные из таблиц [33 Упражнения]
- Булевы и реляционные операторы SQL [12 упражнений]
- Подстановочные знаки SQL и специальные операторы [22 упражнения]
- Агрегатные функции SQL [25 упражнений]
- Вывод запроса форматирования SQL [10 упражнений]
- SQL-запросы к нескольким таблицам [7 упражнений]
- ФИЛЬТРАЦИЯ И СОРТИРОВКА в базе данных персонала [38 упражнений]
- SQL СОЕДИНЯЕТ
- SQL ПОДПИСИ
- SQL Union [9 упражнений]
- SQL View [16 упражнений]
- Управление учетными записями пользователей SQL [16 упражнение]
- База данных фильмов
- ОСНОВНЫЕ запросы к базе данных фильмов [10 упражнений]
- ПОДПИСКИ на фильм База данных [16 упражнений]
- ПРИСОЕДИНЯЕТСЯ к базе данных фильма [24 упражнения]
- Футбольная база
- Вступление
- ОСНОВНЫЕ запросы по футболу базы данных [29 упражнений]
- ПОДПИСКИ по футбольной базе данных [33 упражнения]
- База данных больницы
- База данных сотрудников
- ОСНОВНЫЕ запросы к базе данных сотрудников [115 упражнений]
- БРОНИРОВАНИЕ на сотрудника База данных [77 Упражнения]
- Еще не все!
Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.
Предыдущий: Создать вид с объединением
Далее: Создать индекс
Новый контент: Composer: менеджер зависимостей для PHP , R программирования