MySQL INSERT INTO Query: Så här lägger du till rad i tabell (exempel)

Innehållsförteckning:

Anonim

Vad är INSERT IN?

INSERT INTO används för att lagra data i tabellerna. INSERT-kommandot skapar en ny rad i tabellen för att lagra data. Data levereras 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-kommandot:

INSÄTTA I `tabellnamn` (kolumn_1, kolumn_2, ...) VÄRDEN (värde_1, värde_2, ...);

HÄR

  • INSERT INTO `tabellnamn 'är kommandot som ber MySQL-servern att lägga till en ny rad i en tabell med namnet' tabellnamn. '
  • (column_1, column_2, ...) anger vilka kolumner som ska uppdateras i den nya MySQL-raden
  • VALUES (value_1, value_2,…) anger värdena som ska läggas till i den nya raden

När du tillhandahåller de datavärden som ska införas i den nya tabellen bör följande övervägas:

  • Strängdatatyper - alla strängvärden bör bifogas i enstaka citat.
  • Numeriska datatyper - alla numeriska värden ska tillhandahållas direkt utan att de bifogas i enkla eller dubbla citat.
  • Datumdatatyper - bifoga datumvärden i enstaka citat i formatet "ÅÅÅÅ-MM-DD".

Exempel:

Antag att vi har följande lista över nya biblioteksmedlemmar som måste läggas till i databasen.

Fullständiga namn Födelsedatum kön Fysisk adress postadress Kontaktnummer E-postadress
Leonard Hofstadter Manlig Woodcrest 0845738767
Sheldon Cooper Manlig Woodcrest 0976736763
Rajesh Koothrappali Manlig Fairview 0938867763
Leslie Winkle 14/02/1984 Manlig 0987636553
Howard Wolowitz 24/08/1981 Manlig South Park PO Box 4563 0987786553 Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.

Låt oss INSÄTTA 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 offert.

INSÄTTA I 'medlemmar' ('fullständiga namn', 'kön', 'fysisk_adress', 'kontaktnummer') VÄRDEN ('Leonard Hofstadter', 'Man', 'Woodcrest', 0845738767);

Genom att utföra ovanstående skript släpps 0 från Leonards kontaktnummer. Detta beror på att värdet kommer att behandlas som ett numeriskt värde och noll (0) i början tappas eftersom det inte är signifikant.

För att undvika sådana problem måste värdet bifogas i enstaka citat som visas nedan -

INSÄTTA I 'medlemmar' ('fullständiga namn', 'kön', 'fysisk_adress', 'kontaktnummer') VÄRDEN ('Sheldon Cooper', 'Man', 'Woodcrest', '0976736763'); 

I ovanstående fall kommer noll (0) inte att släppas

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

Frågan som visas nedan visar ovanstående punkt.

INSÄTTA I "medlemmar" ("kontaktnummer", "kön", "fullständiga namn", "fysisk_adress") VÄRDEN ('0938867763', 'Man', 'Rajesh Koothrappali', 'Woodcrest');

Ovanstående frågor hoppade över födelsedatumskolumnen. Som standard infogar MySQL 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. Datumvärdet ska bifogas i enstaka citat med formatet "ÅÅÅÅ-MM-DD".

INSÄTTA I 'medlemmar' ('fullständiga namn', 'datum_födsel', 'kön', 'fysisk_adress', 'kontaktnummer') VÄRDEN ('Leslie Winkle', '1984-02-14', 'Man', 'Woodcrest', ' 0987636553 '); 

Alla ovanstående frågor angav kolumnerna och mappade dem till värden i MySQL infoga uttalande. Om vi ​​levererar värden för ALLA kolumnerna i tabellen kan vi utelämna kolumnerna från MySQL-infoga frågan.

Exempel:-

INSÄTTA I 'medlemmars VÄRDEN (9,' Howard Wolowitz ',' Man ',' 1981-08-24 ',
' SouthPark ',' PO Box 4563 ',' 0987786553 ',' lwolowitz [at] email.me ') ;

Låt oss nu använda SELECT-uttalandet för att visa alla raderna i medlemmens tabell.

SELECT * FROM `members`; 
medlemsnummer Fullständiga namn kön födelsedatum fysisk adress postadress kont_nummer e-post
1 Janet Jones Kvinna 21-07-1980 First Street tomt nr 4 Privat väska 0759 253 542 Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.
2 Janet Smith Jones Kvinna 23-06-1980 Melrose 123 NULL NULL Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.
3 Robert Phil Manlig 12-07-1989 3rd Street 34 NULL 12345 Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.
4 Gloria Williams Kvinna 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Manlig NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Manlig NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Manlig NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Manlig 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Manlig 24-08-1981 SouthPark PO Box 4563 987786553 Den här e-postadressen är skyddad från spamrobotar. Du måste ha Javascript aktiverat för att kunna se det.

Lägg märke till att kontaktnumret för Leonard Hofstadter har tappat nollan (0) från kontaktnumret. De andra kontaktnumren har inte tappat nollan (0) i början.

Infoga i en tabell från en annan tabell

INSERT-kommandot 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 VÄLJ * FRÅN table_2; 

Låt oss nu titta på ett praktiskt exempel. Vi skapar en dummy-tabell för filmkategorier för demonstrationsändamål. Vi kommer att kalla den nya kategoritabellen categories_archive. Skriptet som visas nedan skapar tabellen.

SKAPA TABELL `categories_archive '(` category_id` int (11) AUTO_INCREMENT, `category_name` varchar (150) STANDARD NULL,` anmärkningar` varchar (500) STANDARD NULL, PRIMÄR KEY (`category_id`)) 

Kör ovanstående skript för att skapa tabellen.

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

INSERT INTO `categories_archive` VÄLJ * FRÅN` kategorier`; 

Genom att utföra ovanstående skript infogas alla rader från kategoritabellen i kategorierna arkivtabell. Observera att tabellstrukturerna måste vara desamma för att manuset 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, anmärkningar) VÄLJ category_id, category_name, anmärkningar FRÅN` kategorier`;

Utför SELECT-frågan

VÄLJ * FRÅN `categories_archive`

ger följande resultat som visas nedan.

category_id kategori namn anmärkningar
1 Komedi Filmer med humor
2 Romantisk Kärlekshistorier
3 Episk Historiska akuta filmer
4 Skräck 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-tabellen

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

Funktionen kan användas för att utföra följande frågetyper;

  • Föra in
  • Välj
  • Uppdatering
  • radera

Den har följande syntax.

mysqli_query($db_handle,$query);

HÄR,

"mysqli_query (

...) "är funktionen som kör SQL-frågorna.

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

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

Exempel

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

Sammanfattning

  • INSERT-kommandot används för att lägga till nya data i en tabell. MySql lägger till en ny rad när kommandot har körts.
  • Datum och strängvärden ska bifogas i enstaka citat.
  • De numeriska värdena behöver inte ingå i offerten.
  • INSERT-kommandot kan också användas för att infoga data från en tabell till en annan.