Обновление данных в таблицах SQL – одна из базовых операций, с которой предстоит столкнуться пользователю при работе с СУБД MySQL. В качестве обновления (update) подразумевается изменение значений в ранее созданных и на текущий момент существующих записях таблицы. Возможно несколько вариантов реализации:
- изменение значений полей в группе строк;
- корректировка поля для отдельной строчки.
Чтобы уметь работать с облачными и локальными базами данных, пользователям необходимо изучить синтаксис SQL-команд. Далее предстоит рассмотреть основы обновления данных в заданной таблице. Необходимо изучить различные варианты применения update в MySQL. Эта информация будет особо полезна новичкам, но и опытным пользователям она тоже пригодится.
SQL и MySQL
Перед изучением табличных обновлений необходимо понять, что собой представляют MySQL и SQL. Связано это с тем, что новички не всегда знают, с чем им предстоит работать.
SQL – язык запросов. Стандарт для работы с таблицами в базах данных. Его можно использовать не только для обновления, но и для других операций. Примеры – выборка, удаление. Язык структурированных запросов позволяет работать с большим объемом информации. Происходят соответствующие операции в специальных средах. Они называются «системы управления БД».
MySQL – это и есть СУБД. Представляет собой свободную реляционную систему управления БД. Это – наиболее распространенный продукт для малого и среднего бизнеса. В основном используется в качестве отдельного сервера. К нему обращаются локальные и удаленные клиенты.
В официальный дистрибутив MySQL включена собственная библиотека для работы внутреннего сервера. Вместе с ней удастся подключать к СУБД автономные приложения и программы.
Задачи SQL
Задачами SQL-запросов (queries) являются такие операции как:
- Извлечение запрашиваемых сведений из ячеек таблиц баз данных. Происходит это через запрос, отправляемый пользователем.
- Операции с данными. Сюда можно отнести добавление новых компонентов в таблицу, обновление, удаление, сортировку.
- Идентификация информации из БД. Речь идет об определении отдельно взятых компонентов. Пример – числа в тесте используются в качестве целых чисел для дальнейшей обработки.
- Управление имеющимися информационными таблицами.
- Защита и шифрование таблиц.
Синтаксис SQL делится на несколько частей: для решение семантических задач, для непосредственной организации управления информацией в БД и для выдачи пользователям прав на отдельные единицы данных.
Форма записи обновления
Далее предстоит рассмотреть особенности обновления данных при помощи SQL запросов. Для этого нужно изучить специальный оператор, а также форму его представления.
Ключевой оператор обновления в SQL – update. Обновить таблицу удастся последовательно от первой до последней строчки по порядку. В зависимости от типа обновления в MySQL нужно выделить два синтаксиса для update в SQL. Первый вариант используется для работы с одной таблицей, второй – для нескольких.
Одна таблица
В случае, когда необходимо обновить информацию в одной таблице, рекомендуется использовать следующую форму записи:
Обязательным параметром здесь служит только SET assignment_list. Он указывает на то, какие столбцы нужно изменить, а также способ внесения изменений.
К необязательным параметрам в операторе update относят:
- Low_Priority. Если он указан, то обновление будет отложено до тех пор, пока другой клиент не решит посмотреть информацию в таблице.
- Ignore – сценарий, который не прерывает выполнение update from даже при возникновении ошибок. Если появляются дубликаты в столбце с уникальным ключом, то строки не обновляются.
- Where where_condition – оператор, задающий условия обновления данных. Если здесь нет никаких параметров, update будет применяться для всех строк в указанной таблице.
- Order by. Этим выражением устанавливается сортировка. Строки будут обновляться в заданном порядке.
- Limit row_count – ограничение на количество обновляемых strings. Считаться будут все строки, попадающие под условие were, независимо от факта внесения в них тех или иных изменений.
Это – базовая форма представления оператора update в MySQL. Она применяется только для одной таблицы.
Несколько таблиц
Если же их несколько, при работе с Microsoft SQL Server будет использоваться другая форма записи. Ее syntax выглядит так:
Table references – список tables, с которыми будет применяться update set where/select. Изменения осуществляются так, как написано в assignment_list.
Limit и Order by при желании обновить данные сразу в нескольких таблицах, нельзя. Остальные параметры (where, ignore и low_priority) не являются обязательными. Они работают точно также, как и в случае с одной табличкой БД.
Подготовка примера
Чтобы понять принцип функционирования select from update в MySQL Server, предстоит рассмотреть возможные операции на наглядных примерах (examples). Они будут базироваться на заранее подготовленной БД. Она включает в себя информацию о книжном магазине. Поддерживает несколько табличных хранилищ:
- писатели;
- жанры;
- книги;
- покупки.
Сначала необходимо воспользоваться операторами create table, а также insert into. Они помогут создать author, genre, book и sales.
Получится таблица book:
Здесь такие столбцы:
- book_id – уникальный идентификатор для каждой книжки;
- title – название;
- author_id – идентификатор автора (внешний ключ);
- genre_id – жанр (внешний ключ);
- price – стоимость одного книжного экземпляра;
- amount – количество книжек на складе.
Таблицы genres и author:
А так выглядит sales:
В ней каждая колонка отвечает соответственно за следующие параметры:
- id – уникальный идентификатор;
- book_id – идентификатор книги из таблицы book (внешний ключ);
- count – сколько книг были куплены;
- cost – общая стоимость.
На основе этих таблиц предстоит рассматривать различные варианты использования запросов update в MS Server.
Все строки
Update служит условием обновления всей заданной базы. Для этого его необходимо использовать без параметра where. Пример – в книжном магазине организована акция типа «все за 500». Для отображения этой ситуации у всех книг должна быть фиксированная цена на отметке 500 рублей:
Выглядит это так:
Если попытаться присвоить значения столбца, которые уже находятся в нем, в MySQL ничего не произойдет. Система заметит это и проигнорирует.
При попытке использования значения NULL столбцу, при создании которого было указано NOT NULL, запрос вернет ошибку:
При указании параметра ignore в команде update значение будет изменено на значение по умолчанию. Оно у каждого типа устанавливается свое:
- 0 – для числовых;
- «» — для символьных;
- «нулевое» — для дат.
Это – только один вариант использования update. Он является наиболее простым.
Строки с условием
Изменение строки (string) обычно используется относительно конкретного поля. Полностью обновлять данные в БД требуется крайне редко.
Для изменения записей для одного или нескольких полей команда update используется при условии where. Пример – распродажа книг, который осталось менее 5 штук. Для этого используется такая команда:
Результат обновленной таблички (updated table):
Здесь хорошо заметны изменения. Они вступили относительно Dead Souls и Iliad.
Значения с выражением
Следующий вариант применения update set select – это обновление с заданным выражением. Пример – в магазине проводится акция. Она распространяется на книги русских писателей. Скидка составит 15%.
Для реализации задачи необходимо использовать запрос (query) такого типа:
Результат:
Здесь:
- В таблице имеются всего два русский писателя. Они имеют ID 1 и 3.
- Обновление значений в заданном образце происходит в определенном порядке – слева направо.
Такой запрос сначала увеличит значение amount на единицу, а после – удвоит его:
Теперь ясно, как организовывать update таблицы SQL с условием-выражением.
С Default
Значение строк (records) может быть изменено на значение по умолчанию. Оно будет задаваться при создании или изменении tables. Чтобы выяснить, какие значения в табличке используются по умолчанию, необходимо выполнить специальную команду. Ей служит запрос:
На экране появится такой результат:
Теперь необходимо заменить значения каждого поля amount на DEFAULT. В этом поможет запись update set select:
Изучаемая команда может применяться иначе. Пример – сразу для нескольких столбцов.
Несколько сразу
Один запрос select from update может помочь, когда требуется обновить не одно поле, а несколько. Выглядит это так:
Здесь происходит замена стоимости и количества у строк, со значениями book_id меньше 4.
Ограничения
Еще один пример использования update – это установление ограничения строк при выводе результатов. Для этого необходимо задействовать setting LIMIT.
Здесь происходит update первой строчки. LIMIT не используется для обновления N полей. В результате запроса происходит обработка первых N-строк, которые подойдут под условие Where.
Обновление нескольких таблиц
Далее будут рассмотрены примеры update для нескольких таблиц. Это – самый простой вариант из всех существующих:
Возможны разные варианты использования изучаемой команды. Иногда корректировки устанавливаются путем объединения нескольких табличных компонентов или на основе информации из других элементов БД. Далее все эти варианты будут рассмотрены более подробно.
Объединение Inner Join
Команду (operator) Update можно использовать для обновления информации путем объединения нескольких компонентов БД. Самый простой вариант – это применение для updates INNER JOIN.
Указывает INNER не обязательно. Связано это с тем, что при использовании обновления данных параметр используется по умолчанию.
Объединение «слева»
Еще один вариант объединения – это Left Join. Он применяется с update set select, если требуется именно «левое объединение». Указывать его полностью обязательно.
Пример – изменение на складе количества книг после их непосредственной покупки:
Если магазин продал 3 книжки «Анна Каренина» и одну – Dead Souls, запрос будет выглядеть так:
Если не использовать left join в заданном примере запроса SQL update, на экране появится ошибка. Связано это с тем, что поле amount не может быть отрицательным. При использовании параметра ignore появится следующий результат:
Здесь каждое поле будет уменьшено на 3. Результат будет ошибочным.
Условные операторы
Update set select (обновление) может производиться через условные операторы:
- if;
- case;
- ifnull;
- coalesce.
Case используется для проверки истинности выбора условий. В зависимости от полученного результата вернут один из нескольких вариантов значений. Синтаксис при работает с таким update from окажется таким:
Результат в example:
При помощи функции IF каждый раз в зависимости от условного выражения будет возвращаться одно из двух значений. Пример – если у книги жанр 4, ее стоимость уменьшается на 200 рублей. В противном случае ценник остается прежним:
Через IFNULL оператор update проверит значение выражения. Если оно NULL, возвращается определенный «параметр». В противном случае – самое выражение. Пусть одно значение в заданной таблице окажется нулевым:
Оно должно быть заменено на 0. Соответствующий запрос должен выглядеть так:
При помощи COALESCE можно указывать несколько значений, которые может принимать функция. Работает подобно IFNULL.
С сортировкой
Select from и update – базовые операции для работы с таблицами. Их обновление возможно. Данный процесс помогает в ситуациях, когда изменения вступают в силу относительно поля с уникальным ключом.
Если захочется сдвинуть id на единицу, изменив первую строчку, получится две строки, у которых Id = 2. Это вызовет ошибку. При добавлении order by и проведении обновления с конца, запрос будет успешно выполнен:
Но и это еще не все. Можно использовать select from и update для обновления на основе информации из других таблиц.
На основе других таблиц
В условии Where можно использовать вложенные команды – from и select. Вот – пример, в котором сначала sets индикатор жанра “Epic poetry”, а затем на основе соответствующего значения происходит отбор строки для обновления:
Чтобы выбрать значения, которые требуется изменить, используется запрос:
Требуется изменить стоимость всех книг, которых менее 5 штук на складе, на минимальную сумму продажи. Она будет равна 480. Обновить таблицу из самой себя не получится. Поэтому придется объединить компоненты между собой:
Все это – основы работы с SQL. Лучше понимать запросы, primary key, tables и даже изучить T-SQL с нуля помогут специальные дистанционные компьютерные курсы. Они прекрасно совмещаются с карьерой и учебой, а в конце выдается электронный сертификат, подтверждающий спектр приобретенных навыков и умений.
Прокачать навыки работы с базами данных можно на курсах Otus.
<!DOCTYPE html>
<html dir="ltr" lang="ru-RU">
<head>
<meta charset="UTF-8" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="profile" href="http://gmpg.org/xfn/11" />
<title>Update в SQL OTUS</title>
<!-- All in One SEO 4.5.2.1 - aioseo.com -->
<meta name="description" content="Обновление данных в таблицах SQL – одна из базовых операций, с которой предстоит столкнуться пользователю при работе с СУБД MySQL. В качестве обновления (update) подразумевается изменение значений в ранее созданных и на текущий момент существующих записях таблицы. Возможно несколько вариантов реализации: изменение значений полей в группе строк; корректировка поля для отдельной строчки. Чтобы уметь работать" />
<meta name="robots" content="max-image-preview:large" />
<link rel="canonical" href="https://otus.ru/journal/update-v-sql/" />
<meta name="generator" content="All in One SEO (AIOSEO) 4.5.2.1" />
<script type="application/ld+json" class="aioseo-schema">
{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/otus.ru\/journal\/update-v-sql\/#article","name":"Update \u0432 SQL OTUS","headline":"Update \u0432 SQL","author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/04\/oj-1080x72012-1.jpg","width":2245,"height":1587},"datePublished":"2023-04-08T14:41:18+00:00","dateModified":"2024-01-23T18:31:06+00:00","inLanguage":"ru-RU","mainEntityOfPage":{"@id":"https:\/\/otus.ru\/journal\/update-v-sql\/#webpage"},"isPartOf":{"@id":"https:\/\/otus.ru\/journal\/update-v-sql\/#webpage"},"articleSection":"\u041f\u043e\u043b\u0435\u0437\u043d\u043e\u0435, SQL"},{"@type":"BreadcrumbList","@id":"https:\/\/otus.ru\/journal\/update-v-sql\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/#listItem","position":1,"name":"\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430","item":"https:\/\/otus.ru\/journal\/","nextItem":"https:\/\/otus.ru\/journal\/update-v-sql\/#listItem"},{"@type":"ListItem","@id":"https:\/\/otus.ru\/journal\/update-v-sql\/#listItem","position":2,"name":"Update \u0432 SQL","previousItem":"https:\/\/otus.ru\/journal\/#listItem"}]},{"@type":"Organization","@id":"https:\/\/otus.ru\/journal\/#organization","name":"\u041e\u0442\u0443\u0441 \u043e\u043d\u043b\u0430\u0439\u043d-\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u0435","url":"https:\/\/otus.ru\/journal\/","sameAs":["https:\/\/www.youtube.com\/channel\/UCetgtvy93o3i3CvyGXKFU3g"],"contactPoint":{"@type":"ContactPoint","telephone":"+74999389202","contactType":"Customer Support"}},{"@type":"Person","@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author","url":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/","name":"A. Pavlenko","image":{"@type":"ImageObject","@id":"https:\/\/otus.ru\/journal\/update-v-sql\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/d4c499a104d7c2522fa41f89e6819499?s=96&d=mm&r=g","width":96,"height":96,"caption":"A. Pavlenko"}},{"@type":"WebPage","@id":"https:\/\/otus.ru\/journal\/update-v-sql\/#webpage","url":"https:\/\/otus.ru\/journal\/update-v-sql\/","name":"Update \u0432 SQL OTUS","description":"\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u0445 SQL \u2013 \u043e\u0434\u043d\u0430 \u0438\u0437 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u0438\u0442 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u0442\u044c\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0421\u0423\u0411\u0414 MySQL. \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f (update) \u043f\u043e\u0434\u0440\u0430\u0437\u0443\u043c\u0435\u0432\u0430\u0435\u0442\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0432 \u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0437\u0430\u043f\u0438\u0441\u044f\u0445 \u0442\u0430\u0431\u043b\u0438\u0446\u044b. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438: \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u043e\u043b\u0435\u0439 \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 \u0441\u0442\u0440\u043e\u043a; \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e\u043b\u044f \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0438. \u0427\u0442\u043e\u0431\u044b \u0443\u043c\u0435\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c","inLanguage":"ru-RU","isPartOf":{"@id":"https:\/\/otus.ru\/journal\/#website"},"breadcrumb":{"@id":"https:\/\/otus.ru\/journal\/update-v-sql\/#breadcrumblist"},"author":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"creator":{"@id":"https:\/\/otus.ru\/journal\/author\/a-pavlenko\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/otus.ru\/journal\/wp-content\/uploads\/2023\/04\/oj-1080x72012-1.jpg","@id":"https:\/\/otus.ru\/journal\/update-v-sql\/#mainImage","width":2245,"height":1587},"primaryImageOfPage":{"@id":"https:\/\/otus.ru\/journal\/update-v-sql\/#mainImage"},"datePublished":"2023-04-08T14:41:18+00:00","dateModified":"2024-01-23T18:31:06+00:00"},{"@type":"WebSite","@id":"https:\/\/otus.ru\/journal\/#website","url":"https:\/\/otus.ru\/journal\/","name":"OTUS JOURNAL","description":"Blog about IT","inLanguage":"ru-RU","publisher":{"@id":"https:\/\/otus.ru\/journal\/#organization"}}]}
</script>
<!-- All in One SEO -->
<link rel='dns-prefetch' href='//otus.ru' />
<link rel='dns-prefetch' href='//fonts.googleapis.com' />
<link rel='stylesheet' id='wp-block-library-css' href='https://otus.ru/journal/wp-includes/css/dist/block-library/style.min.css?ver=6.4.7' type='text/css' media='all' />
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id='global-styles-inline-css' type='text/css'>
body{--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}body .is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}body .is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}body .is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}body .is-layout-flex{flex-wrap: wrap;align-items: center;}body .is-layout-flex > *{margin: 0;}body .is-layout-grid{display: grid;}body .is-layout-grid > *{margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
.wp-block-navigation a:where(:not(.wp-element-button)){color: inherit;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
.wp-block-pullquote{font-size: 1.5em;line-height: 1.6;}
</style>
<link rel='stylesheet' id='wbcr-comments-plus-url-span-css' href='https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/css/url-span.css?ver=2.2.0' type='text/css' media='all' />
<link rel='stylesheet' id='wpel-style-css' href='https://otus.ru/journal/wp-content/plugins/wp-external-links/public/css/wpel.css?ver=2.59' type='text/css' media='all' />
<link rel='stylesheet' id='ez-toc-css' href='https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/css/screen.min.css?ver=2.0.61' type='text/css' media='all' />
<style id='ez-toc-inline-css' type='text/css'>
div#ez-toc-container .ez-toc-title {font-size: 120%;}div#ez-toc-container .ez-toc-title {font-weight: 500;}div#ez-toc-container ul li {font-size: 95%;}div#ez-toc-container nav ul ul li {font-size: 90%;}
.ez-toc-container-direction {direction: ltr;}.ez-toc-counter ul{counter-reset: item ;}.ez-toc-counter nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }.ez-toc-widget-direction {direction: ltr;}.ez-toc-widget-container ul{counter-reset: item ;}.ez-toc-widget-container nav ul li a::before {content: counters(item, ".", decimal) ". ";display: inline-block;counter-increment: item;flex-grow: 0;flex-shrink: 0;margin-right: .2em; float: left; }
</style>
<link rel='stylesheet' id='contentberg-fonts-css' href='https://fonts.googleapis.com/css?family=Roboto%3A400%2C500%2C700%7CPT+Serif%3A400%2C400i%2C600%7CIBM+Plex+Serif%3A500' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-core-css' href='https://otus.ru/journal/wp-content/themes/contentberg/style.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='contentberg-lightbox-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/lightbox.css?ver=1.8.3' type='text/css' media='all' />
<link rel='stylesheet' id='font-awesome-css' href='https://otus.ru/journal/wp-content/themes/contentberg/css/fontawesome/css/font-awesome.min.css?ver=1.8.3' type='text/css' media='all' />
<script type="text/javascript" id="breeze-prefetch-js-extra">
/* <![CDATA[ */
var breeze_prefetch = {"local_url":"https:\/\/otus.ru\/journal","ignore_remote_prefetch":"1","ignore_list":["\/wp-admin\/"]};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/breeze/assets/js/js-front-end/breeze-prefetch-links.min.js" id="breeze-prefetch-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/lazysizes.js" id="lazysizes-js"></script>
<link rel="https://api.w.org/" href="https://otus.ru/journal/wp-json/" /><link rel="alternate" type="application/json" href="https://otus.ru/journal/wp-json/wp/v2/posts/6065" /><link rel='shortlink' href='https://otus.ru/journal/?p=6065' />
<link rel="alternate" type="application/json+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fupdate-v-sql%2F" />
<link rel="alternate" type="text/xml+oembed" href="https://otus.ru/journal/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fupdate-v-sql%2F&format=xml" />
<script>var Sphere_Plugin = {"ajaxurl":"https:\/\/otus.ru\/journal\/wp-admin\/admin-ajax.php"};</script><link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-32x32.png" sizes="32x32" />
<link rel="icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon" href="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-180x180.png" />
<meta name="msapplication-TileImage" content="https://otus.ru/journal/wp-content/uploads/2020/11/cropped-OTUS_logo_OTUS-COMP-LOGO-WHITE-1-270x270.png" />
<style type="text/css" id="wp-custom-css">
#menu-item-10406 .wpel-icon {
display: none;
}
#menu-item-10407 .wpel-icon {
display: none;
}
.otus-login-site a .wpel-icon {
display: none;
}
.menu-menju-navykov-container a .wpel-icon {
display: none;
}
.otus-login-site a
{
background: #ffd709;
border-radius: 12px;
color: #0f0f10;
font-size: 14px;
font-weight: 700;
line-height: 20px;
display: block;
text-align: center;
padding: 8px 25px;
}
.main-footer.dark {
background: linear-gradient(90deg, #a64fc5, #4f54e6);
border-color: transparent;
}
.main-footer.bold .copyright {
color: #fff;
}
.main-footer.bold .to-top i {
color: #fff;
}
.main-footer.bold .back-to-top {
color: #fff;
}
.nav__scroll {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.scrollable-menu .menu {
display: flex;
}
.nav__scroll
{
background: linear-gradient(90deg, #a64fc5, #4f54e6);
}
.scrollable-menu .menu .menu-item {
flex: 0 0 auto;
padding: 15px 15px;
}
.scrollable-menu .menu .menu-item a {
color: #fff;
}
.nav__scroll::-webkit-scrollbar{background-color:#fff;height:5px;}
.nav__scroll::-webkit-scrollbar-thumb{background-color:#dcdcdc;}
.nav__scroll::-webkit-scrollbar-track{-webkit-border-radius:0;border-radius:0;background-color:#fff;}/
body {
min-width: 320px;
}
.banner-click img {
margin: 0 auto;
display: block;
}
.banner-click {
cursor: pointer;
}
.banner-footer-area {
margin-bottom: 20px;
}
.banner-left-area {
margin-top: 40px;
} </style>
<!--Start VDZ Yandex Metrika Plugin-->
<!-- Yandex.Metrika counter --><script type="text/javascript" >(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");ym(34531570, "init", {clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true, trackHash:true, ecommerce:"dataLayer"});</script>
<noscript><div><img src="https://mc.yandex.ru/watch/34531570" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter --><!--START ADD EVENTS FROM CF7--><script type='text/javascript'>document.addEventListener( 'wpcf7submit', function( event ) {
//event.detail.contactFormId;
if(ym){
//console.log(event.detail);
ym(34531570, 'reachGoal', 'VDZ_SEND_CONTACT_FORM_7');
ym(34531570, 'params', {
page_url: window.location.href,
status: event.detail.status,
locale: event.detail.contactFormLocale,
form_id: event.detail.contactFormId,
});
}
}, false );
</script><!--END ADD EVENTS FROM CF7-->
<!--End VDZ Yandex Metrika Plugin-->
</head>
<body class="post-template-default single single-post postid-6065 single-format-standard right-sidebar lazy-normal has-lb">
<div class="main-wrap">
<header id="main-head" class="main-head head-nav-below has-search-modal simple simple-boxed">
<div class="inner inner-head" data-sticky-bar="0">
<div class="wrap cf wrap-head">
<div class="left-contain">
<span class="mobile-nav"><i class="fa fa-bars"></i></span>
<div class="title">
<a href="https://otus.ru/journal/" title="OTUS JOURNAL" rel="home" data-wpel-link="internal">
<span class="text-logo"><img src="/journal/wp-content/themes/contentberg/img/logo_site.svg" alt="OTUS JOURNAL"></span>
</a>
</div>
</div>
<div class="navigation-wrap inline">
<nav class="navigation inline simple light" data-sticky-bar="0">
<div class="menu-rubriki-container"><ul id="menu-rubriki" class="menu"><li id="menu-item-109" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-1 menu-item-109"><a href="https://otus.ru/journal/category/pro-it/" data-wpel-link="internal"><span>Про IT</span></a></li>
<li id="menu-item-113" class="menu-item menu-item-type-taxonomy menu-item-object-category current-post-ancestor current-menu-parent current-post-parent menu-cat-4 menu-item-113"><a href="https://otus.ru/journal/category/polza/" data-wpel-link="internal"><span>Полезное</span></a></li>
<li id="menu-item-114" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-cat-3 menu-item-114"><a href="https://otus.ru/journal/category/lifestyle/" data-wpel-link="internal"><span>Лайфстайл</span></a></li>
<li id="menu-item-10406" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10406"><a href="https://otus.ru/catalog/courses" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Обучение</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10407" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10407"><a href="https://otus.ru/about" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right"><span>Информация</span><span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </nav>
</div>
<div class="actions">
<div class="otus-login-site">
<a href="https://otus.ru/login/" target="_blank" data-wpel-link="external" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Войти<span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
<a href="#" title="Search" class="search-link"><i class="fa fa-search"></i></a>
</div>
</div>
</div>
</header> <!-- .main-head -->
<div class="nav nav_disable nav_colored nav_transparent course-categories__nav nav__scroll ">
<div class="container wrap">
<div class="links inline simple light scrollable-menu">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov" class="menu"><li id="menu-item-10413" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10414" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10415" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10416" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10417" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10418" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10419" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10420" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li id="menu-item-10421" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
</div>
</div>
<div class="main wrap">
<div class="ts-row cf">
<div class="col-8 main-content cf">
<article id="post-6065" class="the-post post-6065 post type-post status-publish format-standard has-post-thumbnail category-polza tag-sql">
<header class="post-header the-post-header cf">
<div class="post-meta the-post-meta">
<span class="post-cat">
<a href="https://otus.ru/journal/category/polza/" class="category" data-wpel-link="internal">Полезное</a>
</span>
<h1 class="post-title">
Update в SQL
</h1>
<a href="https://otus.ru/journal/update-v-sql/" class="date-link" data-wpel-link="internal"><time class="post-date">8 апреля, 2023</time></a>
</div>
<div class="featured">
<a href="https://otus.ru/journal/wp-content/uploads/2023/04/oj-1080x72012-1.jpg" class="image-link" data-wpel-link="internal"><img width="770" height="515" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20770%20515%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-contentberg-main size-contentberg-main lazyload wp-post-image" alt="Update в SQL" title="Update в SQL" decoding="async" fetchpriority="high" data-srcset="https://otus.ru/journal/wp-content/uploads/2023/04/oj-1080x72012-1-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2023/04/oj-1080x72012-1-270x180.jpg 270w" data-src="https://otus.ru/journal/wp-content/uploads/2023/04/oj-1080x72012-1-770x515.jpg" data-sizes="(max-width: 770px) 100vw, 770px" /> </a>
</div>
</header><!-- .post-header -->
<div class="post-content description cf entry-content content-normal">
<div id="ez-toc-container" class="ez-toc-v2_0_61 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction">
<div class="ez-toc-title-container">
<p class="ez-toc-title " >Содержание</p>
<span class="ez-toc-title-toggle"><a href="#" class="ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle" aria-label="Toggle Table of Content"><span class="ez-toc-js-icon-con"><span class=""><span class="eztoc-hide" style="display:none;">Toggle</span><span class="ez-toc-icon-toggle-span"><svg style="fill: #999;color:#999" xmlns="http://www.w3.org/2000/svg" class="list-377408" width="20px" height="20px" viewBox="0 0 24 24" fill="none"><path d="M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z" fill="currentColor"></path></svg><svg style="fill: #999;color:#999" class="arrow-unsorted-368013" xmlns="http://www.w3.org/2000/svg" width="10px" height="10px" viewBox="0 0 24 24" version="1.2" baseProfile="tiny"><path d="M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z"/></svg></span></span></span></a></span></div>
<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-1" href="#SQL_%D0%B8_MySQL" title="SQL и MySQL">SQL и MySQL</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-2" href="#%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_SQL" title="Задачи SQL">Задачи SQL</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-3" href="#%D0%A4%D0%BE%D1%80%D0%BC%D0%B0_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8_%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F" title="Форма записи обновления">Форма записи обновления</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-4" href="#%D0%9E%D0%B4%D0%BD%D0%B0_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0" title="Одна таблица">Одна таблица</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-5" href="#%D0%9D%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86" title="Несколько таблиц">Несколько таблиц</a></li></ul></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-6" href="#%D0%9F%D0%BE%D0%B4%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0" title="Подготовка примера">Подготовка примера</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-7" href="#%D0%92%D1%81%D0%B5_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8" title="Все строки">Все строки</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-8" href="#%D0%A1%D1%82%D1%80%D0%BE%D0%BA%D0%B8_%D1%81_%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B5%D0%BC" title="Строки с условием">Строки с условием</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-9" href="#%D0%97%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D1%81_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC" title="Значения с выражением">Значения с выражением</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-10" href="#%D0%A1_Default" title="С Default">С Default</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-11" href="#%D0%9D%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D1%81%D1%80%D0%B0%D0%B7%D1%83" title="Несколько сразу">Несколько сразу</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-12" href="#%D0%9E%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D1%8F" title="Ограничения">Ограничения</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-13" href="#%D0%9E%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D1%85_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86" title="Обновление нескольких таблиц">Обновление нескольких таблиц</a></li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class="ez-toc-link ez-toc-heading-14" href="#%D0%9E%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_Inner_Join" title="Объединение Inner Join">Объединение Inner Join</a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-15" href="#%D0%9E%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%C2%AB%D1%81%D0%BB%D0%B5%D0%B2%D0%B0%C2%BB" title="Объединение «слева»">Объединение «слева»</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-16" href="#%D0%A3%D1%81%D0%BB%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B" title="Условные операторы">Условные операторы</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-17" href="#%D0%A1_%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9" title="С сортировкой">С сортировкой</a></li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class="ez-toc-link ez-toc-heading-18" href="#%D0%9D%D0%B0_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B5_%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D1%85_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86" title="На основе других таблиц">На основе других таблиц</a></li></ul></li></ul></nav></div>
<p>Обновление данных в таблицах SQL – одна из базовых операций, с которой предстоит столкнуться пользователю при работе с СУБД MySQL. В качестве обновления (update) подразумевается изменение значений в ранее созданных и на текущий момент существующих записях таблицы. Возможно несколько вариантов реализации:</p>
<ul>
<li>изменение значений полей в группе строк;</li>
<li>корректировка поля для отдельной строчки.</li>
</ul>
<p></p>
<p>Чтобы уметь работать с облачными и локальными базами данных, пользователям необходимо изучить синтаксис SQL-команд. Далее предстоит рассмотреть основы обновления данных в заданной таблице. Необходимо изучить различные варианты применения update в MySQL. Эта информация будет особо полезна новичкам, но и опытным пользователям она тоже пригодится.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="SQL_%D0%B8_MySQL"></span>SQL и MySQL<span class="ez-toc-section-end"></span></h2>
<p>Перед изучением табличных обновлений необходимо понять, что собой представляют MySQL и SQL. Связано это с тем, что новички не всегда знают, с чем им предстоит работать.</p>
<p>SQL – язык запросов. Стандарт для работы с таблицами в базах данных. Его можно использовать не только для обновления, но и для других операций. Примеры – выборка, удаление. Язык структурированных запросов позволяет работать с большим объемом информации. Происходят соответствующие операции в специальных средах. Они называются «системы управления БД».</p>
<p>MySQL – это и есть СУБД. Представляет собой свободную реляционную систему управления БД. Это – наиболее распространенный продукт для малого и среднего бизнеса. В основном используется в качестве отдельного сервера. К нему обращаются локальные и удаленные клиенты.</p>
<p>В официальный дистрибутив MySQL включена собственная библиотека для работы внутреннего сервера. Вместе с ней удастся подключать к СУБД автономные приложения и программы.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B8_SQL"></span>Задачи SQL<span class="ez-toc-section-end"></span></h3>
<p>Задачами SQL-запросов (queries) являются такие операции как:</p>
<ol>
<li>Извлечение запрашиваемых сведений из ячеек таблиц баз данных. Происходит это через запрос, отправляемый пользователем.</li>
<li>Операции с данными. Сюда можно отнести добавление новых компонентов в таблицу, обновление, удаление, сортировку.</li>
<li>Идентификация информации из БД. Речь идет об определении отдельно взятых компонентов. Пример – числа в тесте используются в качестве целых чисел для дальнейшей обработки.</li>
<li>Управление имеющимися информационными таблицами.</li>
<li>Защита и шифрование таблиц.</li>
</ol>
<p>Синтаксис SQL делится на несколько частей: для решение семантических задач, для непосредственной организации управления информацией в БД и для выдачи пользователям прав на отдельные единицы данных.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A4%D0%BE%D1%80%D0%BC%D0%B0_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B8_%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F"></span>Форма записи обновления<span class="ez-toc-section-end"></span></h2>
<p>Далее предстоит рассмотреть особенности обновления данных при помощи SQL запросов. Для этого нужно изучить специальный оператор, а также форму его представления.</p>
<p>Ключевой оператор обновления в SQL – update. Обновить таблицу удастся последовательно от первой до последней строчки по порядку. В зависимости от типа обновления в MySQL нужно выделить два синтаксиса для update в SQL. Первый вариант используется для работы с одной таблицей, второй – для нескольких.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D0%B4%D0%BD%D0%B0_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0"></span>Одна таблица<span class="ez-toc-section-end"></span></h3>
<p>В случае, когда необходимо обновить информацию в одной таблице, рекомендуется использовать следующую форму записи:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/u5f16d7yLFGviszm4YRaXWP_tCtKVcMnbtqCbTMhHnhtvWNQLF01_JD1w-VJUQop_SNA89DwFOLbdN70UATToxrAds3-QM0EzfOIWTbi0vZ4J3en9PJvuVTOEEwGURpRAqRY1mGG2e9OyxRE-7k9sQ" alt="Update в SQL"/></figure>
<p>Обязательным параметром здесь служит только SET assignment_list. Он указывает на то, какие столбцы нужно изменить, а также способ внесения изменений.</p>
<p>К необязательным параметрам в операторе update относят:</p>
<ol>
<li>Low_Priority. Если он указан, то обновление будет отложено до тех пор, пока другой клиент не решит посмотреть информацию в таблице.</li>
<li>Ignore – сценарий, который не прерывает выполнение update from даже при возникновении ошибок. Если появляются дубликаты в столбце с уникальным ключом, то строки не обновляются.</li>
<li>Where where_condition – оператор, задающий условия обновления данных. Если здесь нет никаких параметров, update будет применяться для всех строк в указанной таблице.</li>
<li>Order by. Этим выражением устанавливается сортировка. Строки будут обновляться в заданном порядке.</li>
<li>Limit row_count – ограничение на количество обновляемых strings. Считаться будут все строки, попадающие под условие were, независимо от факта внесения в них тех или иных изменений.</li>
</ol>
<p>Это – базовая форма представления оператора update в MySQL. Она применяется только для одной таблицы.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9D%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86"></span>Несколько таблиц<span class="ez-toc-section-end"></span></h3>
<p>Если же их несколько, при работе с Microsoft SQL Server будет использоваться другая форма записи. Ее syntax выглядит так:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/kQGkZWQ40R2KxIFEmbtDrg5_oOvIilF4o_J9or4I4NvUXyt3kp6nKwgpeOcJh2VPXFpL1mkbj93YhWdlWupBRHlKeE3vq0JzmZP5QqzalQYMbihm01nJIUByXphHW7_e1eu4cfBuamHD_fVcNHgM6g" alt="Update в SQL"/></figure>
<p>Table references – список tables, с которыми будет применяться update set where/select. Изменения осуществляются так, как написано в assignment_list.</p>
<p>Limit и Order by при желании обновить данные сразу в нескольких таблицах, нельзя. Остальные параметры (where, ignore и low_priority) не являются обязательными. Они работают точно также, как и в случае с одной табличкой БД.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9F%D0%BE%D0%B4%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D0%BA%D0%B0_%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D0%B0"></span>Подготовка примера<span class="ez-toc-section-end"></span></h2>
<p>Чтобы понять принцип функционирования select from update в MySQL Server, предстоит рассмотреть возможные операции на наглядных примерах (examples). Они будут базироваться на заранее подготовленной БД. Она включает в себя информацию о книжном магазине. Поддерживает несколько табличных хранилищ:</p>
<ul>
<li>писатели;</li>
<li>жанры;</li>
<li>книги;</li>
<li>покупки.</li>
</ul>
<p>Сначала необходимо воспользоваться операторами create table, а также insert into. Они помогут создать author, genre, book и sales.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/zYC52LA1Igbh7sEFS5t8LCwpPDtKscerP6sQTCm2Zl0xYukUne6m9EjzyKpLYFPKYr3AIYyByjID2luvzOZMEoh3qxl2gw-ZdwZWr9L1JIcevtar771m7oSHiErxHukRUFFWp8Xu45iModpUSIgY0w" alt="Update в SQL"/></figure>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/GN20SMNjA1sEcWwY76Gyhc9owME-Ph1j-1-rgntELuMsOOSQ_r4cifSKGQntda8Q1VDd2JXsyKM08T_TWrLuU23z3379tAX4EDMsH2rrM9S-grCGqynPJbEZgWwqZEjB33Bwd-OQiq5N9ZezrzCUag" alt="Update в SQL"/></figure>
<p>Получится таблица book:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/v8tKkWPktWrmaKWRUCMVVC9wKdS3Cay3N7rp1vgcsAVyJbvymToPMXtfgMcehKEhuI0FxSWf5uUh0XE6dJed4d8DRJQuGda9-2MoXR9UBJsjDLGaW69_Onwsn_Eo-bJXrPuMbYjDxMPxq-eZBxcN6w" alt="Update в SQL"/></figure>
<p>Здесь такие столбцы:</p>
<ul>
<li>book_id – уникальный идентификатор для каждой книжки;</li>
<li>title – название;</li>
<li>author_id – идентификатор автора (внешний ключ);</li>
<li>genre_id – жанр (внешний ключ);</li>
<li>price – стоимость одного книжного экземпляра;</li>
<li>amount – количество книжек на складе.</li>
</ul>
<p>Таблицы genres и author:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/exkFHNcYKHC6lMV9B7KBjLIdZQ42L4qZHQc3-pez2nqbPheEFAZg66Q4vNntevs70v9b0ylU5BkqKbK4Gr0cPNbUledA4EZw0puCffkY9F9bibsBxqClRUKLMy8nPJC0_dJRHD2ghpqi0wseNm37Sw" alt="Update в SQL"/></figure>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/xr8vchFINCwzFLlRuCUvguozZNEBhGv6RxsIjyOsa2eiAjLdU-estUfIjkLm2XRPo89ML9Z3cP7UVYWPDzJUqYGJiUjLaAKNa117yj7Wolx3RGPf-8OV5P70ZOFojICFBQjIj4uZTY3J1LcaT7WilA" alt="Update в SQL"/></figure>
<p>А так выглядит sales:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/9YhgzZpdnKoLVdae_J_D6k2mZMF1c7SKxeovRxhSyyg0VOD2Ag7e-ETtNUzikIC2gVKdloNGNPVdh2UWQmnC5TNEAKL9zHuSEtzLtJ2LWt71jQwGnA9j6WNmgWg9vUsPBzsdK_MDcrtS54AJlCl-4w" alt="Update в SQL"/></figure>
<p>В ней каждая колонка отвечает соответственно за следующие параметры:</p>
<ul>
<li>id – уникальный идентификатор;</li>
<li>book_id – идентификатор книги из таблицы book (внешний ключ);</li>
<li>count – сколько книг были куплены;</li>
<li>cost – общая стоимость.</li>
</ul>
<p>На основе этих таблиц предстоит рассматривать различные варианты использования запросов update в MS Server.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%92%D1%81%D0%B5_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8"></span>Все строки<span class="ez-toc-section-end"></span></h2>
<p>Update служит условием обновления всей заданной базы. Для этого его необходимо использовать без параметра where. Пример – в книжном магазине организована акция типа «все за 500». Для отображения этой ситуации у всех книг должна быть фиксированная цена на отметке 500 рублей:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/mlrZKsQOsLFs9W6poWnoGWOV8Su1BI9Td6mm_7SSWFGUs9psmq-T9VnWtQCD4tuVaByTIzbNwBP5FMxWhKiSFOQoK-MluvZGwfJChNHQPwVM6lh4HfqO8ug-MTc_-3m6nfQpl5YEAGjr1zlKpV4AfA" alt="Update в SQL"/></figure>
<p>Выглядит это так:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/Zfovb0-HjcDjdebWuqXRuCLe4y1lwph9j7_fGChsTXf8DaGxjlY3Wxuxg8VI0FQ0tqVqWZO2TSQg18OVwjEvUPwXQz8P9xDg9IVFwhLsl53ep6P7YJXLCjXav4rHqiGUQC5gptjmXgrruzV4j1j-Jg" alt="Update в SQL"/></figure>
<p>Если попытаться присвоить значения столбца, которые уже находятся в нем, в MySQL ничего не произойдет. Система заметит это и проигнорирует.</p>
<p>При попытке использования значения NULL столбцу, при создании которого было указано NOT NULL, запрос вернет ошибку:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/-3wyOQpzzr3nP5pcF2OSG_trW6SGhBng6qN90gdBfcACVmnNlnkt3lxWd1rdsfFEYF68VZveQcoWGXOZ1i-sKlEjN-YkfYvuF9g9Z2Hbd3LUhAEjjH3ejcZqgVBZFpVodLjkjuhAdXcPHl70pHFu2w" alt="Update в SQL"/></figure>
<p> При указании параметра ignore в команде update значение будет изменено на значение по умолчанию. Оно у каждого типа устанавливается свое:</p>
<ul>
<li>0 – для числовых;</li>
<li>«» — для символьных;</li>
<li>«нулевое» — для дат.</li>
</ul>
<p>Это – только один вариант использования update. Он является наиболее простым.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1%D1%82%D1%80%D0%BE%D0%BA%D0%B8_%D1%81_%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%B8%D0%B5%D0%BC"></span>Строки с условием<span class="ez-toc-section-end"></span></h2>
<p>Изменение строки (string) обычно используется относительно конкретного поля. Полностью обновлять данные в БД требуется крайне редко.</p>
<p>Для изменения записей для одного или нескольких полей команда update используется при условии where. Пример – распродажа книг, который осталось менее 5 штук. Для этого используется такая команда:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/QWf0LRCKuUDIBS1RpVpPqFtjRZysIlOO6Gxk1zEfnLX1SwER1Ip5-VtjvSRRnE-NgIWhSfQ1_S09Zvcsv-THyfJYyxUqR1wutP_dmroBLKgeqZ5kUYeCxCX-Wz4hVHL4PPZibndr9gASOqY0GiQ8fQ" alt="Update в SQL"/></figure>
<p>Результат обновленной таблички (updated table):</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/VfjRU_frtp99HHFOORbXFYYVsG7Qt49Navc8n06VOqrfRFKryJIw5WHuhCBUk_murnIvU1x5ImoNtUEg-oa3cL-dk50mtR9hdhJZhoAqD4fgBqb3hQURqLYrjlxtI9_AKKlw2IJG2H41kebCdQmcCg" alt="Update в SQL"/></figure>
<p>Здесь хорошо заметны изменения. Они вступили относительно Dead Souls и Iliad.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%97%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D1%8F_%D1%81_%D0%B2%D1%8B%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC"></span>Значения с выражением<span class="ez-toc-section-end"></span></h2>
<p>Следующий вариант применения update set select – это обновление с заданным выражением. Пример – в магазине проводится акция. Она распространяется на книги русских писателей. Скидка составит 15%.</p>
<p>Для реализации задачи необходимо использовать запрос (query) такого типа:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/PekZjvTZ3la-XLmlKG_4M2eSAKAIu_f5e7-24jtkgv1q2Q-nW2nbjmM3TrhBe4asqR0L33BZSnFnqHveGGDKIYL6OSvRkzK_qo6YjCQbEdR2LUbjSV03RS59qNCI8ID4MsjpwykD5zRKSNY_tABwEA" alt="Update в SQL"/></figure>
<p>Результат:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/Y96-PPa-7GnvNRZYukhvSsbshkaVl0FQHXSBtiFnPYMBsNU-oC46j3Ay9EQaNahCggMSbp26a7ILQfSjKDJ8YngvK6Pdr45SraaMJhO544-DNG26iF1mm8zJaZEEu_EPH8eHBlChSrVSHLJOHyOL6w" alt="Update в SQL"/></figure>
<p>Здесь:</p>
<ol>
<li>В таблице имеются всего два русский писателя. Они имеют ID 1 и 3.</li>
<li>Обновление значений в заданном образце происходит в определенном порядке – слева направо.</li>
</ol>
<p></p>
<p>Такой запрос сначала увеличит значение amount на единицу, а после – удвоит его:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/rHYKqzKolYdCGzwSzjEViDeSX7Oh3X4NMg747BZYaQJceqV-Uen4tihK6nOMMDXO3V8y14brjvyZPhadiszEs2W1fEHss6WvzhGMu1T8V-h3xnncUtyTKeUOaFm2wXwalL42UJYNJGizLvq5xB6p8g" alt="Update в SQL"/></figure>
<p>Теперь ясно, как организовывать update таблицы SQL с условием-выражением.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1_Default"></span>С Default<span class="ez-toc-section-end"></span></h2>
<p>Значение строк (records) может быть изменено на значение по умолчанию. Оно будет задаваться при создании или изменении tables. Чтобы выяснить, какие значения в табличке используются по умолчанию, необходимо выполнить специальную команду. Ей служит запрос:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/7vwbPh2JIoCsgNOxHuNh6uM_zrOJ4zTBejpCL01FJ7ByYnRvWaAAet4lKBmhDspSOpfUttxcEVVZXRyyBUzxSrxP0Q1sXfJJY6nRsXsOuISeRzKfgD1PBhK83v3PX-sUiBfTHQjxQk9Os9fKGeke1g" alt="Update в SQL"/></figure>
<p>На экране появится такой результат:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/-sjd8ADWV59oTvyOK_q9ijk1apdQivrNry0K60wtw0DRJ74Psmes8rAF0nJGl8CtWmfFDg1HJ4NKGSxPaOfSY0h03qpUMUOcXrO4YX7PVw5cmucpGsnzGh9iMyUu0OnIOw0Kcdx-MhcWHZpDC6dnfQ" alt="Update в SQL"/></figure>
<p>Теперь необходимо заменить значения каждого поля amount на DEFAULT. В этом поможет запись update set select:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/AUF2CsXsA2kdIHXjnsnks54zw1z50fQ33bWyklmkUFWxNr0vPQw7UyswKgoVfZLxqqiM5hln8U2KFLGmr5CYTvJV9KMdjFnkBAuaH1v96QEoz3xw-leoud9c2fU4zeCOOYW93XgDJHebP2x4JgG1fw" alt="Update в SQL"/></figure>
<p>Изучаемая команда может применяться иначе. Пример – сразу для нескольких столбцов.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9D%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D1%81%D1%80%D0%B0%D0%B7%D1%83"></span>Несколько сразу<span class="ez-toc-section-end"></span></h2>
<p>Один запрос select from update может помочь, когда требуется обновить не одно поле, а несколько. Выглядит это так:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/LdRizNbzCmiK-DNW-N25tQXjFSmjijSAK9lpEYGggX2BAXejR-LHVfHi40IRRr28wC9hPcYd0VhcUQDoDY0EbB7emwc8rFlmffTYDHTmWpPEEYxE7_pKf21RPuETGLhJNqMkPxdqdwPAt_Y5dX1D2w" alt="Update в SQL"/></figure>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/rHE5dzv4znubfJatnSCcCTrjMHUfCWC_5AOpfPmluVNOZ8QiYVSUpG1FE7R9thNc19UvtVhue8_xZxoqmDWqNs8tWhnphAxHbUbhYLzGRxtY6fUXJQvut-19-zizIfKADE86-e_5GVVGTGHwBHvDDw" alt="Update в SQL"/></figure>
<p>Здесь происходит замена стоимости и количества у строк, со значениями book_id меньше 4.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%B8%D1%8F"></span>Ограничения<span class="ez-toc-section-end"></span></h2>
<p>Еще один пример использования update – это установление ограничения строк при выводе результатов. Для этого необходимо задействовать setting LIMIT.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/ootQ6GGAGq3rzE4tU2AjaZFPKn9kWyAnMygqMRdrYRHgBA2wkRHvcp35ljjiaYXWjNTJpDxX9ayTjLZlr22jnVzcilOaX-Ex59TQgTU6OFWqh9AxlQBJSXl6q1SPC0gvEp0o_S7u8vzd7G3lZjaJlA" alt="Update в SQL"/></figure>
<p>Здесь происходит update первой строчки. LIMIT не используется для обновления N полей. В результате запроса происходит обработка первых N-строк, которые подойдут под условие Where.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D1%85_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86"></span>Обновление нескольких таблиц<span class="ez-toc-section-end"></span></h2>
<p>Далее будут рассмотрены примеры update для нескольких таблиц. Это – самый простой вариант из всех существующих:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/DFXAyQqNO2OXEoOuE22Magtf1lpFGPUbb1DhXvsUKLtjVRSIfp5GWZWfMH8v7ROXhyMv_5X1bKZS54pAYbNs5okKHRge-j8RFpWOTVvzRY2XOOVsxpgKu1vEklbtNNVrS5OKPz21mYPztzUNt3sVoQ" alt="Update в SQL"/></figure>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/Ark5eA3ZR92gDeBlaOdt-60NDl1G3PDE5yqadx_Cbx74QM7bbTQF7XI4y0cXrJkOKwBtAIAWE_QsO-I3cEn09_tgeMVdE6eYu-Rtv_-BEk-Ix7FK2Q83p08wo1PlvE8o-DGgYXuZf8c_mZAKSjCB3Q" alt="Update в SQL"/></figure>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/1lCzH1ear-dfDKjroX8BmcAJUSBiYo61OG_zx0whtx_lIwUs9u4gxG_M0-phSaJd9T2Lx6PRyUegNWUn9xU2eDYH1VveJxyBG8IrSDpyFhbfhDiA0Q8Dsw8EWXHPbpwQbgj18frcmZFo_gIIhGp33A" alt="Update в SQL"/></figure>
<p>Возможны разные варианты использования изучаемой команды. Иногда корректировки устанавливаются путем объединения нескольких табличных компонентов или на основе информации из других элементов БД. Далее все эти варианты будут рассмотрены более подробно.</p>
<h2 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_Inner_Join"></span>Объединение Inner Join<span class="ez-toc-section-end"></span></h2>
<p>Команду (operator) Update можно использовать для обновления информации путем объединения нескольких компонентов БД. Самый простой вариант – это применение для updates INNER JOIN.</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/TiU3bLHABIpMadXuXdDZFYJjFmwcy3FAkE-FuMPtENYnEGBWqozMvSBVwrKx5H16AKnlyR0z7ymQUOM0ubziximB3lOKmlt39VLIsZBUcDVQJIqZIduftCPYm-OvU1-egE2OGaybYNvSvc_XHRB8cw" alt="Update в SQL"/></figure>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/aX1m4erPY31a5oQd2qnqULAy1o43mVAGIRCxK1Xyi_oYw069o8zO8MerHeWEy8kTJwKoxRY2EcPBR-a6Cvzckd0holSFcmw97tLAybrnWi90rZGsiPFe2X-tsCn_P95zZD0KcjbQJb0EVg1poK-p5Q" alt="Update в SQL"/></figure>
<p>Указывает INNER не обязательно. Связано это с тем, что при использовании обновления данных параметр используется по умолчанию.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9E%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%C2%AB%D1%81%D0%BB%D0%B5%D0%B2%D0%B0%C2%BB"></span>Объединение «слева»<span class="ez-toc-section-end"></span></h3>
<p>Еще один вариант объединения – это Left Join. Он применяется с update set select, если требуется именно «левое объединение». Указывать его полностью обязательно.</p>
<p>Пример – изменение на складе количества книг после их непосредственной покупки:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/ybpz-hoBYjQWmhxJIHgBrBvqURAv_B-pfjA8ogeVDe-FgQ8z5gObZ3vU78zuZ4InNuV4TdpkINn7IaiUNhI-bDcvIRxpE0Q026CmzyCSOpmlKFsPt4YHjNYLq1GGQt4Zmb4375GnGBUbqiLUgm1G5A" alt="Update в SQL"/></figure>
<p>Если магазин продал 3 книжки «Анна Каренина» и одну – Dead Souls, запрос будет выглядеть так:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/0LDSz0UqVSgth-qOg-L-8-BcfwEI3NzFT9dXn61GmkowNqLdAjBvRJ7lIVvk8K_PiE5t5Xm9EW7pqdKTDMkxwUx8xcca52JOqsx6T50dEZ6uD1sqFajmPdTUoAp3JMYtuxnz8qu79iI4r2ahPisNcg" alt="Update в SQL"/></figure>
<p>Если не использовать left join в заданном примере запроса SQL update, на экране появится ошибка. Связано это с тем, что поле amount не может быть отрицательным. При использовании параметра ignore появится следующий результат:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/RC1wddye7aiGHN8N93phxEG3yFoeJaRIUFXypty3QFT2a5W_etoiidN5LQDSew0sj_aGSqc5qhWE8wKJUDN9BRFgSpdYOzAi2jxffQxuAZU_7io_Vhghja8q3cwcmbVh5bTiR1wzG0sVyi7GJrTi7Q" alt="Update в SQL"/></figure>
<p>Здесь каждое поле будет уменьшено на 3. Результат будет ошибочным.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A3%D1%81%D0%BB%D0%BE%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80%D1%8B"></span>Условные операторы<span class="ez-toc-section-end"></span></h3>
<p>Update set select (обновление) может производиться через условные операторы:</p>
<ul>
<li>if;</li>
<li>case;</li>
<li>ifnull;</li>
<li>coalesce.</li>
</ul>
<p>Case используется для проверки истинности выбора условий. В зависимости от полученного результата вернут один из нескольких вариантов значений. Синтаксис при работает с таким update from окажется таким:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/6eZiAuQpdBZuoCdqT2p5C6kFQqHUAQJMeOBRBYVb0BcoLznlrYyeLCefklxvNugArpfMWkPOF4J5eqHf_EeLQTgFvy8WEPbrbg3r7iYQSUKfVCeRb-zHDYvoLmqbdeeCdsUTB0W8TA90mG_gUTGQZQ" alt="Update в SQL"/></figure>
<p>Результат в example:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/zMBrNa1Mdvx0tCKuAH1-dz5OCGXpPIS3uuvveXvfNDxzYFAMfVX55XYhCr8JslcHPDDMi5OZo-O0C0HoA9c23pGsk-Hl7J5Oh_KXUykNkqHgjXg3QMOfT8pmu9PjxDZYu5aVtOfpjH6WU68s9DdRQg" alt="Update в SQL"/></figure>
<p>При помощи функции IF каждый раз в зависимости от условного выражения будет возвращаться одно из двух значений. Пример – если у книги жанр 4, ее стоимость уменьшается на 200 рублей. В противном случае ценник остается прежним:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/2sgdpezBplhWd0cex7oku-xiu7wEJXFPlEOafoQ3uWBoAKSNVIkcmV23RqvdFrTwc8my9DgcetxJI33Ul6koR_qs-t1ObcHiBpGyiXc7OnO4gZ2g0gt63GuJl8ptpNrhIa6oUtZg_UDMPVBf0kgRwQ" alt="Update в SQL"/></figure>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/CEMCZ9OWohQk39B6qUIT20RcT_LbRgUplk0K_Ni2YJr-dP7PVTbtP_rxMQpHRLZs4BUpfXVV0Ys2xRhvOueQx5X6UcEht6XfE9VxGRB868cQa_M9CJ9ZSMm1G5SbfWyrJVhsP_EhwfmNwy2lVdDBxA" alt="Update в SQL"/></figure>
<p>Через IFNULL оператор update проверит значение выражения. Если оно NULL, возвращается определенный «параметр». В противном случае – самое выражение. Пусть одно значение в заданной таблице окажется нулевым:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/DYDTv9qtdcBcqfBD5UT_w08Yo2_sB9mtwM3v9IVaeAlX8o3rWZBlXWNFloVPnzuxqKRWc__MaeBPlM1OY2sen1kPwYGQPuHoDNAVNd8SV4rOHkfSlkpiGCr7SR25wrqGETJnAeUXi37ShL4Kc8Wf1g" alt="Update в SQL"/></figure>
<p>Оно должно быть заменено на 0. Соответствующий запрос должен выглядеть так:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/s13kSDEMaXjhIVq5UmXDBZEArIRqJwx4J7vyiUYw5kvdrQsNNbeLR0l_lgGWyTwBfcAfy4sJiI088T7h0T66fTfZKCeeAAC6pCzeR8z4G4CrkdzcAfrCBmVTWH7O5g0U2ozxJfnye_-JDF8RLx903Q" alt="Update в SQL"/></figure>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/Q3Rh976lJiz068GvPhR9Tx3Y9OAG0Qa574nUwAIs_O4Cn3Gph69DogKQZPWnlJIC0pasiVTqECre7ZHhTKY16beHUyHbWWO33yXHdiDddjAoVKwr-k0Gs6RuiDZjCQXXq6kDglk-NfRI7z_qDFqE9g" alt="Update в SQL"/></figure>
<p>При помощи COALESCE можно указывать несколько значений, которые может принимать функция. Работает подобно IFNULL.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%A1_%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%BE%D0%B9"></span>С сортировкой<span class="ez-toc-section-end"></span></h3>
<p>Select from и update – базовые операции для работы с таблицами. Их обновление возможно. Данный процесс помогает в ситуациях, когда изменения вступают в силу относительно поля с уникальным ключом.</p>
<p>Если захочется сдвинуть id на единицу, изменив первую строчку, получится две строки, у которых Id = 2. Это вызовет ошибку. При добавлении order by и проведении обновления с конца, запрос будет успешно выполнен:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh4.googleusercontent.com/EUuPUo6mArN0NE_Edodkk-2MEj2k7ISogWo2615F6Gxs3pzScc3NOGWS8GSag_TFb5BIz3Qm3OwaNwm2uISses0VJsibexo90rnbCZ8F_ml2f49ZEIW94yj1mHSxLyCCb0B2e_iNJOHTH3EPnvl8Kg" alt="Update в SQL"/></figure>
<figure class="wp-block-image"><img decoding="async" src="https://lh3.googleusercontent.com/HmvT05DSgSl8Y_5SDY8Fl_brZe6GNHxuu1KkLvRZ6m7V6pEFAtufWwsmOgH7VqYZZcKOwODdq_psLBCxzNcVIH3IB2zcVXfgIQM9RvXQX1YhQN9-BbBH0ByBY9fuQuMacuD287bzCe4FhOaks2YWbg" alt="Update в SQL"/></figure>
<p>Но и это еще не все. Можно использовать select from и update для обновления на основе информации из других таблиц.</p>
<h3 class="wp-block-heading"><span class="ez-toc-section" id="%D0%9D%D0%B0_%D0%BE%D1%81%D0%BD%D0%BE%D0%B2%D0%B5_%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D1%85_%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86"></span>На основе других таблиц<span class="ez-toc-section-end"></span></h3>
<p>В условии Where можно использовать вложенные команды – from и select. Вот – пример, в котором сначала sets индикатор жанра “Epic poetry”, а затем на основе соответствующего значения происходит отбор строки для обновления:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/OfGjETYGkDzhOXVxvH9z8rjo-w_feD9ZyJRLURrhniuVoezT-DyNwOAeIGaSiVIMTeEM1gioGtyvaNI13W1Zc4yDmDmvdvI7XxUZKFVF_dpjCkMqXLjWnYWSx4t4RZnIBRMBwhUSKz1mMANFaUZY3Q" alt="Update в SQL"/></figure>
<figure class="wp-block-image"><img decoding="async" src="https://lh5.googleusercontent.com/AMpnAbuITraVglaOQnVMwVr4Vy_E_-JMiUDHToYafNJWUPRYq2hVnETP6TU8dxJ8weclz0PZCnmy54N384pdG53QI_BxOx7fIHqOrC0472EiqnUwzM4waA2qWU1H1Iq5YuhF5dV0tGv1mIGZemRtJA" alt="Update в SQL"/></figure>
<p>Чтобы выбрать значения, которые требуется изменить, используется запрос:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/aRRcTQS9o4g5WW0wV7htyTzDbzMAM1xWVFYMf-RQr7L5mjMrKCFPIdyVdXto0CQ3IUczIDeSNWfQOopQWlESTfXM_bR2lFsto1CrJLs79KrOG1iJrYEVj68FqCfkQZzSGm5c7K5eih1Cz12gbWifNA" alt="Update в SQL"/></figure>
<p>Требуется изменить стоимость всех книг, которых менее 5 штук на складе, на минимальную сумму продажи. Она будет равна 480. Обновить таблицу из самой себя не получится. Поэтому придется объединить компоненты между собой:</p>
<figure class="wp-block-image"><img decoding="async" src="https://lh6.googleusercontent.com/AOa-0PzXf8CWnf3VWhDNJzsMkWdii43rCU0QZKFPzl6M3H9sw4BWbEiBarUe_6yDlhXyYaVLcsetQkhM7uTap_8K7PZcLXkIoMXDHP6bWnGPDKY4tcv9kKRV-lGKQFJy7rrzsUhfZp5-tr5tPV-keg" alt="Update в SQL"/></figure>
<p>Все это – основы работы с SQL. Лучше понимать запросы, primary key, tables и даже изучить T-SQL с нуля помогут специальные дистанционные компьютерные курсы. Они прекрасно совмещаются с карьерой и учебой, а в конце выдается электронный сертификат, подтверждающий спектр приобретенных навыков и умений. </p>
<p><em>Прокачать <a href="https://otus.ru/lessons/subd/?utm_source=oj&utm_medium=affilate&utm_campaign=subd" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right">навыки работы с базами данных<span class="wpel-icon wpel-image wpel-icon-6"></span></a> можно на курсах Otus.</em><a href="https://pinterest.com/pin/create/button/?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fmysql-i-select-opisanie-i-primenenie%2F&media=https%3A%2F%2Fotus.ru%2Fjournal%2Fwp-content%2Fuploads%2F2023%2F04%2Foj-1080x7208-1.jpg&description=MySQL%20%D0%B8%20Select%3A%20%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B8%20%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5" target="_blank" rel="noreferrer noopener nofollow external" data-wpel-link="external" class="wpel-icon-right"><span class="wpel-icon wpel-image wpel-icon-6"></span></a></p>
</div><!-- .post-content -->
<div class="the-post-foot cf">
<div class="tag-share cf">
<div class="post-tags"><a href="https://otus.ru/journal/tag/sql/" rel="tag" data-wpel-link="internal">SQL</a></div>
<div class="post-share">
<div class="post-share-icons cf">
<span class="counters">
</span>
<a href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fotus.ru%2Fjournal%2Fupdate-v-sql%2F" class="link facebook wpel-icon-right" target="_blank" title="Share on Facebook" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-facebook"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fupdate-v-sql%2F&text=Update%20%D0%B2%20SQL" class="link twitter wpel-icon-right" target="_blank" title="Share on Twitter" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-twitter"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fotus.ru%2Fjournal%2Fupdate-v-sql%2F" class="link linkedin wpel-icon-right" target="_blank" title="LinkedIn" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-linkedin"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
<a href="https://pinterest.com/pin/create/button/?url=https%3A%2F%2Fotus.ru%2Fjournal%2Fupdate-v-sql%2F&media=https%3A%2F%2Fotus.ru%2Fjournal%2Fwp-content%2Fuploads%2F2023%2F04%2Foj-1080x72012-1.jpg&description=Update%20%D0%B2%20SQL" class="link pinterest wpel-icon-right" target="_blank" title="Pinterest" data-wpel-link="external" rel="nofollow external noopener noreferrer"><i class="fa fa-pinterest-p"></i><span class="wpel-icon wpel-image wpel-icon-6"></span></a>
</div>
</div>
</div>
</div>
<div class="post-nav">
<div class="post previous cf">
<a href="https://otus.ru/journal/animaciya-v-jquery/" title="Prev Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-left"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/animaciya-v-jquery/" class="image-link" rel="previous" data-wpel-link="internal">
<img width="150" height="106" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20106%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Анимация в JQuery" decoding="async" data-srcset="https://otus.ru/journal/wp-content/uploads/2023/04/oj-1080x72011-1-150x106.jpg 150w, https://otus.ru/journal/wp-content/uploads/2023/04/oj-1080x72011-1-300x212.jpg 300w, https://otus.ru/journal/wp-content/uploads/2023/04/oj-1080x72011-1-1024x724.jpg 1024w, https://otus.ru/journal/wp-content/uploads/2023/04/oj-1080x72011-1-768x543.jpg 768w, https://otus.ru/journal/wp-content/uploads/2023/04/oj-1080x72011-1-1536x1086.jpg 1536w" data-src="https://otus.ru/journal/wp-content/uploads/2023/04/oj-1080x72011-1-150x106.jpg" data-sizes="(max-width: 150px) 100vw, 150px" title="Анимация в JQuery" /> </a>
<div class="post-meta">
<span class="label">Prev Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/animaciya-v-jquery/" data-wpel-link="internal">Анимация в JQuery</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/animaciya-v-jquery/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2023-04-07T20:05:09+00:00">7 апреля, 2023</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">5 Mins Read</span>
</div>
</div> </div>
</span>
</div>
<div class="post next cf">
<a href="https://otus.ru/journal/udalennyj-stol-ot-microsoft-opisanie-i-ispolzovanie/" title="Next Post" class="nav-icon" data-wpel-link="internal">
<i class="fa fa-angle-right"></i>
</a>
<span class="content">
<a href="https://otus.ru/journal/udalennyj-stol-ot-microsoft-opisanie-i-ispolzovanie/" class="image-link" rel="next" data-wpel-link="internal">
<img width="150" height="106" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20150%20106%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="attachment-thumbnail size-thumbnail lazyload wp-post-image" alt="Удаленный стол от Microsoft: описание и использование" decoding="async" data-srcset="https://otus.ru/journal/wp-content/uploads/2023/04/oj-1080x72014-1-150x106.jpg 150w, https://otus.ru/journal/wp-content/uploads/2023/04/oj-1080x72014-1-300x212.jpg 300w, https://otus.ru/journal/wp-content/uploads/2023/04/oj-1080x72014-1-1024x724.jpg 1024w, https://otus.ru/journal/wp-content/uploads/2023/04/oj-1080x72014-1-768x543.jpg 768w, https://otus.ru/journal/wp-content/uploads/2023/04/oj-1080x72014-1-1536x1086.jpg 1536w" data-src="https://otus.ru/journal/wp-content/uploads/2023/04/oj-1080x72014-1-150x106.jpg" data-sizes="(max-width: 150px) 100vw, 150px" title="Удаленный стол от Microsoft: описание и использование" /> </a>
<div class="post-meta">
<span class="label">Next Post</span>
<div class="post-meta post-meta-b">
<h2 class="post-title">
<a href="https://otus.ru/journal/udalennyj-stol-ot-microsoft-opisanie-i-ispolzovanie/" data-wpel-link="internal">Удаленный стол от Microsoft: описание и использование</a>
</h2>
<div class="below">
<a href="https://otus.ru/journal/udalennyj-stol-ot-microsoft-opisanie-i-ispolzovanie/" class="meta-item date-link" data-wpel-link="internal"><time class="post-date" datetime="2023-04-08T16:13:48+00:00">8 апреля, 2023</time></a>
<span class="meta-sep"></span>
<span class="meta-item read-time">5 Mins Read</span>
</div>
</div> </div>
</span>
</div>
</div>
<section class="related-posts grid-3">
<h4 class="section-head"><span class="title">Читать ещё</span></h4>
<div class="ts-row posts cf">
<article class="post col-4">
<a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" title="Уровень готовности CTO к 2026" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Уровень готовности CTO к 2026" title="Уровень готовности CTO к 2026" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-3-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/uroven-gotovnosti-cto-k-2026/" class="post-link" data-wpel-link="internal">Уровень готовности CTO к 2026</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-16T19:50:59+00:00">16 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" title="Новые уроки ноября: только топ-темы по программированию" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Новые уроки ноября: только топ-темы по программированию" title="Новые уроки ноября: только топ-темы по программированию" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg 270w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-770x515.jpg 770w, https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-370x245.jpg 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/11/oj-1080x720-kopiya-2-270x180.jpg" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/novye-uroki-noyabrya-tolko-top-temy-po-programmirovaniju/" class="post-link" data-wpel-link="internal">Новые уроки ноября: только топ-темы по программированию</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-11-09T23:24:11+00:00">9 ноября, 2025</time>
</div>
</div>
</article >
<article class="post col-4">
<a href="https://otus.ru/journal/schjot-idjot-na-chasy/" title="Счёт идёт на часы" class="image-link" data-wpel-link="internal">
<img width="270" height="180" src="data:image/svg+xml,%3Csvg%20viewBox%3D%270%200%20270%20180%27%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%3E%3C%2Fsvg%3E" class="image lazyload wp-post-image" alt="Счёт идёт на часы" title="Счёт идёт на часы" decoding="async" loading="lazy" data-srcset="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png 270w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-770x515.png 770w, https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-370x245.png 370w" data-src="https://otus.ru/journal/wp-content/uploads/2025/10/oj-1080x720-kopiya-7-270x180.png" data-sizes="(max-width: 270px) 100vw, 270px" /> </a>
<div class="content">
<h3 class="post-title"><a href="https://otus.ru/journal/schjot-idjot-na-chasy/" class="post-link" data-wpel-link="internal">Счёт идёт на часы</a></h3>
<div class="post-meta">
<time class="post-date" datetime="2025-10-30T15:04:59+00:00">30 октября, 2025</time>
</div>
</div>
</article >
</div>
</section>
</article> <!-- .the-post -->
</div>
<aside class="col-4 sidebar">
<div class="inner">
<ul>
<li id="search-2" class="widget widget_search"><h5 class="widget-title"><span>Поиск по блогу</span></h5>
<form method="get" class="search-form" action="https://otus.ru/journal/">
<label>
<span class="screen-reader-text">Search for:</span>
<input type="search" class="search-field" placeholder="Введите запрос и нажмите Enter" value="" name="s" title="Search for:" />
</label>
<button type="submit" class="search-submit"><i class="fa fa-search"></i></button>
</form>
</li>
<li id="tag_cloud-5" class="widget widget_tag_cloud"><h5 class="widget-title"><span>Метки</span></h5><div class="tagcloud"><a href="https://otus.ru/journal/tag/android-2/" class="tag-cloud-link tag-link-74 tag-link-position-1" style="font-size: 12.472222222222pt;" aria-label="Android (34 элемента)" data-wpel-link="internal">Android</a>
<a href="https://otus.ru/journal/tag/c-3/" class="tag-cloud-link tag-link-91 tag-link-position-2" style="font-size: 10.916666666667pt;" aria-label="C (23 элемента)" data-wpel-link="internal">C</a>
<a href="https://otus.ru/journal/tag/c-2/" class="tag-cloud-link tag-link-81 tag-link-position-3" style="font-size: 12.666666666667pt;" aria-label="C# (35 элементов)" data-wpel-link="internal">C#</a>
<a href="https://otus.ru/journal/tag/c/" class="tag-cloud-link tag-link-20 tag-link-position-4" style="font-size: 12.472222222222pt;" aria-label="c++ (34 элемента)" data-wpel-link="internal">c++</a>
<a href="https://otus.ru/journal/tag/computer-science/" class="tag-cloud-link tag-link-209 tag-link-position-5" style="font-size: 15.972222222222pt;" aria-label="computer science (78 элементов)" data-wpel-link="internal">computer science</a>
<a href="https://otus.ru/journal/tag/css/" class="tag-cloud-link tag-link-288 tag-link-position-6" style="font-size: 8.6805555555556pt;" aria-label="CSS (13 элементов)" data-wpel-link="internal">CSS</a>
<a href="https://otus.ru/journal/tag/data-science/" class="tag-cloud-link tag-link-151 tag-link-position-7" style="font-size: 8pt;" aria-label="Data Science (11 элементов)" data-wpel-link="internal">Data Science</a>
<a href="https://otus.ru/journal/tag/devops/" class="tag-cloud-link tag-link-98 tag-link-position-8" style="font-size: 10.138888888889pt;" aria-label="devops (19 элементов)" data-wpel-link="internal">devops</a>
<a href="https://otus.ru/journal/tag/docker/" class="tag-cloud-link tag-link-143 tag-link-position-9" style="font-size: 8.2916666666667pt;" aria-label="Docker (12 элементов)" data-wpel-link="internal">Docker</a>
<a href="https://otus.ru/journal/tag/gamedev/" class="tag-cloud-link tag-link-25 tag-link-position-10" style="font-size: 11.694444444444pt;" aria-label="gamedev (28 элементов)" data-wpel-link="internal">gamedev</a>
<a href="https://otus.ru/journal/tag/hr/" class="tag-cloud-link tag-link-103 tag-link-position-11" style="font-size: 8pt;" aria-label="hr (11 элементов)" data-wpel-link="internal">hr</a>
<a href="https://otus.ru/journal/tag/html/" class="tag-cloud-link tag-link-217 tag-link-position-12" style="font-size: 11.208333333333pt;" aria-label="HTML (25 элементов)" data-wpel-link="internal">HTML</a>
<a href="https://otus.ru/journal/tag/ios/" class="tag-cloud-link tag-link-101 tag-link-position-13" style="font-size: 8.9722222222222pt;" aria-label="iOS (14 элементов)" data-wpel-link="internal">iOS</a>
<a href="https://otus.ru/journal/tag/it/" class="tag-cloud-link tag-link-50 tag-link-position-14" style="font-size: 10.527777777778pt;" aria-label="IT (21 элемент)" data-wpel-link="internal">IT</a>
<a href="https://otus.ru/journal/tag/java/" class="tag-cloud-link tag-link-75 tag-link-position-15" style="font-size: 15.680555555556pt;" aria-label="Java (73 элемента)" data-wpel-link="internal">Java</a>
<a href="https://otus.ru/journal/tag/javascript/" class="tag-cloud-link tag-link-83 tag-link-position-16" style="font-size: 14.319444444444pt;" aria-label="JavaScript (53 элемента)" data-wpel-link="internal">JavaScript</a>
<a href="https://otus.ru/journal/tag/linux/" class="tag-cloud-link tag-link-141 tag-link-position-17" style="font-size: 11.888888888889pt;" aria-label="Linux (29 элементов)" data-wpel-link="internal">Linux</a>
<a href="https://otus.ru/journal/tag/machine-learning/" class="tag-cloud-link tag-link-167 tag-link-position-18" style="font-size: 8.6805555555556pt;" aria-label="Machine Learning (13 элементов)" data-wpel-link="internal">Machine Learning</a>
<a href="https://otus.ru/journal/tag/otus-book/" class="tag-cloud-link tag-link-261 tag-link-position-19" style="font-size: 9.9444444444444pt;" aria-label="otus book (18 элементов)" data-wpel-link="internal">otus book</a>
<a href="https://otus.ru/journal/tag/php/" class="tag-cloud-link tag-link-45 tag-link-position-20" style="font-size: 10.527777777778pt;" aria-label="PHP (21 элемент)" data-wpel-link="internal">PHP</a>
<a href="https://otus.ru/journal/tag/python/" class="tag-cloud-link tag-link-27 tag-link-position-21" style="font-size: 16.944444444444pt;" aria-label="Python (99 элементов)" data-wpel-link="internal">Python</a>
<a href="https://otus.ru/journal/tag/qa/" class="tag-cloud-link tag-link-155 tag-link-position-22" style="font-size: 11.402777777778pt;" aria-label="qa (26 элементов)" data-wpel-link="internal">qa</a>
<a href="https://otus.ru/journal/tag/sql/" class="tag-cloud-link tag-link-38 tag-link-position-23" style="font-size: 12.861111111111pt;" aria-label="SQL (37 элементов)" data-wpel-link="internal">SQL</a>
<a href="https://otus.ru/journal/tag/team-lead/" class="tag-cloud-link tag-link-364 tag-link-position-24" style="font-size: 9.9444444444444pt;" aria-label="team lead (18 элементов)" data-wpel-link="internal">team lead</a>
<a href="https://otus.ru/journal/tag/unity/" class="tag-cloud-link tag-link-24 tag-link-position-25" style="font-size: 8pt;" aria-label="unity (11 элементов)" data-wpel-link="internal">unity</a>
<a href="https://otus.ru/journal/tag/algoritmy/" class="tag-cloud-link tag-link-30 tag-link-position-26" style="font-size: 9.9444444444444pt;" aria-label="Алгоритмы (18 элементов)" data-wpel-link="internal">Алгоритмы</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh/" class="tag-cloud-link tag-link-40 tag-link-position-27" style="font-size: 10.138888888889pt;" aria-label="Базы данных (19 элементов)" data-wpel-link="internal">Базы данных</a>
<a href="https://otus.ru/journal/tag/matematika/" class="tag-cloud-link tag-link-44 tag-link-position-28" style="font-size: 10.916666666667pt;" aria-label="Математика (23 элемента)" data-wpel-link="internal">Математика</a>
<a href="https://otus.ru/journal/tag/arhitektura-po/" class="tag-cloud-link tag-link-10 tag-link-position-29" style="font-size: 9.4583333333333pt;" aria-label="архитектура ПО (16 элементов)" data-wpel-link="internal">архитектура ПО</a>
<a href="https://otus.ru/journal/tag/bazy-dannyh-2/" class="tag-cloud-link tag-link-251 tag-link-position-30" style="font-size: 10.138888888889pt;" aria-label="базы данных (19 элементов)" data-wpel-link="internal">базы данных</a>
<a href="https://otus.ru/journal/tag/vebinar/" class="tag-cloud-link tag-link-201 tag-link-position-31" style="font-size: 13.930555555556pt;" aria-label="вебинар (48 элементов)" data-wpel-link="internal">вебинар</a>
<a href="https://otus.ru/journal/tag/dajdzhest/" class="tag-cloud-link tag-link-308 tag-link-position-32" style="font-size: 10.722222222222pt;" aria-label="дайджест (22 элемента)" data-wpel-link="internal">дайджест</a>
<a href="https://otus.ru/journal/tag/zapis-vebinara/" class="tag-cloud-link tag-link-226 tag-link-position-33" style="font-size: 14.902777777778pt;" aria-label="запись вебинара (61 элемент)" data-wpel-link="internal">запись вебинара</a>
<a href="https://otus.ru/journal/tag/zapis-uroka/" class="tag-cloud-link tag-link-272 tag-link-position-34" style="font-size: 16.069444444444pt;" aria-label="запись урока (80 элементов)" data-wpel-link="internal">запись урока</a>
<a href="https://otus.ru/journal/tag/informacionnaya-bezopasnost/" class="tag-cloud-link tag-link-232 tag-link-position-35" style="font-size: 10.138888888889pt;" aria-label="информационная безопасность (19 элементов)" data-wpel-link="internal">информационная безопасность</a>
<a href="https://otus.ru/journal/tag/karera-v-it/" class="tag-cloud-link tag-link-292 tag-link-position-36" style="font-size: 9.9444444444444pt;" aria-label="карьера в IT (18 элементов)" data-wpel-link="internal">карьера в IT</a>
<a href="https://otus.ru/journal/tag/podborka/" class="tag-cloud-link tag-link-7 tag-link-position-37" style="font-size: 12.666666666667pt;" aria-label="подборка (35 элементов)" data-wpel-link="internal">подборка</a>
<a href="https://otus.ru/journal/tag/podborka-statej/" class="tag-cloud-link tag-link-219 tag-link-position-38" style="font-size: 15.777777777778pt;" aria-label="подборка статей (75 элементов)" data-wpel-link="internal">подборка статей</a>
<a href="https://otus.ru/journal/tag/programmirovanie/" class="tag-cloud-link tag-link-65 tag-link-position-39" style="font-size: 22pt;" aria-label="программирование (332 элемента)" data-wpel-link="internal">программирование</a>
<a href="https://otus.ru/journal/tag/proekt/" class="tag-cloud-link tag-link-321 tag-link-position-40" style="font-size: 11.888888888889pt;" aria-label="проект (29 элементов)" data-wpel-link="internal">проект</a>
<a href="https://otus.ru/journal/tag/proektnaya-rabota/" class="tag-cloud-link tag-link-310 tag-link-position-41" style="font-size: 11.597222222222pt;" aria-label="проектная работа (27 элементов)" data-wpel-link="internal">проектная работа</a>
<a href="https://otus.ru/journal/tag/seti/" class="tag-cloud-link tag-link-181 tag-link-position-42" style="font-size: 12.958333333333pt;" aria-label="сети (38 элементов)" data-wpel-link="internal">сети</a>
<a href="https://otus.ru/journal/tag/testirovanie/" class="tag-cloud-link tag-link-69 tag-link-position-43" style="font-size: 13.930555555556pt;" aria-label="тестирование (48 элементов)" data-wpel-link="internal">тестирование</a>
<a href="https://otus.ru/journal/tag/upravlenie-komandoj/" class="tag-cloud-link tag-link-63 tag-link-position-44" style="font-size: 11.694444444444pt;" aria-label="управление командой (28 элементов)" data-wpel-link="internal">управление командой</a>
<a href="https://otus.ru/journal/tag/habr-2/" class="tag-cloud-link tag-link-203 tag-link-position-45" style="font-size: 13.930555555556pt;" aria-label="хабр (48 элементов)" data-wpel-link="internal">хабр</a></div>
</li>
</ul>
</div>
</aside>
</div> <!-- .ts-row -->
</div> <!-- .main -->
<footer class="main-footer dark bold">
<section class="lower-footer cf">
<div class="wrap">
<div class="links">
<div class="menu-menju-navykov-container"><ul id="menu-menju-navykov-1" class="menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10413"><a href="https://otus.ru/categories/programming/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Программирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10414"><a href="https://otus.ru/categories/architecture/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Архитектура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10415"><a href="https://otus.ru/categories/operations/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Инфраструктура<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10416"><a href="https://otus.ru/categories/information-security-courses/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Безопасность<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10417"><a href="https://otus.ru/categories/data-science/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Data Science<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10418"><a href="https://otus.ru/categories/gamedev/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">GameDev<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10419"><a href="https://otus.ru/categories/marketing-business/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Управление<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10420"><a href="https://otus.ru/categories/analytics/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Аналитика и анализ<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-10421"><a href="https://otus.ru/categories/testing/" data-wpel-link="external" target="_blank" rel="nofollow external noopener noreferrer" class="wpel-icon-right">Тестирование<span class="wpel-icon wpel-image wpel-icon-6"></span></a></li>
</ul></div> </div>
<p class="copyright"> © 2015-2026 OTUS </p>
<div class="to-top">
<a href="#" class="back-to-top"><i class="fa fa-angle-up"></i> Top</a>
</div>
</div>
</section>
</footer>
</div> <!-- .main-wrap -->
<div class="mobile-menu-container off-canvas" id="mobile-menu">
<a href="#" class="close"><i class="fa fa-times"></i></a>
<div class="logo">
</div>
<ul class="mobile-menu"></ul>
</div>
<div class="search-modal-wrap">
<div class="search-modal-box" role="dialog" aria-modal="true">
<form method="get" class="search-form" action="https://otus.ru/journal/">
<input type="search" class="search-field" name="s" placeholder="Search..." value="" required />
<button type="submit" class="search-submit visuallyhidden">Submit</button>
<p class="message">
Type above and press <em>Enter</em> to search. Press <em>Esc</em> to cancel. </p>
</form>
</div>
</div>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/clearfy/components/comments-plus/assets/js/url-span.js" id="wbcr-comments-plus-url-span-js"></script>
<script type="text/javascript" id="ez-toc-scroll-scriptjs-js-extra">
/* <![CDATA[ */
var eztoc_smooth_local = {"scroll_offset":"30"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/smooth_scroll.min.js" id="ez-toc-scroll-scriptjs-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/js-cookie/js.cookie.min.js" id="ez-toc-js-cookie-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/vendor/sticky-kit/jquery.sticky-kit.min.js" id="ez-toc-jquery-sticky-kit-js"></script>
<script type="text/javascript" id="ez-toc-js-js-extra">
/* <![CDATA[ */
var ezTOC = {"smooth_scroll":"1","visibility_hide_by_default":"","scroll_offset":"30","fallbackIcon":"<span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span>"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/plugins/easy-table-of-contents/assets/js/front.min.js" id="ez-toc-js-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/custom-script.js" id="custom-script-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/magnific-popup.js" id="magnific-popup-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.fitvids.js" id="jquery-fitvids-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/imagesloaded.min.js" id="imagesloaded-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/object-fit-images.js" id="object-fit-images-js"></script>
<script type="text/javascript" id="contentberg-theme-js-extra">
/* <![CDATA[ */
var Bunyad = {"custom_ajax_url":"\/journal\/update-v-sql\/"};
/* ]]> */
</script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theme.js" id="contentberg-theme-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/theia-sticky-sidebar.js" id="theia-sticky-sidebar-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jquery.slick.js" id="jquery-slick-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-content/themes/contentberg/js/jarallax.js" id="jarallax-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/masonry.min.js" id="masonry-js"></script>
<script type="text/javascript" src="https://otus.ru/journal/wp-includes/js/jquery/jquery.masonry.min.js" id="jquery-masonry-js"></script>
</body>
</html>
<!-- Cache served by breeze CACHE - Last modified: Mon, 09 Mar 2026 16:48:50 GMT -->