Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики. Максим Михайлович Чалышев
Чтение книги онлайн.

Читать онлайн книгу Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики - Максим Михайлович Чалышев страница 20

СКАЧАТЬ помнить, что количество колонок в скобках и количество добавляемых значений должны соответствовать друг другу.

      Также очень важно, чтобы колонки и значения соответствовали по типу данных.

      Примеры

      Добавим новые сведения о человеке в таблицу 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. Добавьте в таблицу городов новый город; код города и название придумайте СКАЧАТЬ