Основные операции с данными
Для добавления данных в БД в MySQL используется команда INSERT , которая имеет следующий формальный синтаксис:
INSERT [INTO] имя_таблицы [(список_столбцов)] VALUES (значение1, значение2, . значениеN)
После выражения INSERT INTO в скобках можно указать список столбцов через запятую, в которые надо добавлять данные, и в конце после слова VALUES скобках перечисляют добавляемые для столбцов значения.
Например, пусть в базе данных productsdb есть следующая таблица Products:
CREATE DATABASE productsdb; USE productsdb; CREATE TABLE Products ( Id INT AUTO_INCREMENT PRIMARY KEY, ProductName VARCHAR(30) NOT NULL, Manufacturer VARCHAR(20) NOT NULL, ProductCount INT DEFAULT 0, Price DECIMAL NOT NULL );
Добавим в эту таблицу одну строку с помощью следующего кода:
INSERT Products(ProductName, Manufacturer, ProductCount, Price) VALUES ('iPhone X', 'Apple', 5, 76000);
В данно случае значения будут передаваться столбцам по позиции. То есть стобцу ProductName передается строка «iPhone X», столбцу Manufacturer — строка «Apple» и так далее.
Важно, чтобы между значениями и типами данных столбцов было соответствие. Так, столбец ProductName представляет тип varchar , то есть строку. Соответственно этому столбцу мы можем передать строковое значение в одинарных кавычках. А стобец ProductCount представляет тип int , то есть целое число, поэтому данному столбцу нужно передать целые числа, но никак не строки.
После удачного выполнения в MySQL Workbench в поле вывода должны появиться зеленый маркер и сообщение «1 row(s) affected»:

Необязательно при добавлении данных указывать значения абсолютно для всех столбцов таблицы. Например, в примере выше не указано значение для стобца Id. Но поскольку для данного столбца определен атрибут AUTO_INCREMENT , то его значение будет автоматически генерироваться.
Также мы можем опускать при добавлении такие столбцы, которые поддерживают значение NULL или для которых указано значение по умолчанию, то есть для них определены атрибуты NULL или DEFAULT . Так, в таблице Products столбец ProductCount имеет значение по умолчанию — число 0. Поэтому мы можем при добавлении опустить этот столбец, и ему будет передаваться число 0:
INSERT Products(ProductName, Manufacturer, Price) VALUES ('Galaxy S9', 'Samsung', 63000);
С помощью ключевых слов DEFAULT и NULL можно указать, что в качестве значения будет использовать значение по умолчанию или NULL соответственно:
INSERT Products(ProductName, Manufacturer, Price, ProductCount) VALUES ('Nokia 9', 'HDM Global', 41000, DEFAULT);
INSERT Products(ProductName, Manufacturer, Price, ProductCount) VALUES ('Nokia 9', 'HDM Global', 41000, NULL);
Множественное добавление
Также мы можем добавить сразу несколько строк:
INSERT Products(ProductName, Manufacturer, Price, ProductCount) VALUES ('iPhone 8', 'Apple', 51000, 3), ('P20 Lite', 'Huawei', 34000, 4), ('Galaxy S8', 'Samsung', 46000, 2);
В данном случае в таблицу будут добавлены три строки.
Добавление записей в таблицу с помощью запроса на добавление
В этой статье описывается процедура создания и выполнения запроса на добавление. Запрос на добавление предназначен для добавления новых записей в существующую таблицу с использованием данных из других источников.
Если необходимо изменить данные в существующем наборе записей, например обновить значение поля, можно использовать запрос на обновление. Если необходимо создать новую таблицу из набора данных или объединить две таблицы в одну новую таблицу, можно использовать запрос на создание таблицы. Дополнительные сведения о запросах на обновление или запросах к таблицам, а также общие сведения о других способах добавления записей в базу данных или изменения существующих данных см. в разделе См. также .
В этой статье
- Обзор
- Создание и выполнение запроса на добавление
- Выполнение запроса, заблокированного из-за режима отключения содержимого
Обзор
Запрос на добавление обеспечивает выборку записей из одного или нескольких источников данных и копирование выбранных записей в существующую таблицу.
Предположим, вы получили базу данных с таблицей потенциальных клиентов и у вас уже есть таблица с такими данными в существующей базе данных. Чтобы данные хранились в одной таблице, вы решаете скопировать их из новой базы данных в существующую. Чтобы не вводить новые данные вручную, записи можно скопировать с помощью запроса на добавление.
Преимущества использования запроса на добавление
Используя запрос для копирования данных, можно выполнять указанные ниже операции.
- Добавление нескольких записей одновременно. При копировании данных вручную обычно приходится несколько раз копировать и вставлять записи. Используя запрос, можно выбрать все нужные данные одновременно, а затем скопировать их.
- Просмотр выбранных данных перед копированием. Можно просмотреть выбранные данные в режиме таблицы и внести необходимые изменения перед их копированием. Это особенно удобно, если запрос содержит условия или выражения и вам необходимо несколько попыток для правильного выбора данных. Запрос на добавление нельзя отменить. Если сделана ошибка, придется либо восстанавливать базу данных с помощью резервной копии, либо исправлять ошибку вручную или с помощью запроса на удаление.
- Уточнение выбора с помощью условий. Например, может потребоваться добавить записи только для клиентов, живущих в конкретном городе.
- Добавление записей в целевую таблицу, в которой отсутствуют некоторые поля из источников данных. Предположим, что в существующей таблице клиентов 11 полей, а в новой таблице, из которой требуется скопировать данные, — только девять из них. Для копирования данных из девяти совпадающих полей можно использовать запрос на добавление, а два несовпадающих поля можно оставить пустыми.
Основные этапы создания запроса на добавление
Создание запроса на добавление включает следующие основные этапы.
- Создание запроса на выборку. Сначала выберите данные, которые нужно скопировать. При необходимости в запрос на выборку можно вносить изменения и выполнять его до тех пор, пока не будут выбраны нужные данные для копирования.
- Преобразование запроса на выборку в запрос на добавление. Когда выборка будет готова, можно изменить тип запроса для Добавление.
- Выбор целевых полей для каждого столбца в запросе на добавление. В некоторых случаях Access выбирает целевые поля автоматически. Эти поля можно настроить или при необходимости выбрать самостоятельно.
- Предварительный просмотр и выполнение запроса на добавление записей. Перед добавлением записей можно переключиться в режим таблицы для предварительного просмотра добавляемых записей.
Важно: Запрос на добавление нельзя отменить. Рекомендуется создать резервную копию базы данных или целевой таблицы.
Создание и выполнение запроса на добавление
В этой статье
- Этап 1. Создание запроса на выборку записей для копирования
- Этап 2. Преобразование запроса на выборку в запрос на добавление
- Этап 3. Выбор целевых полей
- Этап 4. Предварительный просмотр и выполнение запроса на добавление
Этап 1. Создание запроса на выборку записей для копирования

- Откройте базу данных с записями, которые нужно скопировать.
- На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
- Дважды щелкните таблицы или запросы с записями, которые нужно скопировать, а затем нажмите кнопку Закрыть. Таблицы или запросы появляются в виде одного или нескольких окон в конструкторе запросов. В каждом окне выводятся поля таблицы или запроса. На рисунке показана типичная таблица в окне конструктора запросов. 1. Таблица «Основные средства» в окне конструктора запросов 2. Бланк запроса
- Дважды щелкните каждое поле, которое требуется добавить. Выбранные поля появятся в строке Поле бланка запроса. Типы данных полей исходной таблицы должны быть совместимы с типами данных полей в конечной таблице. Текстовые поля совместимы с большинством других типов полей. Числовые поля совместимы только с числовыми полями. Например, можно добавить числа в текстовое поле, но нельзя добавить в числовое поле текст. Кроме того, можно использовать в качестве поля выражение (например, =Date() для автоматического возврата текущей даты), а также настраивать данные выборки в бланке с помощью выражений, содержащих поля таблицы или запроса. Например, если в целевой таблице есть поле, в котором хранится четыре цифры года, а в исходной таблице — обычное поле даты и времени, можно использовать функцию DatePart с исходным полем, чтобы выбрать только год. Чтобы быстро добавить все поля в таблице, дважды щелкните звездочку (*) в верхней части списка полей таблицы. На рисунке показан бланк со всеми добавленными полями.
- При необходимости можно ввести одно или несколько условий в строке Условие отбора бланка. В приведенной ниже таблице представлены некоторые примеры условий, а также результаты их применения.
| Условие | Результат |
|---|---|
| > 234 | Возвращает все числа больше 234. Чтобы найти все числа меньше 234, используйте условие < 234. |
| >= «Новосибирск» | Возвращает все записи от «Новосибирск» до конца алфавита. |
| Between #02.02.2017# And #01.12.2017# | Выбирает даты между 2-фев-17 и 1-дек-17 (ANSI-89). Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо знака решетки одинарные кавычки (‘). Пример: Between ‘02.02.2017’ And ‘01.12.2017’. |
| Not «Германия» | Находит все записи, в которых содержимое поля не соответствует значению «Германия». Согласно этому условию будут найдены записи, содержащие дополнительный текст, кроме слова «Германия», например «Германия (евро)» или «Европа (Германия)». |
| Not «Т*» | Находит все записи, кроме тех, которые начинаются с буквы «Т». Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте знак процента (%) вместо знака звездочки (*). |
| Not «*т» | Находит все записи, которые не оканчиваются на букву «т». Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо звездочки (*) знак процента (%). |
| In(Канада,Великобритания) | Находит все записи в списке со словами «Канада» или «Великобритания». |
| Like «[А-Г]*» | Находит в поле с типом данных «Текстовый» все записи, начинающиеся с букв «А-Г». Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо звездочки (*) знак процента (%). |
| Like «*ар*» | Находит все записи, которые содержат сочетание букв «ар». Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо звездочки (*) знак процента (%). |
| Like «Григорий Верны?» | Находит все записи, начинающиеся с имени «Григорий» и содержащие вторую строку из 9 букв, из которых 6 букв составляют начало фамилии «Верный», а последняя буква неизвестна (на это указывает вопросительный знак). Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо вопросительного знака (?) знак подчеркивания (_). |
| #2/2/2017# | Находит все записи за 2 февраля 2017 г. Если в базе данных применяется набор подстановочных знаков ANSI-92, используйте вместо знака решетки (#) одинарные кавычки. Например: ‘02.02.2017’. |
| < Date() - 30 | Возвращает все даты, которые более чем на 30 дней раньше текущей даты. |
| Date() | Возвращает все записи, содержащие текущую дату. |
| Between Date( ) And DateAdd(«M», 3, Date( )) | Возвращает все записи с датой, которая находится между текущей датой и датой, которая на 3 месяца позже текущей. |
| Is Null | Возвращает все записи, содержащие пустое (незаполненное или неопределенное) значение. |
| Is Not Null | Возвращает все записи, содержащие непустое значение. |
| «» | Возвращает все записи, содержащие строку нулевой длины. Такие строки обычно используются, когда поле обязательно должно иметь значение, но это значение еще неизвестно. Например, поле может содержать номер факса, но некоторые заказчики могут не иметь устройств факсимильной связи. В этом случае вместо номера факса можно ввести пару двойных кавычек без пробела между ними («»). |
Этап 2. Преобразование запроса на выборку в запрос на добавление

