MySQL INSERT INTO Query: Kako dodati redak u tablicu (primjer)
⚡ Pametni sažetak
MySQL INSERT INTO upit dodaje nove retke u tablicu, bilo eksplicitnim imenovanjem ciljnih stupaca ili navođenjem vrijednosti za svaki stupac. Ispravno navođenje nizova, brojeva i datuma određuje hoće li pohranjeni podaci ostati netaknuti.
Što je INSERT INTO?
UMETNUTI U koristi se za pohranu podataka u tablice. Naredba INSERT stvara novi redak u tablici za pohranu podataka. Podatke obično daju aplikacijski programi koji se izvode preko baze podataka.
Osnovna sintaksa
Pogledajmo osnovnu sintaksu INSERT INTO MySQL naredba:
INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);
OVDJE
- INSERT INTO `table_name` je naredba koja govori MySQL poslužitelj za dodavanje novog reda u tablicu pod nazivom `table_name.`
- (column_1,column_2,…) navodi stupce koji će se ažurirati u novom MySQL red
- VRIJEDNOSTI (vrijednost_1,vrijednost_2,…) navodi vrijednosti koje treba dodati u novi red
Prilikom unosa vrijednosti podataka koje treba umetnuti u novu tablicu, treba uzeti u obzir sljedeće:
- Vrste podataka niza – sve vrijednosti niza trebaju biti u jednostrukim navodnicima.
- Numerički tipovi podataka – sve numeričke vrijednosti trebaju se izravno navesti bez stavljanja u jednostruke ili dvostruke navodnike.
- Vrste datumskih podataka – stavite datumske vrijednosti u jednostruke navodnike u formatu 'GGGG-MM-DD'.
Umetanje više redaka odjednom
Jedna INSERT naredba može sadržavati nekoliko redaka. Odvojite svaki skup vrijednosti zarezom. Jedna naredba je brža od više njih jer se indeks ažurira jednom.
INSERT INTO `categories`(`category_name`,`remarks`) VALUES ('Documentary', 'Factual films'), ('Musical', 'Song driven films');
MySQL Primjer upita INSERT INTO
Pretpostavimo da imamo sljedeći popis novih članova knjižnice koje je potrebno dodati u bazu podataka.
| Puna imena | Datum rođenja | rod | Fizička adresa | poštanska adresa | Kontakt broj | Email adresa |
|---|---|---|---|---|---|---|
| Leonard Hofstadter | Muški | Woodcrest | 0845738767 | |||
| Sheldon Cooper | Muški | Woodcrest | 0976736763 | |||
| Rajesh Koothrappali | Muški | Woodcrest | 0938867763 | |||
| Leslie Winkle | 14/02/1984 | Muški | Woodcrest | 0987636553 | ||
| Howarda Wolowitza | 24/08/1981 | Muški | Južni park | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Umetnimo podatke redak po redak, počevši od Leonarda Hofstadtera. Broj kontakta tretirat ćemo kao numerički tip podataka i nećemo ga stavljati u jednostruke navodnike.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
Izvršavanjem gornjeg skripta iz Leonardovog kontaktnog broja izostavlja se 0 jer se vrijednost tretira kao numerička, a vodeća nula nije značajna.
Kako bi se izbjegli takvi problemi, vrijednost mora biti zatvorena u jednostruke navodnike kao što je prikazano u nastavku.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');
⚠️ Savjet: Pohranite telefonske brojeve, poštanske brojeve i slične identifikatore u tekstualni stupac kao što je VARCHAR. Numerički stupci ne mogu sadržavati vodeću nulu.
Promjena redoslijeda stupaca
Promjena redoslijeda stupaca nema utjecaja na INSERT upit u MySQL, sve dok su ispravne vrijednosti mapirane na ispravne stupce. Upit u nastavku pokazuje ovu tvrdnju.
INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`) VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');
Gornji upiti preskočili su stupac datuma rođenja. Prema zadanim postavkama MySQL ubacuje NULL vrijednosti u stupce koji su izostavljeni iz INSERT upita.
Sada umetnimo zapis za Leslie, kojem je naveden datum rođenja. Vrijednost datuma mora biti zatvorena u jednostruke navodnike u formatu 'GGGG-MM-DD'.
INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`) VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');
Izostavljanje popisa stupaca
Svi gore navedeni upiti imenovali su stupce i mapirali ih na vrijednosti. Ako navedemo vrijednosti za SVE stupce u tablici, popis stupaca može se izostaviti iz MySQL umetnite upit.
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz@email.me');
Iskoristimo sada SELECT izraz za pregled svih redaka u tablici članova.
SELECT * FROM `members`;
| članski broj | puna_ imena | rod | Datum rođenja | fizička adresa | poštanska adresa | kontakt_ broj | |
|---|---|---|---|---|---|---|---|
| 1 | Janet Jones | ženski | 21-07-1980 | Prva ulica Parcela broj 4 | Privatna torba | 0759 253 542 | janetjones@yagoo.cm |
| 2 | Janet Smith Jones | ženski | 23-06-1980 | Melrose 123 | NULL | NULL | jj@fstreet.com |
| 3 | Robert Phil | Muški | 12-07-1989 | 3. ulica 34 | NULL | 12345 | rm@tstreet.com |
| 4 | Gloria Williams | ženski | 14-02-1984 | 2. ulica 23 | NULL | NULL | NULL |
| 5 | Leonard Hofstadter | Muški | NULL | Woodcrest | NULL | 845738767 | NULL |
| 6 | Sheldon Cooper | Muški | NULL | Woodcrest | NULL | 0976736763 | NULL |
| 7 | Rajesh Koothrappali | Muški | NULL | Woodcrest | NULL | 0938867763 | NULL |
| 8 | Leslie Winkle | Muški | 14-02-1984 | Woodcrest | NULL | 0987636553 | NULL |
| 9 | Howarda Wolowitza | Muški | 24-08-1981 | Južni park | PO Box 4563 | 0987786553 | lwolowitz@email.me |
Primijetite da je kontaktni broj Leonarda Hofstadtera izostavio svoju vodeću nulu, točno kako je predviđeno. Navedeni brojevi su je zadržali.
Umetanje u tablicu iz druge tablice
Naredba INSERT također se može koristiti za umetanje podataka u tablicu iz druge tablice. Osnovna sintaksa je prikazana u nastavku.
INSERT INTO table_1 SELECT * FROM table_2;
Sada ćemo kreirati lažnu tablicu za kategorije filmova, pod nazivom categories_archive. Skript u nastavku stvara tablicu.
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`))
Izvršite gornji skript za izradu tablice. Sada umetnimo sve retke iz tablice kategorija u tablicu arhive kategorija.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
Strukture tablica moraju biti iste da bi ta skripta radila. Robusnija skripta mapira nazive stupaca u odredišnoj tablici na one u tablici koja sadrži podatke, kao što je prikazano u nastavku.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
Izvršavanje SELECT upita u nastavku daje sljedeće rezultate.
SELECT * FROM `categories_archive`;
| kategorija_id | category_name | primjedbe |
|---|---|---|
| 1 | Komedija | Filmovi s humorom |
| 2 | Romantičan | Ljubavne priče |
| 3 | Ep | Priča drevnih filmova |
| 4 | Užas | NULL |
| 5 | Naučna fantastika | NULL |
| 6 | triler | NULL |
| 7 | Akcijski | NULL |
| 8 | Romantična komedija | NULL |
| 9 | Crtići | NULL |
| 10 | Crtići | NULL |
Primjer PHP-a: Umetni u MySQL Stol
Za izvođenje se koristi funkcija mysqli_query SQL upite iz PHP-a. Izvršava naredbe Insert, Select, Update i Delete podjednako, a ima sljedeću sintaksu.
mysqli_query($db_handle,$query);
OVDJE,
- “mysqli_query(…)” je funkcija koja izvršava SQL upite.
- „$query“ je SQL upit koji treba izvršiti.
- „$db_handle“ je veza za povezivanje s poslužiteljem koju vraća mysqli_connect.
Primjer
$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); }

