SQLite ОБНОВЛЕНИЕ
Вступление
Команда 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 программирования