COMMIT — фиксация изменений;
ROLLBACK — откат изменений.
Только после выполнения фиксации изменений данные появятся в базе.
Обратите внимание: при добавлении данных типа дата ( DATE) мы использовали следующую конструкцию: DATE’YYYY-MM-DD», YYYY — текущий год, ММ — месяц, DD — день.
При использовании INSERTс запросом SELECT также необходимо, чтобы последовательность и типы колонок, перечисленных после команды INSERT, совпадали с последовательностью и типами колонок в запросе SELECT.
Все же зачем применять COMMIT или ROLLBACK и что будет, если эти команды не выполнять?
Во многих СУБД применяется транзакционная модель, что это такое — узнаем чуть позже, но сейчас необходимо понимать, что при запуске операций изменения, вставки, удаления данных эти изменения появятся в базе только после выполнения команды COMMIT.
Я использовал только команду INSERT и не применял ни COMMIT, ни ROLLBACK, но данные все равно появились в базе. Почему так вышло?
Некоторые редакторы поддерживают режим автофиксации изменений, то есть выполняют команду COMMIT за вас.
Если я перечислю не все колонки, какие есть в таблице, куда мы добавляем данные, будет ошибка?
Необязательно. В колонки, которые вы не перечислили, будет добавлено пустое (NULL) значение, ошибка возникнет только если на колонках этой таблицы есть ограничение NOT NULL или первичный ключ.
Контрольные вопросы и задания для самостоятельного выполнения
1. Повторите материалы записей из данного шага.
2. Добавьте в таблицу городов новый город; код города и название придумайте сами.
3. В таблицу CITY1 добавьте все строки из CITY, где популяция меньше полумиллиона человек.
4. В таблицу AUTO добавьте новую машину 999999 ЛАДА, цвет зеленый, 1999 года выпуска.
Шаг 16. Обновление данных — UPDATE
Мы научились добавлять данные в таблицу, но очень часто возникают ситуации, когда нам необходимо обновить, пересчитать данные в одной или нескольких колонках.
Обновление данных в строчках и ячейках таблицы осуществляется с помощью команды UPDATE.
Здесь TABLE_NAME — имя таблицы, где обновляются данные.
Здесь через запятую перечислены имена колонок = значения, а после WHERE описываются условия для отбора обновляемых строк.
Примеры
Добавить к наименованию (CITYNAME) города CITY с кодом (CITYCODE) меньше 2 символ #.
К населению города с населением (PEOPLES) больше 1 000 000 добавить 10.
У всех у людей MAN с именем (FIRSTNAME) Алексей поменять имя на Максим.
У всех у людей с телефоном (PHONENUM), заканчивающихся на 3, поменять имя (FIRSTNAME) на Александр.
Применение обновления UPDATE возможно также без использования предиката WHERE, в этом случае обновятся все строки указанной таблицы в заданных колонках.
Пример, который не нужно выполнять, но обязательно следует изучить.
Обнулить колонку PEOPLES в таблице CITY.
Во всей таблице значение колонки PEOPLES будет равно 0.
Команда обновления данных UPDATE тоже должна завершаться выполнением COMMIT — фиксацией изменений, либо ROLLBACK — откатом изменений.
При выполнении обновления данных следует быть предельно аккуратным и внимательным: последующее восстановление измененных данных, возврат таблицы к состоянию до выполнения UPDATE очень часто бывает затруднителен.
Команда UPDATE TABLE set column1 = val1, columnn = valn без инструкции WHERE обновит значения во всех строчках таблицы TABLE колонок column1, column, будьте особо осторожны при выполнении таких команд.
Если мы обновляем текстовое поле, необходимо ли значение писать в одинарных кавычках?
Да, при обновлении текстовых данных необходимо заключать значения в одинарные кавычки.
Приведите пример обновления данных типа DATE.
Пример: обновите даты выпуска автомобилей LADA на 01.01.2010.
Я выполнил команду UPDATE, попытался выполнить ее повторно из другого окна, но ничего не получилось и программа зависла, в чем причина?
Причина в том, что вы забыли зафиксировать изменения с помощью команды COMMIT. При выполнении первого UPDATE на строки были установлены блокировки, повторное обновление не выполнилось, так как изменения не были вами зафиксированы. Об этом будет более подробная информация в книге в дальнейшем.
Читать дальше
Конец ознакомительного отрывка
Купить книгу