Что такое INSERT INTO?
INSERT INTO используется для хранения данных в таблицах. Команда INSERT создает новую строку в таблице для хранения данных. Данные обычно предоставляются прикладными программами, которые работают поверх базы данных.
Базовый синтаксис
Давайте посмотрим на основной синтаксис команды INSERT INTO MySQL:
INSERT INTO имя_таблицы (столбец_1, столбец_2,…) ЗНАЧЕНИЯ (значение_1, значение_2,…);
ЗДЕСЬ
- INSERT INTO «table_name» - это команда, которая сообщает серверу MySQL добавить новую строку в таблицу с именем «table_name».
- (столбец_1, столбец_2,…) указывает столбцы, которые должны быть обновлены в новой строке MySQL.
- VALUES (значение_1, значение_2,…) указывает значения, которые будут добавлены в новую строку.
При предоставлении значений данных для вставки в новую таблицу следует учитывать следующее:
- Строковые типы данных - все строковые значения должны быть заключены в одинарные кавычки.
- Числовые типы данных - все числовые значения следует указывать напрямую, не заключая их в одинарные или двойные кавычки.
- Типы данных даты - заключите значения даты в одинарные кавычки в формате «ГГГГ-ММ-ДД».
Пример:
Предположим, что у нас есть следующий список новых членов библиотеки, которые необходимо добавить в базу данных.
Полные имена | Дата рождения | Пол | Физический адрес | почтовый адрес | Контактный телефон | Адрес электронной почты |
---|---|---|---|---|---|---|
Леонард Хофштадтер | Мужской | Woodcrest | 0845738767 | |||
Шелдон Купер | Мужской | Woodcrest | 0976736763 | |||
Раджеш Кутраппали | Мужской | Fairview | 0938867763 | |||
Лесли Винкль | 14.02.1984 | Мужской | 0987636553 | |||
Говард Воловиц | 24.08.1981 | Мужской | Южный парк | А / я 4563 | 0987786553 | Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. |
Давайте ВСТАВЛЯЕМ данные по одному. Начнем с Леонарда Хофштадтера. Мы будем рассматривать контактный номер как числовой тип данных и не заключать номер в одинарные кавычки.
INSERT INTO `members` (` full_names`, `пол`,` physical_address`, `contact_number`) VALUES ('Leonard Hofstadter', 'Male', 'Woodcrest', 0845738767);
Выполнение приведенного выше сценария сбрасывает 0 с контактного номера Леонарда. Это связано с тем, что значение будет рассматриваться как числовое значение, а ноль (0) в начале отбрасывается, поскольку он не имеет значения.
Чтобы избежать таких проблем, значение должно быть заключено в одинарные кавычки, как показано ниже -
ВСТАВИТЬ `members` (` full_names`, `пол`,` physical_address`, `contact_number`) VALUES ('Sheldon Cooper', 'Male', 'Woodcrest', '0976736763');
В приведенном выше случае ноль (0) не сбрасывается.
Изменение порядка столбцов не влияет на запрос INSERT в MySQL до тех пор, пока правильные значения сопоставлены с правильными столбцами.
Запрос, показанный ниже, демонстрирует вышеуказанный момент.
ВСТАВИТЬ `members` (` contact_number`, `пол`,` full_names`, `physical_address`) VALUES ('0938867763', 'Male', 'Rajesh Koothrappali', 'Woodcrest');
В приведенных выше запросах не указана дата рождения. По умолчанию MySQL вставляет значения NULL в столбцы, которые не указаны в запросе INSERT.
Теперь давайте вставим запись для Лесли, в которой указана дата рождения. Значение даты должно быть заключено в одинарные кавычки в формате «ГГГГ-ММ-ДД».
ВСТАВИТЬ `members` (` full_names`, `date_of_birth`,` пол`, `physical_address`,` contact_number`) VALUES ('Leslie Winkle', '1984-02-14', 'Male', 'Woodcrest', ' 0987636553 ');
Все вышеперечисленные запросы указывали столбцы и сопоставляли их со значениями в операторе вставки MySQL. Если мы предоставляем значения для ВСЕХ столбцов в таблице, мы можем опустить столбцы из запроса вставки MySQL.
Пример:-
ВСТАВИТЬ ЗНАЧЕНИЯ членов (9, 'Howard Wolowitz', 'Male', '1981-08-24',
'SouthPark', 'PO Box 4563', '0987786553', 'lwolowitz [at] email.me') ;
Теперь давайте воспользуемся оператором SELECT для просмотра всех строк в таблице члена.
SELECT * FROM `members`;
членский номер | полные имена | Пол | Дата рождения | Физический адрес | почтовый адрес | contct_ number | электронное письмо |
---|---|---|---|---|---|---|---|
1 | Джанет Джонс | женский | 21.07.1980 | Участок 1-й улицы No 4 | Личная сумка | 0759 253 542 | Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. |
2 | Джанет Смит Джонс | женский | 23.06.1980 | Мелроуз 123 | НОЛЬ | НОЛЬ | Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. |
3 | Роберт Фил | Мужской | 12-07-1989 | 3-я улица, 34 | НОЛЬ | 12345 | Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. |
4 | Глория Уильямс | женский | 14-02-1984 | 2-я улица 23 | НОЛЬ | НОЛЬ | НОЛЬ |
5 | Леонард Хофштадтер | Мужской | НОЛЬ | Woodcrest | НОЛЬ | 845738767 | НОЛЬ |
6 | Шелдон Купер | Мужской | НОЛЬ | Woodcrest | НОЛЬ | 976736763 | НОЛЬ |
7 | Раджеш Кутраппали | Мужской | НОЛЬ | Woodcrest | НОЛЬ | 938867763 | НОЛЬ |
8 | Лесли Винкль | Мужской | 14-02-1984 | Woodcrest | НОЛЬ | 987636553 | НОЛЬ |
9 | Говард Воловиц | Мужской | 24-08-1981 | Южный парк | А / я 4563 | 987786553 | Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. |
Обратите внимание, что в контактном номере Леонарда Хофштадтера отсутствует ноль (0). Остальные контактные номера не имеют нуля (0) в начале.
Вставка в таблицу из другой таблицы
Команду INSERT также можно использовать для вставки данных в таблицу из другой таблицы. Основной синтаксис показан ниже.
ВСТАВИТЬ В таблицу_1 ВЫБРАТЬ * ИЗ таблицы_2;
Давайте теперь посмотрим на практический пример. Мы создадим фиктивную таблицу для категорий фильмов в демонстрационных целях. Мы будем называть новую таблицу категорий category_archive. Скрипт, показанный ниже, создает таблицу.
СОЗДАТЬ ТАБЛИЦУ `category_archive` (` category_id` int (11) AUTO_INCREMENT, `category_name` varchar (150) DEFAULT NULL,` comments` varchar (500) DEFAULT NULL, PRIMARY KEY (`category_id`))
Выполните приведенный выше сценарий, чтобы создать таблицу.
Теперь давайте вставим все строки из таблицы категорий в таблицу архива категорий. Показанный ниже сценарий помогает нам в этом.
INSERT INTO `Categories_archive` ВЫБРАТЬ * ИЗ` категорий`;
Выполнение приведенного выше сценария вставляет все строки из таблицы категорий в таблицу архива категорий. Обратите внимание, что для работы сценария структуры таблиц должны быть одинаковыми. Более надежный сценарий - это тот, который сопоставляет имена столбцов в таблице вставки с именами столбцов в таблице, содержащей данные.
Запрос, показанный ниже, демонстрирует его использование.
ВСТАВИТЬ В `каталог_архивов` (идентификатор_категории, имя_категории, примечания) ВЫБРАТЬ идентификатор_категории, имя_категории, примечания ИЗ` категорий`;
Выполнение запроса SELECT
ВЫБРАТЬ * ИЗ `категорий_архив`
дает следующие результаты, показанные ниже.
category_id | category_name | примечания |
---|---|---|
1 | Комедия | Фильмы с юмором |
2 | Романтичный | Любовные истории |
3 | Эпос | Сюжетные старые фильмы |
4 | Ужастик | НОЛЬ |
5 | Научная фантастика | НОЛЬ |
6 | Триллер | НОЛЬ |
7 | Действие | НОЛЬ |
8 | Романтическая комедия | НОЛЬ |
9 | Мультфильмы | НОЛЬ |
10 | Мультфильмы | НОЛЬ |
Пример PHP: вставить в таблицу MySQL
Функция mysqli_query используется для выполнения SQL-запросов.
Функцию можно использовать для выполнения следующих типов запросов;
- Вставлять
- Выбирать
- Обновлять
- Удалить
Он имеет следующий синтаксис.
mysqli_query($db_handle,$query);
ЗДЕСЬ,
"mysqli_query (
…) »- это функция, выполняющая запросы SQL.«$ query» - это SQL-запрос, который нужно выполнить.
"$ link_identifier" не является обязательным, его можно использовать для передачи ссылки для подключения к серверу.
Пример
$servername = "localhost";$username = "alex";$password = "yPXuPT";$dbname = "afmznf";// Create connection$conn = mysqli_connect($servername, $username, $password, $dbname);// Check connectionif (!$conn) {die("Connection failed: " . mysqli_connect_error());}$sql= "INSERT INTO addkeyworddata(link, keyword)VALUES ('https://www.guru99.com/','1000')";if (mysqli_query($conn, $sql)) {echo "New record created successfully".'
';} else {echo "Error: " . $sql. "
" . mysqli_error($conn);}}
Резюме
- Команда INSERT используется для добавления новых данных в таблицу. MySql добавит новую строку после выполнения команды.
- Значения даты и строки следует заключать в одинарные кавычки.
- Числовые значения не нужно заключать в кавычки.
- Команду INSERT также можно использовать для вставки данных из одной таблицы в другую.