- На вкладке Главная в группе Представление щелкните элемент Представление, а затем — Режим конструктора.
- На вкладке Конструктор запросов в группе Тип запроса нажмите кнопку Добавить. Откроется диалоговое окно Добавление.
- Укажите, куда следует добавить записи: в таблицу текущей базы данных или в таблицу какой-либо другой базы данных. Выполните одно из указанных ниже действий.
- В диалоговом окне Добавление установите переключатель в текущей базе данных, выберите целевую таблицу в поле со списком Имя таблицы и нажмите кнопку ОК. -или-
- В диалоговом окне Добавление установите переключатель в другой базе данных.
- В поле Имя файла введите расположение и имя целевой базы данных.
- В поле со списком Имя таблицы введите имя целевой таблицы и нажмите кнопку ОК.
Этап 3. Выбор целевых полей
Способ выбора целевых полей зависит от того, как был создан запрос на выборку на этапе 1.
Действие пользователя
Действие Access
Добавление всех полей из исходной таблицы или запроса
Добавляет все поля целевой таблицы в строку Добавить к бланка запроса.
Добавление отдельных полей к запросу или использованным выражениям; названия полей в исходной и конечной таблицах совпадают
Автоматически добавляет совпадающие целевые поля в строку Добавить к в запросе.
Добавление отдельных полей или использованных выражений; какие-либо имена в исходной и целевой таблицах не совпадают
Добавляет совпадающие поля и оставляет несовпадающие поля пустыми.
Если Access оставляет поля пустыми, можно щелкнуть ячейку в строке Добавить к и выбрать целевое поле.
На приведенном рисунке показано, как щелкнуть ячейку в строке Добавление записей в таблицу и выбрать конечное поле.
Примечание: Если целевое поле оставлено пустым, запрос не добавит данных к этому полю.
Этап 4. Предварительный просмотр и выполнение запроса на добавление
- Для предварительного просмотра внесенных изменений переключитесь в режим таблицы.
Совет: Для быстрого переключения режимов щелкните правой кнопкой мыши вкладку в верхней части запроса, а затем выберите нужный режим.
Примечание: При выполнении запроса, который возвращает большое количество данных, может появится сообщение об ошибке, в котором будет сказано, что отменить запрос не удастся. Попробуйте увеличить ограничение сегмента памяти до 3 МБ, чтобы выполнить запрос до конца.
Выполнение запроса, заблокированного из-за режима отключения содержимого
Если при попытке выполнения запроса на добавление ничего не происходит, проверьте, не появляется ли в строке состояния Access следующее сообщение:
Данное действие или событие заблокировано в режиме отключения.
Чтобы отменить блокировку и включить запрос, нажмите на панели сообщений кнопку Включить содержимое.
Примечание: При включении запроса на добавление включается также все остальное содержимое базы данных.
Если вы не видите панель сообщений, она может быть скрыта. Эту панель можно отобразить, если она не отключена. Если панель сообщений отключена, ее можно включить.
Как добавить запись в таблицу sql
Добавить одну запись в таблицу можно с помощью следующего запроса:
INSERT INTO tablename (field1, field2, field3) VALUES ('value of field1', 'value of field2', 'value of field3');
Мы добавили в таблицу tablename строку со значениями полей для field1 , field2 , field3 : ‘value of field1’ , ‘value of field2’ , ‘value of field3’ , соответственно.
Запись в базу данных mysql на php через форму
![]()
Рассмотрим на примере, как создать форму, с помощью которой мы будем делать запросы в базу данных mysql на языке php, используя PDO.
1. Создадим разметку html-формы
Запись в БД через форму на php
Форма отправляется методом POST и обрабатывается на текущей странице.
2. Создадим таблицу, в которую будем записывать данные
Можно выполнить через SQL в PhpMyAdmin или ручками.
CREATE TABLE `mytable` ( `id` int(20) NOT NULL PRIMARY KEY AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf32 NOT NULL, `text` text NOT NULL )
3. Подключимся к базе данных и напишем запрос для записи.
Подключимся к базе данных.
// Переменные с формы $name = $_POST['name']; $text = $_POST['text']; // Параметры для подключения $db_host = "localhost"; $db_user = "user"; // Логин БД $db_password = "123"; // Пароль БД $db_base = 'mybase'; // Имя БД $db_table = "mytable"; // Имя Таблицы БД try < // Подключение к базе данных $db = new PDO("mysql:host=$db_host;dbname=$db_base", $db_user, $db_password); // Устанавливаем корректную кодировку $db->exec("set names utf8"); > catch (PDOException $e) < // Если есть ошибка соединения, выводим её print "Ошибка!: " . $e->getMessage() . "
"; >
Кодировку установили, чтобы избежать лишних проблем (не обязательно).
Не забудьте заранее создать таблицу в базе данных с трёмя значениями (id, name, text), подробнее об этом читать здесь.
Далее напишем наш запрос для записи в базу данных и запишем его в переменную.
// Собираем данные для запроса $data = array( 'name' => $name, 'text' => $text ); // Подготавливаем SQL-запрос $query = $db->prepare("INSERT INTO $db_table (name, text) values (:name, :text)"); // Выполняем запрос с данными $query->execute($data);
Здесь мы сначала все наши данные для записи записываем в переменную $data, затем подготавливаем запрос с плейсохледарами (переменные) и выполняем запрос передавая ему данные для заполнения из $data
Создадим небольшую проверку, чтобы знать, выполнился ли наш запрос или нет.
if ($result)
4. Подключение формы к запросу
Форму создали, к базе подключились и написали запрос, теперь нужно связать всё это.
Форма отправляется методом POST, поэтому мы можем сделать проверку на него, а именно на любое поле формы.
У нас передаются поля с именами «name» и «text», на них мы и сделаем проверку.
Вставим весь наш скрипт в эту проверку:
if (isset($_POST['name']) && isset($_POST['text']))< // Переменные с формы $name = $_POST['name']; $text = $_POST['text']; // Параметры для подключения $db_host = "localhost"; $db_user = "user"; // Логин БД $db_password = "123"; // Пароль БД $db_base = 'mybase'; // Имя БД $db_table = "mytable"; // Имя Таблицы БД try < // Подключение к базе данных $db = new PDO("mysql:host=$db_host;dbname=$db_base", $db_user, $db_password); // Устанавливаем корректную кодировку $db->exec("set names utf8"); // Собираем данные для запроса $data = array( 'name' => $name, 'text' => $text ); // Подготавливаем SQL-запрос $query = $db->prepare("INSERT INTO $db_table (name, text) values (:name, :text)"); // Выполняем запрос с данными $query->execute($data); // Запишим в переменую, что запрос отрабтал $result = true; > catch (PDOException $e) < // Если есть ошибка соединения или выполнения запроса, выводим её print "Ошибка!: " . $e->getMessage() . "
"; > if ($result) < echo "Успех. Информация занесена в базу данных"; >>
То есть, если существует значения «name» и «text» переданные методом POST, то выполняется подключение к БД и запись в таблицу.