Шаг 15. Вставка данных в таблицу – INSERT
Введение
Ранее мы с вами изучили, как создавать таблицы и изменять структуру таблиц, а также как извлекать данные из таблиц на экран с помощью команды SELECT. Мы выбирали данные, которые уже были в таблицах. Настало время узнать о том, как добавить необходимые данные в таблицу.
Теория и практика
Для добавления данных в SQL используется команда INSERT.
Команда INSERT существует в SQL в двух вариантах.
Во-первых, для добавления заданных значений – VALUES.
Синтаксис
Важно помнить, что количество колонок в скобках и количество добавляемых значений должны соответствовать друг другу.
Также очень важно, чтобы колонки и значения соответствовали по типу данных.
Примеры
Добавим новые сведения о человеке в таблицу MAN:
В таблицу MAN добавлена строка о человеке с номером телефона «120120120», именем «Максим», фамилией «Леонидов», кодом города 2, ему 25 лет (PHONENUM, FIRSTNAME, LASTNAME, CITYCODE, YEAROLD).
Добавим сведения о новой машине в таблицу AUTO:
В таблицу AUTO добавлена строка о авто c номером «128877655» марки «LADA», цвет «КРАСНЫЙ», дата выпуска «2001-01-01», «123114444».
Второй вариант, для добавления из запроса SELECT
Здесь источником данных являются не одиночные значения, а настоящий запрос SELECT.
Синтаксис:
Примеры
В таблицу CITY1 добавить все строки из CITY, где население больше миллиона человек.
В таблицу MAN1 добавить все строки из MAN.
Важные замечания
Команда INSERT является командой модификации данных, поэтому ее выполнение необходимо завершить одной из следующих команд:
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 символ #.