MySQL INSERT INTO Query: Hvordan legge til rad i tabell (eksempel)

Hva er INSERT INTO?

INSERT I brukes til รฅ lagre data i tabellene. INSERT-kommandoen oppretter en ny rad i tabellen for รฅ lagre data. Dataene leveres vanligvis av applikasjonsprogrammer som kjรธrer pรฅ toppen av databasen.

Grunnleggende syntaks

La oss se pรฅ den grunnleggende syntaksen til INSERT INTO MySQL kommando:

INSERT INTO `table_name`(column_1,column_2,...) VALUES (value_1,value_2,...);

HER

  • INSERT INTO `tabellnavn` er kommandoen som forteller MySQL server for รฅ legge til en ny rad i en tabell kalt `tabellnavn.`
  • (column_1,column_2,...) spesifiserer kolonnene som skal oppdateres i den nye MySQL rad
  • VERDIER (verdi_1, verdi_2,...) spesifiserer verdiene som skal legges til i den nye raden

Nรฅr du oppgir dataverdiene som skal settes inn i den nye tabellen, bรธr fรธlgende tas i betraktning:

  • Strengdatatyper โ€“ alle strengverdiene skal omsluttes av enkle anfรธrselstegn.
  • Numeriske datatyper - alle numeriske verdier skal oppgis direkte uten รฅ omslutte dem i enkle eller doble anfรธrselstegn.
  • Datodatatyper โ€“ omslutt datoverdier i enkle anfรธrselstegn i formatet 'ร…ร…ร…ร…-MM-DD'.


Eksempel:

Anta at vi har fรธlgende liste over nye bibliotekmedlemmer som mรฅ legges til databasen.

Fulle navn Fรธdselsdato kjรธnn Fysisk adresse postadresse Kontakt nummer Epostadresse
Leonard Hofstadter mann Woodcrest 0845738767
Sheldon Cooper mann Woodcrest 0976736763
Rajesh Koothrappali mann Fairview 0938867763
Leslie Winkle 14/02/1984 mann 0987636553
Howard Wolowitz 24/08/1981 mann South Park PO Box 4563 0987786553 lwolowitz@email.me

La oss SETTE INN data รฉn etter รฉn. Vi starter med Leonard Hofstadter. Vi vil behandle kontaktnummeret som en numerisk datatype og ikke omslutte nummeret i enkle anfรธrselstegn.

INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`) VALUES ('Leonard Hofstadter','Male','Woodcrest',0845738767);

Nรฅr du kjรธrer skriptet ovenfor, faller 0-en fra Leonards kontaktnummer. Dette er fordi verdien vil bli behandlet som en numerisk verdi, og null (0) i begynnelsen blir droppet siden den ikke er signifikant.

For รฅ unngรฅ slike problemer mรฅ verdien settes i enkle anfรธrselstegn som vist nedenfor โ€“

INSERT INTO `members` (`full_names`,`gender`,`physical_address`,`contact_number`)  VALUES ('Sheldon Cooper','Male','Woodcrest', '0976736763');

I tilfellet ovenfor vil ikke null(0) bli slettet


Endring av rekkefรธlgen pรฅ kolonnene har ingen effekt pรฅ INSERT-spรธrringen i MySQL sรฅ lenge de riktige verdiene er tilordnet de riktige kolonnene.

Spรธrringen vist nedenfor demonstrerer punktet ovenfor.

INSERT INTO `members` (`contact_number`,`gender`,`full_names`,`physical_address`)  VALUES ('0938867763','Male','Rajesh Koothrappali','Woodcrest');

Spรธrringene ovenfor hoppet over fรธdselsdatokolonnen. Som standard, MySQL vil sette inn NULL-verdier i kolonner som er utelatt i INSERT-spรธrringen.

La oss nรฅ sette inn posten for Leslie, som har fรธdselsdatoen oppgitt. Datoverdien skal vรฆre omgitt av enkle anfรธrselstegn ved รฅ bruke formatet 'ร…ร…ร…ร…-MM-DD'.

INSERT INTO `members` (`full_names`,`date_of_birth`,`gender`,`physical_address`,`contact_number`)  VALUES ('Leslie Winkle','1984-02-14','Male','Woodcrest', '0987636553');

Alle de ovennevnte spรธrringene spesifiserte kolonnene og tilordnet dem til verdier i MySQL sette inn uttalelse. Hvis vi oppgir verdier for ALLE kolonnene i tabellen, kan vi utelate kolonnene fra MySQL sett inn spรธrring.

Eksempel:-

INSERT INTO `members`  VALUES (9,'Howard Wolowitz','Male','1981-08-24',
'SouthPark','P.O. Box 4563', '0987786553', 'lwolowitz[at]email.me');

La oss nรฅ bruke SELECT-setning for รฅ se alle radene i medlemmets tabell.

SELECT * FROM `members`;
medlemsnummer fulle_ navn kjรธnn fรธdselsdato fysisk_adresse postadresse kontakt_nummer emalje
1 Janet Jones Hunn 21-07-1980 First Street tomt nr. 4 Privat bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Hunn 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil mann 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Hunn 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter mann NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper mann NULL Woodcrest NULL 0976736763 NULL
7 Rajesh Koothrappali mann NULL Woodcrest NULL 0938867763 NULL
8 Leslie Winkle mann 14-02-1984 Woodcrest NULL 0987636553 NULL
9 Howard Wolowitz mann 24-08-1981 Sรธr Park PO Box 4563 0987786553 lwolowitz@email.me

Legg merke til at kontaktnummeret til Leonard Hofstadter har droppet nullen (0) fra kontaktnummeret. De andre kontaktnumrene har ikke falt null (0) i begynnelsen.

Sette inn i en tabell fra en annen tabell

INSERT-kommandoen kan ogsรฅ brukes til รฅ sette inn data i en tabell fra en annen tabell. Den grunnleggende syntaksen er som vist nedenfor.

INSERT INTO table_1 SELECT * FROM table_2;

La oss nรฅ se pรฅ et praktisk eksempel. Vi vil lage en dummy-tabell for filmkategorier for demonstrasjonsformรฅl. Vi vil kalle de nye kategoriene tabellen kategorier_arkiv. Skriptet vist nedenfor lager bordet.

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`))

