SQL оператор UPDATE - запрос на обновление в SQL

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 email
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 email
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 email
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;

 

Комментарии 0

Оставить комментарий


Комментарии могут оставлять только зарегистрированные пользователи

shape shape