SQL — добавление данных в таблицу
Существуют два основных синтаксиса инструкции INSERT INTO:
INSERT INTO ИМЯ _ ТАБЛИЦЫ ( столбец 1 , столбец 2 , столбец 3 , . . . столбец N )
VALUES ( значение 1 , значение 2 , значение 3 , . . . значение N ) ;
Здесь столбец1, столбец2, столбец3,… столбец N — это названия столбцов в таблице, в которые вы хотите вставить данные. Вы можете не указывать имя столбца в SQL-запросе, если добавляете значения для всех столбцов таблицы. Но убедитесь, что порядок значений соответствует порядку столбцов в таблице.
В таком случае синтаксис инструкции SQL INSERT INTO будет следующим:
Как добавить данные в столбец из другой таблицы в SQL?
Есть две таблицы — ТаблицаА и ТаблицаБ. В каждой из них есть столбец — Код товара.
Я создал новый пустой столбец Название в таблице ТаблицаА . Как его заполнить данными из таблицы Б, используя Код товара, как основу для метчинга? Я пробовал создавать комбинированный запрос. в двух вариантах и оба варианта затирают данные всех столбцов, кроме того, который заполняется в ТаблицеА, не смотря на EXCEPT или явное указание столбца.
Что я делаю не так? Есть ли еще варианты? Спасибо
1.
INSERT INTO ТаблицаА (* EXCEPT(код товара, количество)) SELECT
Название FROM ТаблицаА
LEFT OUTER JOIN ТаблицаБ
ON ТаблицаА.Код товара=ТаблицаБ.Код товара
2.
INSERT INTO ТаблицаА (Название ) SELECT
Название FROM ТаблицаА
LEFT OUTER JOIN ТаблицаБ
ON ТаблицаА.Код товара=ТаблицаБ.Код товара
- Вопрос задан более года назад
- 2125 просмотров
Комментировать
Решения вопроса 1
alexanderzanin @alexanderzanin
CREATE TABLE product_a ( id SMALLINT AUTO_INCREMENT, name_a VARCHAR(10), code_a INTEGER, PRIMARY KEY (id) ); CREATE TABLE product_b ( id SMALLINT AUTO_INCREMENT, name_b VARCHAR(10), code_b INTEGER, PRIMARY KEY (id) ); INSERT INTO product_b VALUES (null, 'prod_b_3', 300); ALTER TABLE product_a ADD name_b VARCHAR(10); UPDATE product_a AS pa SET pa.name_b = (SELECT pb.name_b FROM product_b AS pb WHERE pb.code_b = pa.code_a);
Ответ написан более года назад
Комментировать
Нравится Комментировать
Ответы на вопрос 0
Ваш ответ на вопрос
Войдите, чтобы написать ответ
- SQL
- +1 ещё
Массив структур в Hive. Как проверить вхождение в массив структуры по маске?
- 1 подписчик
- вчера
- 72 просмотра
Как добавить данные в столбец sql
Сразу после создания таблицы она не содержит никаких данных. Поэтому, чтобы она была полезна, в неё прежде всего нужно добавить данные. По сути данные добавляются в таблицу по одной строке. И хотя вы конечно можете добавить в таблицу несколько строк, добавить в неё меньше, чем строку, невозможно. Даже если вы указываете значения только некоторых столбцов, создаётся полная строка.
Чтобы создать строку, вы будете использовать команду INSERT . В этой команде необходимо указать имя таблицы и значения столбцов. Например, рассмотрим таблицу товаров из Главы 5:
CREATE TABLE products ( product_no integer, name text, price numeric );
Добавить в неё строку можно было бы так:
INSERT INTO products VALUES (1, 'Cheese', 9.99);
Значения данных перечисляются в порядке столбцов в таблице и разделяются запятыми. Обычно в качестве значений указываются константы, но это могут быть и скалярные выражения.
Показанная выше запись имеет один недостаток — вам необходимо знать порядок столбцов в таблице. Чтобы избежать этого, можно перечислить столбцы явно. Например, следующие две команды дадут тот же результат, что и показанная выше:
INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', 9.99); INSERT INTO products (name, price, product_no) VALUES ('Cheese', 9.99, 1);
Многие считают, что лучше всегда явно указывать имена столбцов.
Если значения определяются не для всех столбцов, лишние столбцы можно опустить. В таком случае эти столбцы получат значения по умолчанию. Например:
INSERT INTO products (product_no, name) VALUES (1, 'Cheese'); INSERT INTO products VALUES (1, 'Cheese');
Вторая форма является расширением PostgreSQL . Она заполняет столбцы слева по числу переданных значений, а все остальные столбцы принимают значения по умолчанию.
Для ясности можно также явно указать значения по умолчанию для отдельных столбцов или всей строки:
INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', DEFAULT); INSERT INTO products DEFAULT VALUES;
Одна команда может вставить сразу несколько строк:
INSERT INTO products (product_no, name, price) VALUES (1, 'Cheese', 9.99), (2, 'Bread', 1.99), (3, 'Milk', 2.99);
Также возможно вставить результат запроса (который может не содержать строк либо содержать одну или несколько):
INSERT INTO products (product_no, name, price) SELECT product_no, name, price FROM new_products WHERE release_date = 'today';
Это позволяет использовать все возможности механизма запросов SQL (см. Главу 7) для вычисления вставляемых строк.
Подсказка
Когда нужно добавить сразу множество строк, возможно будет лучше использовать команду COPY . Она не такая гибкая, как INSERT , но гораздо эффективнее. Дополнительно об ускорении массовой загрузки данных можно узнать в Разделе 14.4.
| Пред. | Наверх | След. |
| Глава 6. Модификация данных | Начало | 6.2. Изменение данных |
SQL запрос INSERT INTO — наполнить базу данных информацией
sql запрос INSERT INTO имеет смысл при созданной таблицы базы данных. То есть, таблица существует, имеет название, созданные строки и столбцы. создается таблица оператором: CREATE TABLE, модифицируется таблица оператором ALTER TABLE.
sql запрос INSERT INTO — синтаксис запроса
sql запрос INSERT INTO имеет следующий синтаксис:
INSERT INTO название_таблицы (в скобки, если нужно, вставляем список колонок куда нужно вставить данные) VALUES вставляемые данные1, вставляемые данные2, вставляемые данные3.
Между INSERT и INTRO можно вставить опцию IGNORE. Она не обязательная. Нужна для защиты первичных ключей при редактировании таблицы. Иначе, если при редактировании происходит дублирование первичных ключей, то при вставке опции IGNORE первая строка с первичным ключом останется в изменяемой таблице, Другие первичные ключи удаляются. По умолчанию эту опцию опускаем.

Статьи по теме: Подзапросы SQL, урок 15 — вложенные запросы
Есть необязательные опции LOW_PRIORITY и DELAYED. Они определяют приоритеты добавления информации в БД. Первая задает ожидание освобождения БД, вторая означает буферизацию информации.
Строка в запросе: INSERT с фразой VALUES позволит добавить одиночную строку в таблицу БД. Фраза VALUES содержит значения этих данных.
Вместо фразы VALUES могут указываться подзапросы. INSERT с подзапросом добавляет к таблице строки, возвращенные подзапросом. Сервер базы данных обрабатывает подзапрос и вставляет все возвращенные строки в таблицу. Сервер не вставляет строки, если подзапрос их не выбирает.
- subquery_1 — подзапрос, который сервер обрабатывает тем же способом что и представление
- subquery_2 — подзапрос, который возвращает строки, вставляемые в таблицу. Список этого подзапроса должен иметь количество столбцов, совпадающее со списком столбцов INSERT.
Подзапросы практически не используются в базе данных MySQL.
Статьи по теме: Функции СУБД обеспечивающие управление базой данных
Примеры sql запроса INSERT INTO в базе данных MySQL
Вставляем новые строки в БД MySQL командой INSERT INTRO.
Первый пример.
Вставляем новые строки в таблицу table_name.
INSERT INTO table_name VALUES (‘2′,’145′,’1′,’name’);
Это значит, что мы хотим в таблицу table_name вставить в столбцы значения 2,145,1,name. Так как, столбцы не указаны значения заполяются во все столбцы таблицы.
Пример второй.
Вставка информации в нужные (указанные) столбцы таблицы table_name.
INSERT INTO table_name (client_customer, client_subclient, client_mail) VALUES (‘name1′,’subname1′,’name1@mail.ru′), (‘name2′,’subname2′,’name2@mail.ru′), (‘name3′,’subname3′,(’name3@mail.ru′);
Игорь Серов специально для сайта «Интернет технологии».
Другие статьи раздела: СУБД
- PhpMyAdmin на локальном сервере
- Что такое база данных — понятие база данных в информатике
- Функции СУБД обеспечивающие управление базой данных
- Устройство реляционной базы данных
- Первичный ключ и внешний ключ таблиц реляционных баз данных
- Концептуальная модель базы данных — диаграмма связи между объектами
- Понятие и назначение SQL запроса
- SQL запрос для создания таблицы базы данных — оператор CREATE TABLE
- SQL ALTER TABLE — sql запрос на модификацию таблицы базы данных