Utfรธr skriptet ovenfor for รฅ lage tabellen.

La oss nรฅ sette inn alle radene fra kategoritabellen i kategoriarkivtabellen. Skriptet vist nedenfor hjelper oss รฅ oppnรฅ det.

INSERT INTO `categories_archive` SELECT * FROM `categories`;

Ved รฅ kjรธre skriptet ovenfor setter du inn alle radene fra kategoritabellen i kategoriarkivtabellen. Merk at tabellstrukturene mรฅ vรฆre de samme for at skriptet skal fungere. Et mer robust skript er et som tilordner kolonnenavnene i innsettingstabellen til de i tabellen som inneholder dataene.

Spรธrringen vist nedenfor viser bruken.

INSERT INTO `categories_archive`(category_id,category_name,remarks)  SELECT category_id,category_name,remarks FROM `categories`;

Utfรธrer SELECT-spรธrringen

SELECT * FROM `categories_archive`

gir fรธlgende resultater vist nedenfor.

kategori_id category_name bemerkninger
1 Komedie Filmer med humor
2 Romantisk Kjรฆrlighetshistorier
3 Epic Gamle historiefilmer
4 Horror NULL
5 Science Fiction NULL
6 Thriller NULL
7 Handling NULL
8 Romantisk komedie NULL
9 Tegneserier NULL
10 Tegneserier NULL

PHP Eksempel: Sett inn i MySQL Bord

Mysqli_query-funksjonen brukes til รฅ utfรธre SQL spรธrringer.

SQL-insert into table-funksjonen kan brukes til รฅ utfรธre fรธlgende spรธrringstyper:

  • innfelt
  • Velg
  • Oppdater
  • slette

Den har fรธlgende syntaks.

mysqli_query($db_handle,$query);

HER,

"mysqli_query(...)" er funksjonen som utfรธrer SQL-spรธrringene.

"$query" er SQL-spรธrringen som skal utfรธres

"$link_identifier" er valgfritt, den kan brukes til รฅ sende inn servertilkoblingslenken

Eksempel

$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);
	}
}

Sammendrag

  • INSERT-kommandoen brukes til รฅ legge til nye data i en tabell. MySql vil legge til en ny rad nรฅr kommandoen er utfรธrt.
  • Dato- og strengverdiene skal vรฆre omgitt av enkle anfรธrselstegn.
  • De numeriske verdiene trenger ikke vรฆre omgitt av anfรธrselstegn.
  • INSERT-kommandoen kan ogsรฅ brukes til รฅ sette inn data fra en tabell til en annen.

Oppsummer dette innlegget med: