П. Г. Демидова А. В. Зафиевский А. А. Короткин А. Н. Лататуев Базы данных Учебное пособие


 Внесение изменений в базу данных


Download 1.32 Mb.
Pdf ko'rish
bet42/94
Sana15.06.2023
Hajmi1.32 Mb.
#1487605
1   ...   38   39   40   41   42   43   44   45   ...   94
Bog'liq
Базы данных

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:
1   ...   38   39   40   41   42   43   44   45   ...   94




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling