Оператор TRUNCATE TABLE
Оператор truncate table, в отличие от оператора delete, полностью очищает таблицу и не допускает условного удаления. То есть оператор truncate table аналогичен оператору delete без условия where и ограничения limit. В отличие от оператора delete, удаление происходит гораздо быстрее, т. к. осуществляется не перебор каждой записи, а полное очищение таблицы.
Обновление данных
Операция обновления позволяет менять значения полей в уже существующих записях, это может понадобиться при изменении цен комплектующих, их количества на складе и т. д. Для обновления данных предназначены операторы update и replace. Первый позволяет обновлять отдельные поля в уже существующих записях, тогда как оператор replace больше похож на insert, за исключением того, что если старая записьв данной таблице имеет то же значение индекса unique или primary key, что и новая, то старая запись перед занесением новой будет удалена.
Оператор UPDATE
Оператор update имеет следующий синтаксис:
В инструкции, сразу после ключевого слова update, указывается таблица tbl, которая подвергается изменению. В предложении set указывается, какие столбцы подвергаются обновлению и устанавливаются их новые значения. Необязательное условие WHere позволяет задать критерий отбора строк— обновлению будут подвергаться толькоте строки, которые удовлетворяют условию where_definition.
В листинге 9.1 запись в таблице catalogs "Процессоры" изменяется на "Процессоры (Intel)".
Изменения можно производить не только над выборочными записями, но и над всей таблицей в целом. Пусть требуется изменить цену комплектующих в учебной базе данных в связи с изменением курса доллара. Для этого следует разделить цену в рублях на старый курс (28.5), чтобы получить цену в долларах, и умножить результат на новый курс (28.0).
Если указывается необязательное ключевое слово ignore, to команда обновления не будет прервана, даже если при обновлении возникнет ошибка дублирования ключей. Строки, из-за которых возникают конфликтные ситуации, обновлены не будут.
Оператор REPLACE
Оператор replace работает точно так же, как insert, за исключением того, что если старая запись в данной таблице имеет то же значение индекса unique или primary key, что и новая, то старая запись перед занесением новой будет удалена. Следует учитывать, что если не используются индексы unique или primary key, то применение команды replace не имеет смысла, т. к. она работает просто как insert.
Синтаксис оператора rename аналогичен синтаксису оператора insert:
В таблицу tbl вставляются значения, определяемые в списке после ключевого слова VAlues. Задать порядок столбцов можно при помощи необязательного списка col_name, следующего за именем таблицы tbl. Точно так же, как и в случае оператора insert, оператор replace допускает многострочный формат. Пример использования оператора приведен в листинге 9.5, где в таблицу catalogs добавляется пять новых записей.
Дата добавления: 2020-11-18; просмотров: 398;