Главная » Программирование » Основы SQL. Оператор Update

Основы SQL. Оператор Update

14 сентября 2012 - Рубрики Программирование

2303 просмотров

Добрый день!

Сегодня рассмотрим оператор Update языка SQL. Оператор Update служит для изменения значений в таблице. За одну команду Update можно обновить как одно поле, так и целую группу полей и значений.

В сайдбар справа добавлена кнопка Google+. Если вам поможет данный материал, прошу вас нажмите на кнопку - порекомендуйте сайт в Google.

Синтаксис оператора следующий

 

 

 

 

 

 

 

UPDATE <таблица> SET
<поле1> = <Значение1>,
<поле2> = <значение2>,
...
WHERE <группа условий>

синтаксис довольно прост и чтобы лучше запомнить просто переведите ключевые слова на русский. Потипу «обновить таблицу, присвоить полям значение, где выполняется условие»

Теперь несколько примеров:

1. самый простой апдейт — это без условия, в таком случае будут обновлены все записи в указанных полях

UPDATE employees SET dept_id= 1

В этом примере всем сотрудникам из таблицы employees будет проставлен dept_id=1, то есть все сотрудники будут работать в отделе Бухгалтерия.

Задача, когда нужно обновить все поля встречается, но крайне редко. Чаще нужно обновить одну строку или несколько строк в таблице.

2. обновим возраст у сотрудника «Кондраков» на 27. В данном примере в условии лучше всего использовать уникальный идентификатор сотрудника для однозначной идентификации. Это может быть поле с ограничением первичного ключа (Primary key), либо с ограничением уникальности (Unique). В нашем примере у сотрудника Кондраков id = 7, по нему и будем апдейтить

UPDATE employees SET
age = 27
WHERE id=7

В условии Where может быть сложное условие, соединенное логическими операторами and или or

Теперь рассмотрим как обновить несколько записей. Тут практически то же самое, разница лишь в условии.

Например, нужно обновить поле dept_id на 2 у сотрудников с идентификаторами 3 и 8

UPDATE employees SET
dept_id = 2
WHERE id in (3,8)

4. Кроме того, вам никто не запрещает использовать подзапросы как в условии, так и для указания значения поля.

например, обновить номер отдела на номер Отдела кадров у сотрудников с идентификаторами 5 и 6

UPDATE employees SET
dept_id = (SELECT dept_id FROM departments
           WHERE name LIKE '%тдел%кадров%')
WHERE id IN (5,6)

5. Помимо этого есть возможность обновить только часть записей за один update , при этом не используя секцию WHERE.

Например, обновить номер отдела на 2 для сотрудник с id  4 и номер отдела на 3 для сотрудника с id 7

UPDATE employees SET
DEPT_ID = CASE ID	
		WHEN 4 THEN 2
		WHEN 7 THEN 3
	ELSE DEPT_ID
	END

На самом деле здесь апдейтятся также все поля, только для остальных сотрудников они обновляются на такие же какие были.

Я бы не рекомендовал часто пользоваться данным методом, а также внимательно продумывать код, т.к. вы можете потерять все данные.

Если этот материал оказался вам полезен, порекомендуйте его в в Google, нажав кнопку Google+ справа в сайдбаре или через кнопки социальных сервисов ниже.

П.С. не забудьте оставить комментарий к статье, а также поделиться ссылкой с друзьями и коллегами через социальные сервисы или скопировав ссылку на статью ниже. Кроме того, вы можете предложить тему статьи через кнопку слева "Предложить тему статьи". Там же можно оставить пожелания, идеи по развитию сайта, а также благодарности (ну а вдруг)
П.П.С. предлагаю вам также вступить в Группа Вконтакте!группу Вконтакте, где вы сможете пообщаться с участниками на интересующие вас темы. Смелее!!!
Если вы больше времени проводите в Twitter, то за обновлениями на сайте можно следить, подписавшись на мою лентуTwitter: follow me!

Возможно вам также будут интересны статьи :

 

Предыдущие материалы из данной категории:

Комментариев: 0 , , , ,

Понравилась статья? Поделитесь ссылкой




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




:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

Я человек, а не бот.