MySQL INSERT INTO Query: Как да добавите ред в таблица (пример)
Какво е INSERT INTO?
ВЪВЕДЕТЕ СЕ се използва за съхраняване на данни в таблиците. Командата INSERT създава нов ред в таблицата за съхраняване на данни. Данните обикновено се предоставят от приложни програми, които работят върху базата данни.
Основен синтаксис
Нека да разгледаме основния синтаксис на INSERT INTO MySQL команда:
INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);
ТУК
- INSERT INTO `table_name` е командата, която казва MySQL сървър за добавяне на нов ред в таблица с име `table_name.`
- (column_1,column_2,…) указва колоните, които да бъдат актуализирани в новия MySQL ред
- VALUES (стойност_1,стойност_2,…) указва стойностите, които да се добавят в новия ред
Когато предоставяте стойностите на данните, които да бъдат вмъкнати в новата таблица, трябва да се има предвид следното:
- Типове низови данни – всички низови стойности трябва да бъдат затворени в единични кавички.
- Числови типове данни - всички числови стойности трябва да се предоставят директно, без да се затварят в единични или двойни кавички.
- Типове данни за дата – оградете стойностите за дата в единични кавички във формат „ГГГГ-ММ-ДД“.
Пример:
Да предположим, че имаме следния списък с нови членове на библиотеката, които трябва да бъдат добавени към базата данни.
Пълни имена | Дата на раждане | пол | Физически адрес | пощенски адрес | Номер на контакта | Имейл Адрес |
---|---|---|---|---|---|---|
Леонард Хофщадтер | Мъж | Уудкрест | 0845738767 | |||
Шелдън Купър | Мъж | Уудкрест | 0976736763 | |||
Раджеш Кутрапали | Мъж | Fairview | 0938867763 | |||
Лесли Уинкъл | 14/02/1984 | Мъж | 0987636553 | |||
Хауърд Воловиц | 24/08/1981 | Мъж | South Park | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Нека ВМЪКНЕМ данни един по един. Ще започнем с Леонард Хофстадтер. Ние ще третираме номера за контакт като числов тип данни и няма да ограждаме номера в единични кавички.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
Изпълнението на горния скрипт изпуска 0 от номера за контакт на Леонард. Това е така, защото стойността ще се третира като числова стойност и нулата (0) в началото отпада, тъй като не е значима.
За да избегнете подобни проблеми, стойността трябва да бъде оградена в единични кавички, както е показано по-долу –
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
В горния случай zero(0) няма да бъде премахната
Промяната на реда на колоните няма ефект върху заявката INSERT в MySQL стига правилните стойности да са съпоставени с правилните колони.
Заявката, показана по-долу, демонстрира горната точка.
INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`) VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');
Горните заявки пропуснаха колоната за дата на раждане. По подразбиране MySQL ще вмъкне NULL стойности в колони, които са пропуснати в заявката INSERT.
Нека сега вмъкнем записа за Лесли, който има предоставена дата на раждане. Стойността на датата трябва да бъде оградена в единични кавички във формата „ГГГГ-ММ-ДД“.
INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`) VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');
Всички горепосочени заявки посочиха колоните и ги съпоставиха със стойности в MySQL вмъкнете изявление. Ако предоставяме стойности за ВСИЧКИ колони в таблицата, тогава можем да пропуснем колоните от MySQL вмъкнете заявка.
Пример:-
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz[at]email.me');
Нека сега използваме SELECT израз за да видите всички редове в таблицата на члена.
SELECT * FROM `members`;
членски_ номер | пълни_ имена | пол | дата_на_ раждане | физически_адрес | пощенски_ адрес | контактен номер | електронна поща |
---|---|---|---|---|---|---|---|
1 | Джанет Джоунс | Жена | 21-07-1980 | Първа улица Парцел №4 | Лична чанта | 0759 253 542 | janetjones@yagoo.cm |
2 | Джанет Смит Джоунс | Жена | 23-06-1980 | Мелроуз 123 | NULL | NULL | jj@fstreet.com |
3 | Робърт Фил | Мъж | 12-07-1989 | 3-та улица 34 | NULL | 12345 | rm@tstreet.com |
4 | Глория Уилямс | Жена | 14-02-1984 | 2-ра улица 23 | NULL | NULL | NULL |
5 | Леонард Хофщадтер | Мъж | NULL | Уудкрест | NULL | 845738767 | NULL |
6 | Шелдън Купър | Мъж | NULL | Уудкрест | NULL | 0976736763 | NULL |
7 | Раджеш Кутрапали | Мъж | NULL | Уудкрест | NULL | 0938867763 | NULL |
8 | Лесли Уинкъл | Мъж | 14-02-1984 | Уудкрест | NULL | 0987636553 | NULL |
9 | Хауърд Воловиц | Мъж | 24-08-1981 | Южен парк | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Забележете, че номерът за контакт на Леонард Хофстадтер е изпуснал нулата (0) от номера за контакт. Другите номера за връзка не са изпуснали нулата (0) в началото.
Вмъкване в таблица от друга таблица
Командата INSERT може да се използва и за вмъкване на данни в таблица от друга таблица. Основният синтаксис е както е показано по-долу.
INSERT INTO table_1 SELECT * FROM table_2;
Нека сега да разгледаме един практически пример. Ще създадем фиктивна таблица за категории филми за демонстрационни цели. Ще наречем новата таблица с категории категории_архив. Показаният по-долу скрипт създава таблицата.
CREATE TABLE `categories_archive` ( `category_id` int(11) AUTO_INCREMENT, `category_name` varchar(150) DEFAULT NULL, `remarks` varchar(500) DEFAULT NULL, PRIMARY KEY (`category_id`))
Изпълнете горния скрипт, за да създадете таблицата.
Нека сега вмъкнем всички редове от таблицата с категории в таблицата с архив на категориите. Показаният по-долу скрипт ни помага да постигнем това.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
Изпълнението на горния скрипт вмъква всички редове от таблицата с категории в таблицата с архив на категориите. Обърнете внимание, че структурите на таблиците ще трябва да бъдат еднакви, за да работи скриптът. По-стабилен скрипт е този, който картографира имената на колоните във вмъкнатата таблица с тези в таблицата, съдържаща данните.
Показаната по-долу заявка демонстрира нейното използване.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
Изпълнение на заявката SELECT
SELECT * FROM `categories_archive`
дава следните резултати, показани по-долу.
категория_id | CATEGORY_NAME | бележки |
---|---|---|
1 | Комедия | Филми с хумор |
2 | Романтичен | Любовни истории |
3 | Епопея | История на древни филми |
4 | Ужас | NULL |
5 | Научна фантастика | NULL |
6 | Трилър | NULL |
7 | действие | NULL |
8 | Романтична комедия | NULL |
9 | Карикатури | NULL |
10 | Карикатури | NULL |
Пример за PHP: Вмъкване в MySQL Маса
Функцията mysqli_query се използва за изпълнение SQL запитвания.
Функцията 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 connection if (!$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".'<br>'; } else { echo "Error: " . $sql. "<br>" . mysqli_error($conn); } }
Oбобщение
- Командата INSERT се използва за добавяне на нови данни в таблица. MySql ще добави нов ред, след като командата бъде изпълнена.
- Стойностите за дата и низ трябва да бъдат оградени в единични кавички.
- Числовите стойности не е необходимо да бъдат ограждани в кавички.
- Командата INSERT може да се използва и за вмъкване на данни от една таблица в друга.