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 e-mail
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.