MySQL INSERT INTO Query: Cum se adaugă un rând în tabel (exemplu)
Ce este INSERT INTO?
INTRODU IN este folosit pentru a stoca date în tabele. Comanda INSERT creează un nou rând în tabel pentru a stoca date. Datele sunt de obicei furnizate de programe de aplicație care rulează deasupra bazei 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 le include între ghilimele simple sau duble.
- Tipuri de date pentru date – includeți valorile datei între ghilimele simple în formatul „AAAA-LL-ZZ”.
Exemplu:
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 | Fairview | 0938867763 | |||
Leslie Winkle | 14/02/1984 | Masculin | 0987636553 | |||
Howard Wolowitz | 24/08/1981 | Masculin | South Park | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Să INSERTĂ datele unul câte unul. Vom începe cu Leonard Hofstadter. Vom trata numărul de contact ca pe un tip de date numerice ș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 scade 0 de la numărul de contact al lui Leonard. Acest lucru se datorează faptului că valoarea va fi tratată ca o valoare numerică, iar zero (0) de la început este eliminat deoarece 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');
În cazul de mai sus, zero(0) nu va fi eliminat
Modificarea ordinii coloanelor nu are efect asupra interogării INSERT în MySQL atâta timp cât valorile corecte au fost mapate la coloanele corecte.
Interogarea prezentată mai jos demonstrează punctul de mai sus.
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 va insera valori NULL în coloanele care sunt omise în 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');
Toate interogările de mai sus au specificat coloanele și le-au mapat la valorile din MySQL inserare declarație. Dacă furnizăm valori pentru TOATE coloanele din tabel, atunci putem omite coloanele din MySQL interogare de inserare.
Exemplu:-
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz[at]email.me');
Să folosim acum instrucțiunea SELECT pentru a vizualiza toate rândurile din tabelul membrilor.
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 pentru Leonard Hofstadter a scăzut zero (0) din numărul de contact. Celelalte numere de contact nu au scăzut zero (0) la început.
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;
Să ne uităm acum la un exemplu practic. Vom crea un tabel inactiv pentru categoriile de filme în scop demonstrativ. Vom numi noul tabel de categorii categoriis_archive. Scriptul prezentat 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.
Să inserăm acum toate rândurile din tabelul de categorii în tabelul de arhivă de categorii. Scriptul prezentat mai jos ne ajută să realizăm acest lucru.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
Executarea scriptului de mai sus inserează toate rândurile din tabelul de categorii în tabelul de arhivă de categorii. Rețineți că structurile tabelului vor trebui să fie aceleași pentru ca scriptul să funcționeze. Un script mai robust este unul care mapează numele coloanelor din tabelul de inserare cu cele din tabelul care conține datele.
Interogarea prezentată mai jos demonstrează utilizarea acesteia.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
Se execută interogarea SELECT
SELECT * FROM `categories_archive`
oferă următoarele rezultate prezentate mai jos.
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 întrebări.
Funcția de inserare SQL în tabel poate fi utilizată pentru a executa următoarele tipuri de interogări:
- Insera
- Selectați
- Actualizează
- șterge
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 trebuie executată
„$link_identifier” este opțional, poate fi folosit pentru a trece linkul de conectare la server
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); } }
Rezumat
- Comanda INSERT este folosită pentru a adăuga date noi într-un tabel. MySql va adăuga un nou rând, odată ce comanda este executată.
- Datele și valorile șirului de caractere ar trebui să fie cuprinse între ghilimele simple.
- Valorile numerice nu trebuie să fie incluse între ghilimele.
- Comanda INSERT poate fi folosită și pentru a introduce date dintr-un tabel în altul.