MySQL INSERT INTO Query: Cum se adaugă un rând în tabel (exemplu)
⚡ Rezumat inteligent
MySQL Interogarea INSERT INTO adaugă rânduri noi într-un tabel, fie prin denumirea explicită a coloanelor țintă, fie prin furnizarea unei valori pentru fiecare coloană. Citirea corectă a șirurilor, numerelor și datelor determină dacă datele stocate rămân intacte.

Ce este INSERT INTO?
INTRODU IN este utilizată pentru stocarea datelor în tabele. Comanda INSERT creează un rând nou în tabel pentru stocarea datelor. Datele sunt de obicei furnizate de programe de aplicație care rulează pe baza de date.
Sintaxa de bază
Să ne uităm la sintaxa de bază a INSERT INTO MySQL comanda:
INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);
AICI
- INSERT INTO `table_name` este comanda care spune MySQL server pentru a adăuga un nou rând într-un tabel numit `table_name.`
- (coloana_1,coloana_2,...) specifică coloanele care urmează să fie actualizate în noul MySQL rând
- VALUES (valoare_1, valoare_2,...) specifică valorile care trebuie adăugate în noul rând
La furnizarea valorilor datelor care urmează să fie introduse în noul tabel, trebuie luate în considerare următoarele:
- Tipuri de date șir – toate valorile șir ar trebui să fie cuprinse între ghilimele simple.
- Tipuri de date numerice – toate valorile numerice trebuie furnizate direct, fără a fi incluse între ghilimele simple sau duble.
- Tipuri de date pentru date – includeți valorile datei între ghilimele simple în formatul „AAAA-LL-ZZ”.
Inserarea mai multor rânduri simultan
O singură instrucțiune INSERT poate conține mai multe rânduri. Separați fiecare set de valori cu o virgulă. O instrucțiune este mai rapidă decât mai multe, deoarece indexul se actualizează o singură dată.
INSERT INTO `categories`(`category_name`,`remarks`) VALUES ('Documentary', 'Factual films'), ('Musical', 'Song driven films');
MySQL Exemplu de interogare INSERT INTO
Să presupunem că avem următoarea listă de noi membri ai bibliotecii care trebuie adăugate la baza de date.
| Nume complete | Data naşterii | sex | Adresă fizică | Adresa postală | Numar de contact | Adresa de e-mail |
|---|---|---|---|---|---|---|
| Leonard Hofstadter | Masculin | Woodcrest | 0845738767 | |||
| Sheldon Cooper | Masculin | Woodcrest | 0976736763 | |||
| Rajesh Koothrappali | Masculin | Woodcrest | 0938867763 | |||
| Leslie Winkle | 14/02/1984 | Masculin | Woodcrest | 0987636553 | ||
| Howard Wolowitz | 24/08/1981 | Masculin | Parcul din sud | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Să INSERĂM datele rând cu rând, începând cu Leonard Hofstadter. Vom trata numărul de contact ca pe un tip de date numeric și nu vom include numărul între ghilimele simple.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
Executarea scriptului de mai sus elimină cifra 0 din numărul de contact al lui Leonard, deoarece valoarea este tratată ca numerică, iar un zero la început nu este semnificativ.
Pentru a evita astfel de probleme, valoarea trebuie inclusă între ghilimele simple, așa cum se arată mai jos.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
⚠️ Sfat: Stocați numere de telefon, coduri poștale și identificatori similari într-o coloană de text, cum ar fi VARCHAR. Coloanele numerice nu pot păstra un zero la început.
Modificarea ordinii coloanelor
Modificarea ordinii coloanelor nu are efect asupra interogării INSERT în MySQL, atâta timp cât valorile corecte au fost mapate în coloanele corecte. Interogarea de mai jos demonstrează acest aspect.
INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`) VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');
Interogările de mai sus au omis coloana cu data nașterii. În mod implicit, MySQL inserează valori NULL în coloane care sunt omise din interogarea INSERT.
Să introducem acum înregistrarea pentru Leslie, care are data nașterii furnizată. Valoarea datei trebuie inclusă între ghilimele simple folosind formatul „AAAA-LL-ZZ”.
INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`) VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');
Omiterea listei de coloane
Toate interogările de mai sus au denumit coloanele și le-au mapat la valori. Dacă furnizăm valori pentru TOATE coloanele din tabel, lista de coloane poate fi omisă din MySQL interogare de inserare.
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz@email.me');
Să folosim acum instrucțiunea SELECT pentru a vizualiza toate rândurile din tabelul de membri.
SELECT * FROM `members`;
| numar de membru | nume complete | sex | data nașterii | adresă fizică | adresa postala | contct_ număr | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | Femeie | 21-07-1980 | Primul teren stradal nr. 4 | Geantă privată | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | Femeie | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Masculin | 12-07-1989 | Strada a 3-a 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williams | Femeie | 14-02-1984 | Strada 2 23 | NULL | NULL | NULL |
| 5 | Leonard Hofstadter | Masculin | NULL | Woodcrest | NULL | 845738767 | NULL |
| 6 | Sheldon Cooper | Masculin | NULL | Woodcrest | NULL | 0976736763 | NULL |
| 7 | Rajesh Koothrappali | Masculin | NULL | Woodcrest | NULL | 0938867763 | NULL |
| 8 | Leslie Winkle | Masculin | 14-02-1984 | Woodcrest | NULL | 0987636553 | NULL |
| 9 | Howard Wolowitz | Masculin | 24-08-1981 | Parcul din sud | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Observați că numărul de contact al lui Leonard Hofstadter a eliminat zeroul inițial, exact așa cum a fost prevăzut. Numerele citate îl păstrează.
Inserarea într-un tabel dintr-un alt tabel
Comanda INSERT poate fi folosită și pentru a introduce date într-un tabel dintr-un alt tabel. Sintaxa de bază este cea prezentată mai jos.
INSERT INTO table_1 SELECT * FROM table_2;
Vom crea acum un tabel fictiv pentru categoriile de filme, numit categories_archive. Scriptul de mai jos creează tabelul.
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`))
Executați scriptul de mai sus pentru a crea tabelul. Acum să inserăm toate rândurile din tabelul de categorii în tabelul de arhivă a categoriilor.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
Structurile tabelelor trebuie să fie aceleași pentru ca scriptul respectiv să funcționeze. Un script mai robust mapează numele coloanelor din tabelul de destinație cu cele din tabelul care conține datele, așa cum se arată mai jos.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
Executarea interogării SELECT de mai jos dă următoarele rezultate.
SELECT * FROM `categories_archive`;
| categorie_id | CATEGORY_NAME | Observații |
|---|---|---|
| 1 | Comedie | Filme cu umor |
| 2 | Romantic | Povesti de dragoste |
| 3 | Epic | Filme antice cu povești |
| 4 | Groază | NULL |
| 5 | Romane științifico-fantastice | NULL |
| 6 | Film de aventuri | NULL |
| 7 | Acțiune | NULL |
| 8 | Comedie romantica | NULL |
| 9 | Desene animate | NULL |
| 10 | Desene animate | NULL |
Exemplu PHP: Inserați în MySQL Tabel
Funcția mysqli_query este folosită pentru a executa SQL interogări din PHP. Rulează instrucțiunile Insert, Select, Update și Delete în mod similar și are următoarea sintaxă.
mysqli_query($db_handle,$query);
AICI,
- „mysqli_query(…)” este funcția care execută interogările SQL.
- „$query” este interogarea SQL care va fi executată.
- „$db_handle” este linkul de conexiune la server returnat de mysql_connect.
Exemplu
$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); }
