Що таке INSERT INTO?
INSERT INTO використовується для зберігання даних у таблицях. Команда INSERT створює новий рядок у таблиці для зберігання даних. Дані зазвичай надаються прикладними програмами, які працюють поверх бази даних.
Основний синтаксис
Давайте розглянемо основний синтаксис команди INSERT INTO MySQL:
ВСТАВИТИ В `ім'я_ таблиці` (стовпець_1, стовпець_2, ...) ЗНАЧЕННЯ (значення_1, значення_2, ...);
ТУТ
- INSERT INTO `table_name` - це команда, яка вказує серверу MySQL додати новий рядок у таблицю з назвою` table_name.`
- (стовпець_1, стовпець_2,…) визначає стовпці, які потрібно оновити в новому рядку MySQL
- VALUES (value_1, value_2,…) визначає значення, які потрібно додати до нового рядка
При наданні значень даних, які потрібно вставити в нову таблицю, слід враховувати наступне:
- Рядкові типи даних - усі рядкові значення повинні бути укладені в одинарні лапки.
- Цифрові типи даних - усі числові значення повинні подаватися безпосередньо, не вкладаючи їх в одинарні або подвійні лапки.
- Типи даних дати - вкладіть значення дати в одинарні лапки у форматі 'РРРР-ММ-ДД'.
Приклад:
Припустимо, що у нас є такий список нових членів бібліотеки, які потрібно додати до бази даних.
Повні імена | Дата народження | Стать | Фізична адреса | Поштова адреса | Контактний номер | Електронна адреса |
---|---|---|---|---|---|---|
Леонард Хофштадтер | Самець | Вудрест | 0845738767 | |||
Шелдон Купер | Самець | Вудрест | 0976736763 | |||
Раджеш Кутраппалі | Самець | Фервью | 0938867763 | |||
Леслі Вінкл | 14.02.1984 | Самець | 0987636553 | |||
Говард Воловіц | 24.08.1981 | Самець | Південний парк | Поштова скринька 4563 | 0987786553 | Ця електронна адреса захищена від спам-ботів. Вам потрібно увімкнути JavaScript, щоб переглянути його. |
Давайте ВСТАВЛИМО дані по одному. Ми почнемо з Леонарда Гофштадтера. Ми будемо розглядати контактний номер як числовий тип даних, а не вкладати номер в одинарні лапки.
ВСТАВИТИ В «члени» («повні імена», «стать», «фізична_адреса», «номер_контакту») ЦІННОСТІ («Леонард Хофштадтер», «Чоловік», «Вудкрест», 0845738767);
Виконання вищезазначеного сценарію скидає 0 з контактного номера Леонарда. Це пов’язано з тим, що значення буде розглядатися як числове значення, а нуль (0) на початку скидається, оскільки воно не є значущим.
Щоб уникнути подібних проблем, значення слід укладати в одинарні лапки, як показано нижче -
ВСТАВИТИ У "члени" ("повні імена", "стать", "фізична_адреса", "номер_контакту") ЦІННОСТІ ("Шелдон Купер", "Чоловік", "Вудкрест", "0976736763");
У наведеному вище випадку нуль (0) не буде скинуто
Зміна порядку стовпців не впливає на запит INSERT у MySQL, якщо правильні значення були зіставлені з правильними стовпцями.
Наведений нижче запит демонструє вищезазначений пункт.
ВСТАВИТИ У "члени" ("номер_контакту", "стать", "повні імена", "фізична_адреса") ЗНАЧЕННЯ ("0938867763", "Чоловік", "Раджеш Кутраппалі", "Вудкрест");
Вищевказані запити пропускали стовпець із датою народження. За замовчуванням MySQL буде вставляти значення NULL у стовпці, пропущені в запиті INSERT.
Давайте тепер вставимо запис для Леслі, де вказана дата народження. Значення дати слід укладати в одинарні лапки у форматі "РРРР-ММ-ДД".
ВСТАВИТИ У `члени '(` повні імена`, `дата_народження`,` стать`, `фізичний_адрес`,` номер_контакту`) ЦІННОСТІ (`` Леслі Вінкл' ', `` 1984-02-14' ', `` Чоловік' ', `` Вудкрест' ', 0987636553 ');
Усі вищезазначені запити визначали стовпці та відображали їх у значення в операторі вставки MySQL. Якщо ми надаємо значення для ВСІХ стовпців у таблиці, то ми можемо опустити стовпці із запиту вставки MySQL.
Приклад: -
ВСТАВИТИ В "ЦІННОСТІ учасників" (9, 'Говард Воловіц', 'Чоловік', '1981-08-24',
'SouthPark', 'Поштова скринька 4563', '0987786553', 'lwolowitz [at] email.me') ;
Давайте тепер використаємо оператор SELECT, щоб переглянути всі рядки таблиці учасника.
SELECT * FROM `members`;
членський_ номер | повні_імена | Стать | дата народження | фізична адреса | Поштова адреса | contct_ номер | електронною поштою |
---|---|---|---|---|---|---|---|
1 | Джанет Джонс | Самка | 21-07-1980 | Ділянка Першої вулиці 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 | Леонард Хофштадтер | Самець | НУЛЬ | Вудрест | НУЛЬ | 845738767 | НУЛЬ |
6 | Шелдон Купер | Самець | НУЛЬ | Вудрест | НУЛЬ | 976736763 | НУЛЬ |
7 | Раджеш Кутраппалі | Самець | НУЛЬ | Вудрест | НУЛЬ | 938867763 | НУЛЬ |
8 | Леслі Вінкл | Самець | 14-02-1984 | Вудрест | НУЛЬ | 987636553 | НУЛЬ |
9 | Говард Воловіц | Самець | 24-08-1981 | Південний парк | Поштова скринька 4563 | 987786553 | Ця електронна адреса захищена від спам-ботів. Вам потрібно увімкнути JavaScript, щоб переглянути його. |
Зверніть увагу, що контактний номер Леонарда Хофштадтера відкинув нуль (0) від контактного номера. Інші контактні номери не скинули нуль (0) на початку.
Вставлення в таблицю з іншої таблиці
Команда INSERT також може використовуватися для вставки даних у таблицю з іншої таблиці. Основний синтаксис такий, як показано нижче.
INSERT INTO table_1 SELECT * FROM table_2;
Давайте зараз розглянемо практичний приклад. Ми створимо фіктивну таблицю для категорій фільмів для демонстраційних цілей. Ми будемо називати таблицю нових категорій categories_archive. Сценарій, показаний нижче, створює таблицю.
СТВОРИТИ ТАБЛИЦУ `category_archive` (` category_id` int (11) AUTO_INCREMENT, `category_name` varchar (150) ЗАВДАННЯ НУЛЬ,` зауваження` varchar (500) ЗАВДАННЯ НУЛЬ, ОСНОВНИЙ КЛЮЧ (`ідентифікатор категорії)))
Виконайте наведений вище сценарій для створення таблиці.
Давайте тепер вставимо всі рядки з таблиці категорій в таблицю архівів категорій. Наведений нижче сценарій допомагає нам цього досягти.
ВСТАВИТИ В `category_archive` ВИБРАТИ * З` категорії`;
Виконання вищезазначеного сценарію вставляє всі рядки з таблиці категорій в таблицю архівів категорій. Зверніть увагу, що для роботи сценарію структури таблиць повинні бути однаковими. Більш надійний сценарій - це той, який відображає імена стовпців у таблиці вставки до тих, що містяться в таблиці.
Наведений нижче запит демонструє його використання.
ВСТАВИТИ В `категорії_архіву` (ідентифікатор категорії, ім'я_категорії, зауваження) ВИБЕРІть ідентифікатор категорії, ім'я_категорії, зауваження ВІД` категорії`;
Виконання запиту SELECT
ВИБЕРІТЬ * З `категорії_архіву`
дає наступні результати, показані нижче.
ідентифікатор категорії | ім'я_категорії | зауваження |
---|---|---|
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 також може використовуватися для вставки даних з однієї таблиці в іншу.