MySQL INSERT INTO Query: Kako dodati redak u tablicu (primjer)
ล to je INSERT INTO?
UMETNUTI U koristi se za pohranu podataka u tablice. Naredba INSERT stvara novi red u tablici za pohranu podataka. Podatke obiฤno dostavljaju aplikacijski programi koji se pokreฤu povrh 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 treba dostaviti izravno bez zatvaranja u jednostruke ili dvostruke navodnike.
- Vrste datumskih podataka โ stavite datumske vrijednosti u jednostruke navodnike u formatu 'GGGG-MM-DD'.
Primjer:
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 | Fairview | 0938867763 | |||
| Leslie Winkle | 14/02/1984 | Muลกki | 0987636553 | |||
| Howarda Wolowitza | 24/08/1981 | Muลกki | South Park | PO Box 4563 | 0987786553 | lwolowitz@email.me |
UMETNIMO podatke jedan po jedan. Poฤet ฤemo s Leonardom Hofstadterom. Broj kontakta tretirat ฤemo kao numeriฤku vrstu podataka i neฤemo ga staviti u jednostruke navodnike.
INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);
Izvrลกavanje gornje skripte ispuลกta 0 s Leonardovog kontakt broja. To je zato ลกto ฤe se vrijednost tretirati kao numeriฤka vrijednost, a nula (0) na poฤetku se ispuลกta jer nije znaฤajna.
Da biste izbjegli takve probleme, 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');
U gornjem sluฤaju, nula(0) neฤe biti ispuลกtena
Promjena redoslijeda stupaca nema utjecaja na INSERT upit u MySQL sve dok su ispravne vrijednosti mapirane u ispravne stupce.
Upit prikazan u nastavku pokazuje gornju toฤku.
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 umetnut ฤe NULL vrijednosti u stupce koji su izostavljeni u INSERT upitu.
Ubacimo sada zapis za Leslie, koji ima datum roฤenja. Vrijednost datuma treba biti u jednostrukim navodnicima 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');
Svi gornji upiti specificirali su stupce i preslikali ih na vrijednosti u MySQL umetnuti izjavu. Ako unosimo vrijednosti za SVE stupce u tablici, tada moลพemo izostaviti stupce iz MySQL umetnite upit.
Primjer:-
INSERT INTO `members` VALUES (9,'Howard Wolowitz','Male','1981-08-24', 'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz[at]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 broj za kontakt Leonarda Hofstadtera izbacio nulu (0) iz broja za kontakt. Ostali kontakt brojevi nisu ispustili nulu (0) na poฤetku.
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;
Pogledajmo sada praktiฤan primjer. Napravit ฤemo laลพnu tablicu za kategorije filmova u svrhu demonstracije. Novu tablicu kategorija nazvat ฤemo kategorije_arhiva. Skripta prikazana 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 gornju skriptu za izradu tablice.
Umetnimo sada sve retke iz tablice kategorija u tablicu arhive kategorija. Skripta prikazana u nastavku pomaลพe nam u tome.
INSERT INTO `categories_archive` SELECT * FROM `categories`;
Izvrลกavanje gornje skripte umeฤe sve retke iz tablice kategorija u tablicu arhive kategorija. Imajte na umu da ฤe strukture tablice morati biti iste da bi skripta radila. Robusnija skripta je ona koja preslikava nazive stupaca u tablici umetanja u one u tablici koja sadrลพi podatke.
Upit prikazan u nastavku pokazuje njegovu upotrebu.
INSERT INTO `categories_archive`(category_id,category_name,remarks) SELECT category_id,category_name,remarks FROM `categories`;
Izvrลกavanje SELECT upita
SELECT * FROM `categories_archive`
daje sljedeฤe rezultate prikazane u nastavku.
| 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 upita.
Funkcija SQL umetanja u tablicu moลพe se koristiti za izvrลกavanje sljedeฤih vrsta upita:
- umetak
- odabrati
- Nadopune
- izbrisati
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
โ$link_identifierโ nije obavezan, moลพe se koristiti za prosljeฤivanje veze veze posluลพitelja
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);
}
}
Rezime
- Naredba INSERT koristi se za dodavanje novih podataka u tablicu. MySql ฤe dodati novi red nakon ลกto se naredba izvrลกi.
- Vrijednosti datuma i niza trebaju biti u jednostrukim navodnicima.
- Numeriฤke vrijednosti ne moraju biti u navodnicima.
- Naredba INSERT takoฤer se moลพe koristiti za umetanje podataka iz jedne tablice u drugu.
