Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по бд.doc
Скачиваний:
6
Добавлен:
01.05.2025
Размер:
4.79 Mб
Скачать

Ввод данных в определенные столбцы таблицы

Имеется возможность ввести данные не во все, а только в определенные столбцы, например, если нужно ввести всю информацию о служащем, кроме номера его пейджера. В этом случае в операторе INSERT вместе со списком значений VALUES нужно указать и список соответствующих им столбцов.

Синтаксис оператора для ввода значений в избранные столбцы таблицы следующий:

INSERT INTO ИМЯ_СХЕМЫ.ИМЯ_ТАБЛИЦЫ ('СТОЛБЕЦ1', 'СТОЛБЕЦ2')

VALUES ('ЗНАЧЕНИЕ1', 'ЗНАЧЕНИЕ2');

В следующем примере в таблицу ORDERS_TBL вводятся значения только для некоторых столбцов.

Пример использования оператора INSERT:

insert into orders_tbl (ord_num, cust_id, prod_id, qty) VALUES ('23A16', ‘409', '7725', 2);

Здесь после имени таблицы в скобках указан список столбцов. Это список всех столбцов, в которые вводятся данные. В данном случае в списке нет только столбца ORD_DATE. Из определения таблицы видно, что столбец ORD_DATE не требует обязательного наличия данных в каждой строке, поскольку в определении таблицы для этого столбца не указано NOT NULL. NOT NULL означает, что пустые значения для столбца не допускаются. Порядок в списке значений должен соответствовать порядку ввода значений в таблицу, задаваемому списком столбцов.

Список столбцов в операторе INSERT не обязательно должен соответствовать списку столбцов в определении соответствующей таблицы, а вот список вводимых значений должен обязательно соответствовать списку избранных столбцов

Ввод данных из другой таблицы

В таблицу можно вводить данные, полученные в результате запроса к другой таблице, воспользовавшись комбинацией операторов INSERT и SELECT. Коротко говоря, запрос – это обращение к базе данных, имеющее целью получение данных. Запрос можно сравнить с вопросом пользователя к базе данных, а возвращенные данные – с полученным ответом. Если скомбинировать операторы INSERT и SELECT, имеется возможность ввести в таблицу данные, полученные в результате запроса.

Синтаксис оператора для ввода данных из одной таблицы в другую следующий: insert into имя_схемы.имя_таблицы [('столбец1', 'столбец2')] select [* | ('столбец!', 'столбец2')]

from имя_таблицы [where условия];

Здесь вы видите три новых ключевых слова SELECT, FROM и WHERE. SELECT является основной командой для построения запросов в SQL. С помощью FROM в запросе указываются имена таблиц, в которых необходимо отыскать данные. С помощью WHERE в запросах задаются условия, определяющие суть запроса. Таким условием может быть, например, WHERE NAME = 'SMITH'. Использование этих трех ключевых слов подробно обсуждается в ходе уроков 7 и 8.

В следующем примере используется простой запрос, чтобы увидеть все данные таблицы PRODUCTS_TBL. Здесь SELECT * говорит серверу базы данных, что необходимо получить информацию из всех столбцов таблицы. А отсутствие ключевого слова WHERE означает, что необходимо показать все записи таблицы.

select * from products_tbl;

PROD_ID PROD_DESC COST

11235 КОСТЮМ ВЕДЬМЫ 29.99

222 ПЛАСТИКОВЫЕ ТЫКВЫ 7.75

13 ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ 1.1

90 ФОНАРИ 14.5

15 КОСТЮМЫ В АССОРТИМЕНТЕ 10

9 СЛАДКАЯ КУКУРУЗА 1.35

6 ТЫКВЕННЫЕ КОНФЕТЫ 1.45

87 ПЛАСТИКОВЫЕ ПАУКИ 1.05

119 МАСКИ В АССОРТИМЕНТЕ 4.95

1234 ЦЕПОЧКА ДЛЯ КЛЮЧЕЙ 5.95

2345 ПОЛОЧКА ИЗ ДУБА 59.99

Теперь данные, полученные в результате этого запроса, введем в таблицу PRODUCTS_TMP. Вы увидите, что в этой временной таблице будут созданы 11 строк.

INSERT INTO PRODUCTS_TMP SELECT * FROM PRODOCTS_TBL;