Добавление всех столбцов

Добавление значений NULL

Однострочный оператор INSERT

Ниже приведен оператор insert, который добавляет информацию о служащем Якобсене в учебную базу данных:

Вначале оператор создает новую строку, структура которой повторяет структуру столбцов таблицы, а затем заполняет ее значениями из предложения values и добавляет эту строку в таблицу. Строки в таблице не упорядочены, поэтому нет никаких указаний о том, где вставлять строку: "вверху", "внизу" или "между двух строк" таблицы. Эта строка будет входить в результаты последующих запросов на чтение таблицы salesreps, но в таблице результатов запроса она может находиться в любом месте.

Предположим, что служащий Якобсен получает свой первый заказ от компании InterCorp, нового клиента, которому присвоен идентификатор 2126. Это заказ на 20 изделий ACI-41004 общей стоимостью $2340, и ему присваивается номер 113069. Ниже приведены операторы insert, добавляющие в базу данных информацию о новом клиенте и заказе:

При добавлении в таблицу новой строки всем столбцам, имена которых отсутствуют в списке столбцов оператора insert, автоматически присваивается значение null. В операторе insert, с помощью которого в таблицу salesreps была добавлена информация о служащем Якобсене, были опущены столбцы quota и manager:

Из-за этого новая строка в столбцах quota и manager содержит значение null. Значение null можно присвоить явным образом, включив эти столбцы в список столбцов, а в списке значений задав для них ключевое слово null. Применение следующего оператора insert приведет к тому же результату, что и в предыдущем случае:

Для удобства SQL разрешается не включать список столбцов в оператор insert. Если список столбцов опущен, он генерируется автоматически и в нем слева направо перечисляются все столбцы таблицы. При выполнении оператора select * генерируется такой же список столбцов. Пользуясь этой сокращенной формой записи, предыдущий оператор insert можно переписать таким образом:

Как видно из данного примера, если список столбцов опущен, то в списке значений необходимо явно указывать значение null. Кроме того, последовательность значений данных должна в точности соответствовать порядку столбцов в таблице.

В интерактивном режиме удобно не включать в оператор insert список столбцов, так как это уменьшает длину оператора. В случае программного

values, и столбцами, для которых эти данные предназначены. Список значений и столбцов должны содержать одинаковое число элементов, а тип данных каждого значения должен соответствовать типу соответствующего столбца, иначе произойдет ошибка. Стандарт ANSI/ISO требует, чтобы в списке столбцов использовались простые имена, но во многих СУБД допускаются и полные. Ясно, что в именах столбцов в любом случае не может быть неоднозначности, потому что все они являются ссылками на столбцы целевой таблицы.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: