Što je INSERT INTO?
INSERT INTO koristi se za pohranu podataka u tablice. Naredba INSERT stvara novi redak u tablici za pohranu podataka. Podaci se obično isporučuju iz aplikacijskih programa koji se izvode na vrhu baze podataka.
Osnovna sintaksa
Pogledajmo osnovnu sintaksu naredbe INSERT INTO MySQL:
INSERT INTO `ime_tabele` (stupac_1, stupac_2, ...) VRIJEDNOSTI (vrijednost_1, vrijednost_2, ...);
OVDJE
- INSERT INTO `table_name` je naredba koja MySQL poslužitelju dodaje da doda novi redak u tablicu pod nazivom` table_name.`
- (stupac_1, stupac_2, ...) navodi stupce koji će se ažurirati u novom MySQL retku
- VRIJEDNOSTI (vrijednost_1, vrijednost_2, ...) određuje vrijednosti koje će se dodati u novi redak
Prilikom davanja vrijednosti podataka koje treba umetnuti u novu tablicu, treba uzeti u obzir sljedeće:
- Tipovi podataka niza - sve vrijednosti niza trebaju biti zatvorene u pojedinačne navodnike.
- Numerički tipovi podataka - sve numeričke vrijednosti trebale bi se dostaviti izravno, ne zatvarajući ih u jednostruke ili dvostruke navodnike.
- Tipovi podataka datuma - priložite vrijednosti datuma u pojedinačne navodnike u formatu 'GGGG-MM-DD'.
Primjer:
Pretpostavimo da imamo sljedeći popis novih članova knjižnice koje treba dodati u bazu podataka.
Puna imena | Datum rođenja | spol | 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.8.1981 | Muški | Južni park | Poštanski pretinac 4563 | 0987786553 | Ova adresa e-pošte zaštićena je od neželjenih robota. Ako ga želite pregledati, potreban vam je Java-skripta. |
UMETNIMO podatke jedan po jedan. Započet ćemo s Leonardom Hofstadterom. Kontaktni broj tretirat ćemo kao numeričku vrstu podataka i nećemo ga dodavati u pojedinačne navodnike.
INSERT INTO `members` (` full_names`, `gender`,` physical_address`, `contact_number`) VRIJEDNOSTI ('Leonard Hofstadter', 'Male', 'Woodcrest', 0845738767);
Izvršavanje gornje skripte ispušta 0 s Leonardovog broja za kontakt. 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 bi se izbjegli takvi problemi, vrijednost mora biti zatvorena u pojedinačne navodnike kao što je prikazano dolje -
INSERT INTO `members` (` full_names`, `gender`,` physical_address`, `contact_number`) VRIJEDNOSTI ('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-u sve dok su ispravne vrijednosti preslikane u ispravne stupce.
Upit prikazan u nastavku pokazuje gornju točku.
INSERT INTO `members` (` contact_number`, `gender`,` full_names`, `physical_address`) VRIJEDNOSTI ('0938867763', 'Male', 'Rajesh Koothrappali', 'Woodcrest');
Gore navedeni upiti preskočili su stupac s datumom rođenja. Prema zadanim postavkama MySQL će umetnuti NULL vrijednosti u stupce koji su izostavljeni u upitu INSERT.
Ubacimo sada zapis za Leslie, koji ima navedeni datum rođenja. Vrijednost datuma treba priložiti u pojedinačne navodnike u formatu 'GGGG-MM-DD'.
INSERT INTO `members` (` full_names`, `date_of_birth`,` gender`, `physical_address`,` contact_number`) VRIJEDNOSTI ('Leslie Winkle', '1984-02-14', 'Male', 'Woodcrest', ' 0987636553 ');
Svi gore navedeni upiti odredili su stupce i preslikali ih u vrijednosti u MySQL naredbi za umetanje. Ako dostavljamo vrijednosti za SVE stupce u tablici, tada možemo izostaviti stupce iz upita za umetanje MySQL.
Primjer:-
UMETNI U "VRIJEDNOSTI članova (9, 'Howard Wolowitz', 'Muški', '1981-08-24',
'SouthPark', 'PO Box 4563', '0987786553', 'lwolowitz [na] email.me') ;
Upotrijebimo sada naredbu SELECT za pregled svih redaka u članskoj tablici.
SELECT * FROM `members`;
članski broj | puna_ imena | spol | Datum rođenja | fizička adresa | poštanska adresa | kont._broj | |
---|---|---|---|---|---|---|---|
1 | Janet Jones | Žena | 21-07-1980 | Parcela prve ulice br. 4 | Privatna torba | 0759 253 542 | Ova adresa e-pošte zaštićena je od neželjenih robota. Ako ga želite pregledati, potreban vam je Java-skripta. |
2 | Janet Smith Jones | Žena | 23-06-1980 | Melrose 123 | NULL | NULL | Ova adresa e-pošte zaštićena je od neželjenih robota. Ako ga želite pregledati, potreban vam je Java-skripta. |
3 | Robert Phil | Muški | 12-07-1989 | 3. ulica 34 | NULL | 12345 | Ova adresa e-pošte zaštićena je od neželjenih robota. Ako ga želite pregledati, potreban vam je Java-skripta. |
4 | Gloria Williams | Žena | 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 | 976736763 | NULL |
7 | Rajesh Koothrappali | Muški | NULL | Woodcrest | NULL | 938867763 | NULL |
8 | Leslie Winkle | Muški | 14-02-1984 | Woodcrest | NULL | 987636553 | NULL |
9 | Howarda Wolowitza | Muški | 24-08-1981 | Južni park | Poštanski pretinac 4563 | 987786553 | Ova adresa e-pošte zaštićena je od neželjenih robota. Ako ga želite pregledati, potreban vam je Java-skripta. |
Primijetite da je kontaktni broj Leonarda Hofstadtera spustio nulu (0) s kontaktnog broja. Ostali brojevi za kontakt na početku nisu spustili nulu (0).
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 kako je prikazano u nastavku.
INSERT INTO table_1 SELECT * FROM table_2;
Pogledajmo sada praktični primjer. Stvorit ćemo lažnu tablicu za kategorije filmova u demonstracijske svrhe. Tablu novih kategorija nazvat ćemo kategorijama_arhiva. Skripta prikazana u nastavku stvara tablicu.
STVORI TABLICU `category_archive` (` id_kategorije` int (11) AUTO_INCREMENT, `ime_kategorije` varchar (150) DEFAULT NULL,` napomene` varchar (500) DEFAULT NULL, PRIMARNI KLJUČ (`id_kategorije`)
Izvršite gornju skriptu za stvaranje tablice.
Ubacimo sada sve retke iz tablice kategorija u arhivsku tablicu kategorija. Skripta prikazana u nastavku pomaže nam da to postignemo.
INSERT INTO `categories_archive` SELECT * FROM` categories`;
Izvršenjem gornje skripte umetću se svi retci iz tablice kategorija u tablicu arhiva kategorija. Imajte na umu da će strukture tablica morati biti iste da bi skripta radila. Robusnija je skripta koja mape naziva stupaca u tablici za umetanje podudara s onima u tablici koja sadrži podatke.
Upit prikazan u nastavku pokazuje njegovu upotrebu.
INSERT INTO `categories_archive` (id_kategorije, ime_kategorije, primjedbe) SELECT category_id, ime_kategorije, primjedbe IZ` kategorija`;
Izvršenje upita SELECT
ODABERITE * IZ `categories_archive`
daje sljedeće rezultate prikazane u nastavku.
id_kategorije | ime kategorije | opaske |
---|---|---|
1 | Komedija | Filmovi s humorom |
2 | Romantično | Ljubavne priče |
3 | Ep | Priča o drevnim filmovima |
4 | Užas | NULL |
5 | Znanstvena fantastika | NULL |
6 | Triler | NULL |
7 | Akcijski | NULL |
8 | Romantična komedija | NULL |
9 | Crtani filmovi | NULL |
10 | Crtani filmovi | NULL |
Primjer PHP-a: Umetnite u MySQL tablicu
Funkcija mysqli_query koristi se za izvršavanje SQL upita.
Funkcija se može koristiti za izvršavanje sljedećih vrsta upita;
- Umetnuti
- Izaberi
- Ažuriraj
- 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 connectionif (!$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".'
';} else {echo "Error: " . $sql. "
" . mysqli_error($conn);}}
Sažetak
- Naredba INSERT koristi se za dodavanje novih podataka u tablicu. MySql će dodati novi redak, nakon izvršavanja naredbe.
- Vrijednosti datuma i niza trebaju se nalaziti u pojedinačnim navodnicima.
- Numeričke vrijednosti ne trebaju se stavljati u navodnike.
- Naredba INSERT također se može koristiti za umetanje podataka iz jedne tablice u drugu.