Запит на оновлення (UPDATE ). Застосування підзапитів в запиті на оновлення
Для зміни значень в групі записів або в одному записі вказаної таблиці застосовується оператор UPDATE . Формат оператору: <оператор_зміни> ::= UPDATE ім'я_таблиці SET ім'я_стовпця = <вираз>[,...n]|<значення >[,...n] WHERE <умова_відбору>]; Параметр ім'я_таблиці є або іменем таблиці бази даних, або іменем оновлюваного представлення. В реченні SET вказують імена одного і більше стовпців, дані в яких необхідно змінити. Значення - нове значення відповідного стовпця, сумісне з ним за типом даних Значення – стовпець | вираз | константа | змінна; може включати стовпці лише з обновлюваної таблиці, тобто може приймати значення одного зі стовпців таблиці, що модифікується; може замінятися на значення її іншого стовпця чи виразу, що містить значення кількох її стовпців зі змінюваним включно Речення WHERE є необов'язковим. Якщо воно опущене, значення вказаних стовпців будуть змінені у всіх рядках таблиці. Якщо речення WHERE присутнє, то оновлені будуть лише ті рядки, які задовольняють умові відбору. Виразом є нове значення відповідного стовпця; воно має бути сумісне з ним за типом даних. Приклад.Подвоїти ціну всіх товарів у таблиці Товар. UPDATEТоварSETТовар.Ціна = Ціна * 2; ФразаWHERE дозволяє скоротити число оновлюваних рядків, вказуючи умови їхнього відбору. Якщо задане ключове слово WHERE і умова, то команда UPDATE застосовується тільки до тих записів, для яких вона виконується Як умову використовують логічні вирази над константами і полями. В умовах допускаються: - операції порівняння: > , < , >= , <= , = , <>, які можуть застосовуватися не лише до числових значень, але і до текстів і дат ( "<" означає раніше, а ">" пізніше за абеткою чи часом); - операції перевірки поля на значення NULL: IS NULL, IS NOT NULL; - операції перевірки на входження в діапазон: BETWEEN і NOT BETWEEN; - операції перевірки на входження в список: IN і NOT IN; - операції перевірки на входження підрядка: LIKE і NOT LIKE; - окремі операції з'єднуються зв'язками AND, OR, NOT і групуються за допомогою дужок. Приклад.Збільшити ціну товарів першого сорту на 25%. UPDATEТовар SETТовар.Ціна=Товар.Ціна*1.25 WHEREТовар.Сорт=‘Перший’; За допомогою умовиWHEREможна забезпечити оновлення одного запиту у таблиці. Приклад.Змінити назву товару «Корона Люкс» на «Корона – Солодке задоволення» встановити значення ціни 14 грн, міста і залишку – невизначене. UPDATEТовар SETТовар.Назва =‘Корона – Солодке задоволення’ Товар.Ціна=14, Товар.Залишок=Null, Товар.МістоТовару= Null WHEREТовар.Назва = ‘Корона Люкс ’; Застосування підзапитів в операторі оновлення дає змогу оновлювати значення стовпців однієї таблиці за значеннями стовпців з інших таблиць або іншої копії тої самої таблиці. Підзапити використовуються як елементи умови WHERE, так само, як у нетривіальних запитах Приклад. У угоді з максимальною кількістю товару збільшити число товарів на 10% UPDATEУгода SETУгода.Кількість = Угода.Кількість*1.1 WHEREУгода.Кількість = (SELECTMax(Угода1.Кількість) FROMУгода AS Угода1); Конструкція підзапитів така сама, як при застосуванні у основному запиті оператора вибірки. Якщо в фразі WHERE речень DELETE і UPDATE використовується вкладений підзапит, то у фразі FROM цього підзапиту не бажано згадувати таблицю, з якої видаляються / у якій оновлюються рядки. Аналогічно, у підзапиті речення INSERT не бажано згадувати таблицю, у яку завантажуються дані. Використання тої самої таблиці у запиті і підзапиті допустиме, якщо це не порушує цілісності даних
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|