кодесурса
«SQLite

SQLite ОБНОВЛЕНИЕ

script1adsense2code
script1adsense3code

Вступление

Команда UPDATE используется для изменения существующих значений на один или несколько столбцов существующих строк в таблице. Эта команда может обновлять более одной строки за раз, но все строки должны быть частью одной таблицы.

Синтаксис:

 ОБНОВЛЕНИЕ table_name SET column_name = new_value [, ...] ГДЕ выражение

Куда,

table_name - имя таблицы, строки или строки таблицы, которые будут обновлены.

new_value - значение, которое будет изменено или вновь назначено.

Вот пример таблицы prod_mast.

 prod_id prod_name prod_rate prod_qc
-------------------- ---------- ---------- ----------
1 Блины 75 ОК
2 Гюля 55 проблем
3 Пакора 48 ОК
4 Пицца 200 ОК
5 помадка 100 ОК
6 Candy 95 не в порядке
7 Шоколад 150 ОК

Пример:

Если вы хотите обновить столбец prod_qc с помощью «OK», который не был обновлен, можно использовать следующий оператор UPDATE.

UPDATE prod_mast SET prod_qc='OK' WHERE prod_qc<>'OK';

Вот результат после обновления столбца prod_qc с помощью «OK» таблицы prod_mast.

 sqlite> SELECT * FROM prod_mast;
prod_id prod_name prod_rate prod_qc
-------------------- ---------- ---------- ----------
1 Блины 75 ОК
2 Гюля 55 ОК
3 Пакора 48 ОК
4 Пицца 200 ОК
5 помадка 100 ОК
6 Candy 95 ОК
7 Шоколад 150 ОК 

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

Мы создаем другую таблицу и вставляем строки. Вот образец

 sqlite> ВСТАВИТЬ ИЛИ ЗАМЕНИТЬ В Ордера (ord_no, item_id, item_name, ord_qty, cost
   ...> ЗНАЧЕНИЯ (1,5, '', 100, 0),
   ...> (2,2, '', 95, 0),
   ...> (3,1, '', 150,0),
   ...> (4,2, '', 250,0),
   ...> (5,2, '', 300,0)
   ...> (6,10, '', 100, 0),
   ...> (7,8, '', 95, 0)
   ...>;
sqlite> SELECT * FROM orders;
ord_no item_id item_name ord_qty стоимость
-------------------- ---------- ---------- ---------- ----------
1 5 100 0
2 2 95 0
3 1 150 0
4 2 250 0
5 2 300 0
6 10 100 0
7 8 95 0

Обновление с использованием нескольких таблиц

UPDATE orders SET item_name=(SELECT prod_name FROM prod_mast WHERE prod_id = item_id);

Вот результат после обновления столбца item_name таблицы заказов с именем prod_name таблицы prod_mast, которые соответствуют заданным критериям.

 sqlite> SELECT * FROM orders;
ord_no item_id item_name ord_qty стоимость
-------------------- ---------- ---------- ---------- ----------
1 5 помадка 100 0
2 2 Гюля 95 0
3 1 Блинчики 150 0
4 2 Гульха 250 0
5 2 Гульха 300 0
6 10 NULL 100 0
7 8 NULL 95 0

В результате отображаются только два значения столбца item_name для 6-й и 7-й строк, которые не были обновлены и не соответствуют заданным критериям.

ОБНОВИТЬ несколько полей или столбцов, используя значения из другой таблицы

Предположим, что столбец item_name был обновлен пробелом. Вот таблица.

 ord_no item_id item_name ord_qty стоимость
---------- ---------- ---------- ---------- ----------
1 5 100 0
2 2 95 0
3 1 150 0
4 2 250 0
5 2 300 0
6 10 100 0
7 8 95 0

Если вы хотите обновить столбец item_name и cost таблицы заказов на значение prod_name и product of prod_mast.prod_rate и orders.ord_qty, можно использовать следующий оператор.

UPDATE orders SET item_name=(
SELECT prod_mast.prod_name 
FROM prod_mast 
WHERE orders.item_id=prod_mast.prod_id), 
cost=(
SELECT prod_mast.prod_rate*orders.ord_qty 
FROM prod_mast 
WHERE orders.item_id=prod_mast.prod_id);

Вот результат ниже после обновления таблицы заказов.

 sqlite> SELECT * FROM orders;
ord_no item_id item_name ord_qty стоимость
---------- ---------- ---------- ---------- ----------
1 5 помадка 100 10000
2 2 Гуля 95 5225
3 1 Блинчики 150 11250
4 2 Гулха 250 13750
5 2 Гульха 300 16500
6 10 100
7 8 95

Предыдущая: Вставить
Далее: Удалить

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code