
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 | paul@example.com |
2 | Molly | NULL | New Jersey | NULL |
3 | Robert | 19 | New York | NULL |
В этой таблице есть несколько неполных записей. Когда пользователи сообщают нам недостающую информацию, мы можем добавить ее с помощью операторов UPDATE.
У пользователя Robert отсутствует адрес электронной почты. Все строки, выбранные с помощью предложения WHERE, будут обновлены, поэтому нам нужно быть осторожными: мы можем выбрать запись для обновления, используя столбец name, но имена не уникальны - в нашей таблице может быть несколько пользователей с именем Robert.
Лучший способ выбрать строку для ее обновления (чтобы убедиться, что вы обновляете только ту строку, которую хотите обновить) - использовать столбец PRIMARY KEY, значения в котором всегда уникальны. В данном случае это столбец с именем id.
Итак, давайте обновим адрес электронной почты, используя такой запрос:
UPDATE users
SET email="robert@example.com"
WHERE id=3;
Теперь таблица будет выглядеть так:
id(PK) | name | age | state | |
---|---|---|---|---|
1 | Paul | 24 | Michigan | paul@example.com |
2 | Molly | NULL | New Jersey | NULL |
3 | Robert | 19 | New York | robert@example.com |
Как обновить несколько столбцов одновременно
У Молли отсутствует значение в двух разных столбцах. Мы можем использовать один оператор UPDATE, разделяя назначения запятыми, например:
UPDATE users
SET age=22, email="molly@example.com"
WHERE id=2;
Таблица теперь будет выглядеть так:
id(PK) | name | age | state | |
---|---|---|---|---|
1 | Paul | 24 | Michigan | paul@example.com |
2 | Molly | 22 | New Jersey | molly@example.com |
3 | Robert | 19 | New York | robert@example.com |
Убедитесь, что вы изменятете только те записи, которые хотите изменить.
Это проблема безопасности. В наших примерах всего несколько строк, но в реальной жизни это может быть база данных приложения или веб-сайта с сотнями, тысячами или даже миллионами пользователей. И мы не хотим доставлять неприятности такому количеству людей.
Поэтому, прежде чем отправлять запрос UPDATE, отправьте запрос SELECT с тем же условием WHERE. Если он возвращает запись(записи), которую(которые) вы хотите обновить. Если SELECT запрос вернул не ту или не те записи которые ожидались, вам нужно изменить условие WHERE.
Например, перед выполнением UPDATE запроса для изменения пользователя Молли, мы могли бы отправить запрос SELECT, чтобы убедиться, что использованное нами предложение WHERE id = 2 является правильным:
SELECT * FROM users
WHERE id=2;
Оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи