Создание запросов на обновление – Visual Database Tools
Twitter
LinkedIn
Facebook
Адрес электронной почты
-
Статья -
-
Применимо к:SQL Server
Запрос UPDATE позволяет изменить содержимое нескольких строк одной операцией. Например, в таблице
titles
можно с помощью запроса UPDATE увеличить цену всех книг определенного издателя на 10%.
При создании запроса UPDATE нужно указать:
-
обновляемую таблицу;
-
столбцы, содержимое которых необходимо обновить;
-
значение или выражение, используемое для обновления отдельных столбцов;
-
условия поиска для выборки строк, которые требуется обновить.
Например, следующий запрос обновляет таблицу titles
, добавляя 10% к цене всех изданий для одного издателя:
UPDATE titles SET price = price * 1.1 WHERE (pub_id = '0766')
Внимание!
Откат действия, произведенного запросом UPDATE, невозможен. В целях предосторожности создайте резервную копию данных перед выполнением запроса.
Создание запроса UPDATE
-
Добавьте таблицу, которую требуется обновить, на панель диаграмм.
-
В меню Конструктор запросов наведите указатель на пункт Тип изменения, а затем выберите пункт Обновить.
Примечание
Если во время создания запроса на обновление на панели диаграммы отображается несколько таблиц, в конструкторе запросов и представлений появляется диалоговое окно Выберите целевую таблицу для Insert Values , в котором пользователь должен указать имя обновляемой таблицы.
-
На панели диаграмм установите флажки рядом с каждым столбцом, для которого необходимо обновить значения. Эти столбцы появятся на панели критериев. Столбцы будут обновлены только в случае добавления их в запрос.
-
В столбце Новое значение на панели критериев введите обновленное значение столбца. Вводить можно константы, имена столбцов или выражения. Значения должны соответствовать типу данных обновляемого столбца или быть совместимыми с ним.
Внимание!
Конструктор запросов и представлений не может проверить, поместится ли значение в обновляемый столбец с определенной длиной. Слишком длинное значение может быть усечено без предупреждения.
Например, если длина столбца
name
— 20 символов, а длина обновляемого значения — 25 символов, последние 5 символов могут быть усечены. -
Задайте обновляемые строки путем ввода условий поиска в столбце Фильтр. Дополнительные сведения см. в разделе Определение критериев поиска (визуальные инструменты для баз данных).
Если условие поиска не задано, будут обновлены все строки указанной таблицы.
Примечание
При добавлении столбца на панель критериев для использования в условии поиска конструктор запросов и представлений также добавит его в список обновляемых столбцов. Если столбец необходимо использовать в условии поиска, но не обновлять, снимите флажок рядом с именем столбца в прямоугольнике, представляющем таблицу или возвращающий табличное значение объект.
При выполнении запроса на обновление в панели результатовне выводятся никакие результаты. Вместо этого появляется сообщение о том, сколько строк было изменено.
Поддерживаемые типы запросов (визуальные инструменты для баз данных)
Разделы по конструированию запросов и представлений (визуальные инструменты для баз данных)
Выполнение основных операций с запросами (визуальные инструменты для баз данных)
SQL оператор UPDATE – запрос на обновление в SQL
После того, как вы создали таблицу в базе данных, она редко должна оставаться неизменной навсегда. Вероятно, вам потребуется изменить записи в ней.
И чтобы помочь вам в этом, есть полезный оператор с метким названием UPDATE, который вы можете использовать для изменения записей по мере необходимости.
Примечание. Если представленный здесь синтаксис не работает, проверьте документацию по реализации используемой вами Базы Данный. Большинство вещей работает одинаково, но есть некоторые различия.
Синтаксис SQL UPDATE
Чтобы использовать метод UPDATE, вы сначала определяете, какую таблицу нужно обновить с помощью UPDATE table_name. После этого вы пишете, какое изменение вы хотите внести в запись, с помощью оператора SET. Наконец, вы используете предложение WHERE, чтобы указать, какие записи нужно изменить.
Очень важно использовать это оператор WHERE, иначе Вы внесете такое же изменение во всю таблицу (все записи таблицы).
UPDATE table_name
SET change to make
WHERE clause to select which records to change;
У нас есть таблица с именем users, которая выглядит следующим образом:
id(PK) | name | age | state | |
---|---|---|---|---|
1 | Paul | 24 | Michigan | [email protected] |
2 | Molly | NULL | New Jersey | NULL |
3 | Robert | 19 | New York | NULL |
В этой таблице есть несколько неполных записей. Когда пользователи сообщают нам недостающую информацию, мы можем добавить ее с помощью операторов UPDATE.
У пользователя Robert отсутствует адрес электронной почты. Все строки, выбранные с помощью предложения WHERE, будут обновлены, поэтому нам нужно быть осторожными: мы можем выбрать запись для обновления, используя столбец name, но имена не уникальны – в нашей таблице может быть несколько пользователей с именем Robert.
Лучший способ выбрать строку для ее обновления (чтобы убедиться, что вы обновляете только ту строку, которую хотите обновить) – использовать столбец PRIMARY KEY, значения в котором всегда уникальны. В данном случае это столбец с именем id.
Итак, давайте обновим адрес электронной почты, используя такой запрос:
UPDATE users
SET email="[email protected]"
WHERE id=3;
Теперь таблица будет выглядеть так:
id(PK) | name | age | state | |
---|---|---|---|---|
1 | Paul | 24 | Michigan | paul@example. |
2 | Molly | NULL | New Jersey | NULL |
3 | Robert | 19 | New York | [email protected] |
Как обновить несколько столбцов одновременно
У Молли отсутствует значение в двух разных столбцах. Мы можем использовать один оператор UPDATE, разделяя назначения запятыми, например:
UPDATE users
SET age=22, email="[email protected]"
WHERE id=2;
Таблица теперь будет выглядеть так:
id(PK) | name | age | state | |
---|---|---|---|---|
1 | Paul | 24 | Michigan | [email protected] |
2 | Molly | 22 | New Jersey | molly@example. |
3 | Robert | 19 | New York | [email protected] |
Убедитесь, что вы изменятете только те записи, которые хотите изменить.
Это проблема безопасности. В наших примерах всего несколько строк, но в реальной жизни это может быть база данных приложения или веб-сайта с сотнями, тысячами или даже миллионами пользователей. И мы не хотим доставлять неприятности такому количеству людей.
Поэтому, прежде чем отправлять запрос UPDATE, отправьте запрос SELECT с тем же условием WHERE. Если он возвращает запись(записи), которую(которые) вы хотите обновить. Если SELECT запрос вернул не ту или не те записи которые ожидались, вам нужно изменить условие WHERE.
Например, перед выполнением UPDATE запроса для изменения пользователя Молли, мы могли бы отправить запрос SELECT, чтобы убедиться, что использованное нами предложение WHERE id = 2 является правильным:
SELECT * FROM users
WHERE id=2;
ОБНОВЛЕНИЕ SQL
— javatpoint
следующий → Команды SQL ( UPDATE и DELETE ) используются для изменения данных, которые уже находятся в базе данных. Оператор SQL UPDATE используется для изменения данных записей, хранящихся в таблицах. Какие строки должны быть обновлены, решается условием. Чтобы указать условие, мы используем предложение WHERE. Оператор UPDATE может быть записан в следующей форме: UPDATE имя_таблицы SET [имя_столбца1= значение1,… имя_столбцаN = значениеN] [ГДЕ условие] Посмотрим на синтаксис:
ОБНОВЛЕНИЕ имя_таблицы Возьмем пример: здесь мы собираемся обновить запись в исходной таблице. Оператор SQL:
ОБНОВИТЬ студентов Исходная таблица:
Посмотрите результат после обновления значения:
Если вы собираетесь обновить несколько полей, вы должны разделить каждое назначение поля запятой. Оператор SQL UPDATE для нескольких полей:
ОБНОВИТЬ студентов Результат таблицы приведен ниже:
СИНТАКСИС MYSQL ДЛЯ ОБНОВЛЕНИЯ ТАБЛИЦЫ:
ОБНОВЛЕНИЕ имя_таблицы ВЫБОР ОБНОВЛЕНИЯ SQL: ОБНОВЛЕНИЕ SQL С ЗАПРОСОМ SELECT: Мы можем использовать оператор SELECT для обновления записей с помощью оператора UPDATE. СИНТАКСИС:
ОБНОВЛЕНИЕ таблицыПункт назначения Вы также можете попробовать этот –
ОБНОВЛЯТЬ Мой SQL СИНТАКСИС: Если вы хотите ОБНОВИТЬ с помощью SELECT в My SQL, вы можете использовать этот синтаксис: Давайте рассмотрим пример с двумя таблицами. Здесь, Первая таблица содержит – Cat_id, cat_name, А вторая таблица содержит – rel_cat_id, rel_cat_name ОБНОВЛЕНИЕ СТОЛБЦА SQL: Мы можем обновить один или несколько столбцов в SQL с помощью запроса SQL UPDATE. ПРИМЕР ОБНОВЛЕНИЯ SQL С ОБНОВЛЕНИЕМ ОДНОЙ СТОЛБЦА:
ОБНОВИТЬ студентов Этот пример SQL UPDATE обновит student_id до «001» в таблице student, где student_name — «AJEET». ПРИМЕР ОБНОВЛЕНИЯ SQL С ОБНОВЛЕНИЕМ НЕСКОЛЬКИХ СТОЛБЦОВ: Чтобы обновить более одного столбца с помощью одного оператора обновления:
ОБНОВИТЬ студентов Эта инструкция SQL UPDATE изменит имя учащегося на “AJEET” и религию на “HINDU”, где имя учащегося будет “RAJU”. Следующая темаSQL UPDATE с JOIN ← предыдущая |
Оператор SQL UPDATE — как правильно обновлять базы данных
Прежде чем читать этот пост, вы можете ознакомиться с нашим постом об операторе SQL INSERT.
TCL COMMIT и ROLLBACK
ROLLBACK — это команда, которая может вернуть состояние данных на шаг назад, но не более того. Это будет относиться к состоянию, соответствующему последнему разу, когда вы выполняли COMMIT. Это означает, что если вы уже использовали COMMIT 10 раз, ROLLBACK повлияет на последнее выполненное вами выполнение. После этого момента, даже если вы запустите предложение ROLLBACK 20 раз, вы сможете добраться до состояния только последнего COMMIT. Вы не можете восстановить данные до состояния, соответствующего более ранней операции COMMIT .
В двух словах, это правила SQL, касающиеся управления транзакциями. Мы должны быть очень осторожны при использовании COMMIT и ROLLBACK — другими словами, когда мы изменяем состояние нашего набора данных.
Пожалуйста, обратите внимание, что будет очень сложно попрактиковаться в этих утверждениях, если мы не отключим следующую функцию Workbench.
Мы можем развернуть вкладку «Правка» в главном меню и выбрать «Настройки». В левой части появившегося окна выберите раздел «Редактор SQL». С правой стороны прокрутите вниз, чтобы добраться до поля с надписью «Безопасные обновления».
Установив этот флажок, программа может предотвратить потерю значительных объемов данных или некоторых ранее внесенных изменений. Тем не менее, это может также исключить возможность контролирует состояние данных в нашей базе данных. Однако ни одна из этих двух функций нам здесь не поможет. Вот почему мы продолжим, не включая эту опцию. Пожалуйста, выключите его.
И, пожалуйста, помните, что после отключения опции «Безопасные обновления» вы должны быть очень осторожны при обновлении и удалении данных в MySQL. Всегда можно сделать простую ошибку, которая может привести к потере большого количества данных. Это не то, чего мы хотим, не так ли?
И последнее — для корректного отключения безопасных обновлений требуется переподключение к базе данных. Итак, давайте выйдем из этого соединения, а затем снова подключимся, введя пароль еще раз!
Теперь мы готовы погрузиться в оператор UPDATE .
Заявление об обновлении
Хорошо! Вот так.
В предыдущем посте про оператор SQL INSERT мы вставили сотрудника под номером 9-9-9-9-0-1, помнишь?
И здесь мы обновим эту запись. Оператор UPDATE позволит нам сделать это. Он используется для обновления значений существующих записей в таблице.
Синтаксис, которого следует придерживаться: UPDATE имя таблицы , ключевое слово SET , имена столбцов и соответствующие им значения, и, наконец, — WHERE , и определенное условие или набор условий, которые должны быть удовлетворены .
Используя эту структуру кода, SQL изменит запись или записи, удовлетворяющие условию WHERE , обновив старые значения перечисленных столбцов новыми.
Мы видим, что номер сотрудника 999901 — Джон Смит.
Итак, мы можем создать запрос со следующим оператором обновления:
UPDATE «Сотрудники», SET, а затем присвоить значение строки «Стелла» столбцу «имя», строку «Паркинсон» столбцу «фамилия», 31 ст от декабря 1990 г. на «дату рождения», а «Ж» на «пол».
Условием здесь является наличие номера сотрудника, равного номеру Джона Смита, 999901. Это означает, что оптимизатор SQL, так сказать, получит доступ к записи с номером сотрудника 999901 и заменит существующие значения новыми, указанными в ОБНОВЛЕНИИ . Заявление .
Обратите внимание, что мы не обновили значение столбца «дата приема на работу», верно? Более того, из-за этого SQL не показывал ошибок.
Это нормально, так как нам не нужно обновлять каждое значение интересующей записи. Конечно, мы все еще можем сказать, что мы обновили конкретную запись!
Хорошо, наконец-то мы можем выполнить этот запрос. После этого мы еще раз выберем того же сотрудника через номер сотрудника. Давай посмотрим что происходит.
Мы видим там Стеллу Паркинсон, а не Джона Смита! С другой датой рождения и полом, но с той же датой найма.
Обратите внимание на следующую особенность оператора UPDATE . Если бы мы использовали несуществующее условие в предложении WHERE (например, номер сотрудника 999909), MySQL разрешил бы выполнение запроса, учитывая, что синтаксис SQL правильный. Тем не менее, ничего бы не произошло — оператор сработал бы, затронув 0 строк, потому что в таблице данных нет сотрудника с таким номером на момент выполнения запроса.
Сосредоточьтесь на еще одной интересной функции, которую мы обсудим далее.
Предложение WHERE в операторе UPDATE
При обновлении таблицы условие WHERE имеет решающее значение, хотя по умолчанию в MySQL оно установлено как необязательное. Если вы не укажете условие WHERE , все строки таблицы будут обновлены.
Проверяем, что у нас есть в таблице «Дубликаты отделов» — девять строк и два столбца с информацией. Хороший.
Для этого упражнения мы изменим все номера и названия отделов в этой таблице. Прямо перед этим мы выполним команду COMMIT . Он «сохранит» набор данных таким, каким мы его видим.
Теперь, если мы напишем код, обновляющий таблицу «Дубликат отдела», установив номер отдела равным D-0-1-1 и название отдела «Контроль качества», а затем запустим его, мы изменим все строки таблицы таблица данных.
Это правда?
Посмотрим…
Абсолютно! «Дубликат отделов» — это таблица, состоящая теперь из одинаковых строк!
Обычно это происходит по ошибке, когда не добавлен пункт WHERE и сопутствующие условия. Если мы сделали это случайно, есть ли способ вернуться?
Конечно! Мы можем сделать это, применив команду ROLLBACK !
При выполнении он приведет нас к последнему выполненному COMMIT . Или, если мы заранее не запустили команду COMMIT , она приведет нас к началу всего кода SQL, и мы потенциально потеряем часы работы.
Вот почему было важно ЗАПИСАТЬ изменения, которые мы сделали минуту назад.
Помните, что вы должны быть осторожны при использовании этой команды, потому что после выполнения COMMIT вы не сможете отменить любое изменение !
Итак, после запуска ROLLBACK, куда мы вернемся?
Давайте проверим…
Отлично! Мы видим информацию, которая у нас была, в таблице «Departments Duplicate» в начале этого поста.
Предположим, что нам нужна текущая версия этой таблицы для остальной части этого руководства. Таким образом, будет очень важно выполнить здесь еще один оператор COMMIT . Давай сделаем это.
Фантастика!
Из уроков об операторе UPDATE мы можем сделать вывод, что вам редко придется обновлять всю таблицу. Скорее, вам придется указать точное условие, которое должно быть выполнено.
Если вы этого не сделаете, вы рискуете превратить свой набор данных в беспорядок. Поэтому будьте очень осторожны при установке условия в предложении WHERE оператора UPDATE .