MySQL INFOGA I fråga: Hur man lägger till rad i tabell (exempel)

Vad är INSERT INTO?

INSERT IN används för att lagra data i tabellerna. Kommandot INSERT skapar en ny rad i tabellen för att lagra data. Datan tillhandahålls vanligtvis av applikationsprogram som körs ovanpå databasen.

Grundläggande syntax

Låt oss titta på den grundläggande syntaxen för INSERT INTO MySQL kommando:

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

HÄR

  • INSERT INTO `tabellnamn` är kommandot som talar om MySQL server för att lägga till en ny rad i en tabell med namnet `tabellnamn.`
  • (kolumn_1, kolumn_2,...) anger de kolumner som ska uppdateras i den nya MySQL v
  • VÄRDEN (värde_1, värde_2,...) anger de värden som ska läggas till i den nya raden

När du anger datavärdena som ska infogas i den nya tabellen bör följande beaktas:

  • Strängdatatyper – alla strängvärden ska omges av enkla citattecken.
  • Numeriska datatyper - alla numeriska värden ska anges direkt utan att omge dem i enkla eller dubbla citattecken.
  • Datumdatatyper – omge datumvärden inom enstaka citattecken i formatet 'ÅÅÅÅ-MM-DD'.


Exempelvis:

Anta att vi har följande lista över nya biblioteksmedlemmar som behöver läggas till i databasen.

Fullständiga namn Födelsedatum kön Fysisk adress postadress Kontaktnummer E-postadress
Leonard Hofstadter man Trästomme 0845738767
Sheldon Cooper man Trästomme 0976736763
Rajesh Koothrappali man Fairview 0938867763
Leslie Winkle 14/02/1984 man 0987636553
Howard Wolowitz 24/08/1981 man South Park PO Box 4563 0987786553 lwolowitz@email.me

Låt oss INFOGA data en efter en. Vi börjar med Leonard Hofstadter. Vi kommer att behandla kontaktnumret som en numerisk datatyp och inte bifoga numret i enstaka citattecken.

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

Genom att köra ovanstående skript tappas nollan från Leonards kontaktnummer. Detta beror på att värdet kommer att behandlas som ett numeriskt värde, och nollan (0) i början tas bort eftersom den inte är signifikant.

För att undvika sådana problem måste värdet omges av enkla citattecken som visas nedan –

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

I ovanstående fall kommer noll(0) inte att tas bort


Att ändra ordningen på kolumnerna har ingen effekt på INSERT-frågan i MySQL så länge de korrekta värdena har mappats till rätt kolumner.

Frågan som visas nedan visar punkten ovan.

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

Ovanstående frågor hoppade över kolumnen för födelsedatum. Som standard, MySQL kommer att infoga NULL-värden i kolumner som utelämnas i INSERT-frågan.

Låt oss nu infoga posten för Leslie, som har födelsedatumet angett. Datumvärdet ska omges av enkla citattecken med 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');

Alla ovanstående frågor specificerade kolumnerna och mappade dem till värden i MySQL infoga uttalande. Om vi ​​tillhandahåller värden för ALLA kolumner i tabellen, kan vi utelämna kolumnerna från MySQL infoga fråga.

Exempel:-

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

Låt oss nu använda SELECT-sats för att se alla rader i medlemmens tabell.

SELECT * FROM `members`;
medlemsnummer Fullständiga namn kön födelsedatum fysisk adress postadress kontakt_nummer e-mail
1 Janet Jones Kvinna 21-07-1980 First Street Tomt nr 4 Privat väska 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Kvinna 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil man 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Kvinna 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter man NULL Trästomme NULL 845738767 NULL
6 Sheldon Cooper man NULL Trästomme NULL 0976736763 NULL
7 Rajesh Koothrappali man NULL Trästomme NULL 0938867763 NULL
8 Leslie Winkle man 14-02-1984 Trästomme NULL 0987636553 NULL
9 Howard Wolowitz man 24-08-1981 Southpark PO Box 4563 0987786553 lwolowitz@email.me

Observera att kontaktnumret för Leonard Hofstadter har tagit bort nollan (0) från kontaktnumret. De andra kontaktnumren har inte sjunkit nollan (0) i början.

Infoga i en tabell från en annan tabell

Kommandot INSERT kan också användas för att infoga data i en tabell från en annan tabell. Den grundläggande syntaxen är som visas nedan.

INSERT INTO table_1 SELECT * FROM table_2;

Låt oss nu titta på ett praktiskt exempel. Vi kommer att skapa en dummy-tabell för filmkategorier för demonstrationsändamål. Vi kommer att kalla de nya kategorierna tabellen kategorier_arkiv. Skriptet som visas nedan skapar 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 ovan för att skapa tabellen.

Låt oss nu infoga alla rader från kategoritabellen i kategoriarkivtabellen. Skriptet som visas nedan hjälper oss att uppnå det.

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

Genom att köra ovanstående skript infogas alla rader från kategoritabellen i kategoriarkivtabellen. Observera att tabellstrukturerna måste vara desamma för att skriptet ska fungera. Ett mer robust skript är ett som mappar kolumnnamnen i infogningstabellen till de i tabellen som innehåller data.

Frågan som visas nedan visar dess användning.

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

Kör SELECT-frågan

SELECT * FROM `categories_archive`

ger följande resultat som visas nedan.

kategori_id CATEGORY_NAME anmärkningar
1 Komedi Filmer med humor
2 Romantisk Kärlekshistorier
3 Episk Berättelse gamla filmer
4 Fasa NULL
5 Science Fiction NULL
6 Thriller NULL
7 Handling NULL
8 Romantisk komedi NULL
9 Tecknade serier NULL
10 Tecknade serier NULL

PHP Exempel: Infoga i MySQL Bord

Funktionen mysqli_query används för att köra SQL frågor.

Funktionen SQL infoga i tabell kan användas för att köra följande frågetyper:

  • Insert
  • Välja
  • Uppdatering
  • radera

Den har följande syntax.

mysqli_query($db_handle,$query);

HÄR,

"mysqli_query(...)" är funktionen som exekverar SQL-frågorna.

"$query" är SQL-frågan som ska köras

"$link_identifier" är valfritt, det kan användas för att skicka in serveranslutningslänken

Exempelvis

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

Sammanfattning

  • Kommandot INSERT används för att lägga till ny data i en tabell. MySql kommer att lägga till en ny rad när kommandot har utförts.
  • Datum- och strängvärdena bör omges av enkla citattecken.
  • De numeriska värdena behöver inte stå inom citattecken.
  • Kommandot INSERT kan också användas för att infoga data från en tabell till en annan.