П. Г. Демидова А. В. Зафиевский А. А. Короткин А. Н. Лататуев Базы данных Учебное пособие
Внесение изменений в базу данных
Download 1.32 Mb. Pdf ko'rish
|
Базы данных
- Bu sahifa navigatsiya:
- 3.5.1. Вставка строк
3.5. Внесение изменений в базу данных
Мы рассмотрели основные возможности оператора SELECT, который производит выборку (чтение) данных из базы данных и не изменяет ее содержимое. Перейдем теперь к операторам, осуществляющим изменение данных, хранящихся в базе данных (часто говорят «производят запись», что не совсем точно). Применительно к реляционной модели данных это операторы INSERT INTO, добавляющие строки в таблицы базы данных, DELETE, удаляющие строки, и UPDATE, вносящие частичные или полные изменения в строки таблиц базы данных. 3.5.1. Вставка строк Оператор вставки строк INSERT INTO имеет две разновидности: для вставки одиночной строки и для вставки группы строк. Оператор вставки в таблицу одной строки записывается как INSERT INTO <таблица> [(<список столбцов>)] VALUES (<список значений>) . Список значений должен по количеству элементов и по типам значений соответствовать списку столбцов. Если список столбцов не приведен, то это означает, что вставка ведется во все столбцы таблицы в том порядке, в котором они описаны в описа- нии таблицы. Крайне не рекомендуется опускать этот список, по- скольку любое изменение структуры таблицы потребует измене- ния и в операторах INSERT INTO , что противоречит требованиям логической независимости данных. Если в списке столбцов некоторые столбцы таблицы не при- ведены, то при отсутствии дополнительных указаний (значений по умолчанию, которые будут рассмотрены при описании опера- тора CREATE TABLE ) в соответствующие позиции вставляемой строки будут записаны пустые значения ( null ). С другой стороны, при наличии таких указаний можно явно присвоить той или иной позиции вставляемой строки пустое значение, записав его в списке значений, например: INSERT INTO Stud (nsb,fam,im,ot,grp,gor) VALUES (123456,'Иванов','Петр','Сергеевич','ПИЭ-33',null) . Здесь полю gor значение null присваивается явным образом, а полям dr, adr, stip – неявно, поскольку они отсутствуют в списке столбцов. Для множественной вставки строк в таблицу используется оператор 68 INSERT INTO <таблица> [(<список столбцов>)] <оператор SELECT> , где указанный оператор SELECT обладает тем свойством, что столбцы его результирующей таблицы по количеству элементов и по типам значений соответствуют списку столбцов таблицы, в которую производится вставка. Имена столбцов результирующей таблицы оператора SELECT при этом несущественны. В частности, они могут быть вычисляемыми, содержащими агрегатные функции и т. д. При использовании оператора SELECT в операторах моди- фикации базы данных возникает один тонкий момент, связанный с тем, что оператор SELECT может содержать условие во фразе WHERE или HAVING , которое в случае присутствия в этом условии модифицируемой таблицы будет иметь различный смысл до вставки строк, в процессе вставки и по ее окончании. Чтобы в этом случае избежать двусмысленности, принимается, что все условия вычисляются до начала вставки строк и уже с учетом этого обстоятельства выполняется оператор SELECT . Отметим, что, помимо указанных двух способов вставки строк в таблицу, в каждой конкретной СУБД существуют и дру- гие способы. В частности, практически в каждой СУБД сущест- вуют утилиты массовой загрузки (миграции) данных, которые за- полняют таблицы базы данных информацией из заранее подго- товленных файлов в текстовых форматах, электронных таблиц, а также из других баз данных. Однако такая загрузка происходит достаточно редко, чаще всего при запуске в эксплуатацию новой информационной системы. Download 1.32 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling