Introduktion til Indsæt i MySQL

Hovedmålet med et databasesystem er at gemme data i tabeller. For at definere funktionaliteten i databasen har vi forskellige slags SQL-kommandoer. I dette emne skal vi lære om Indsæt i MySQL.

SQL-kommandoer kan kategoriseres i følgende:

  • DDL (sprog til datadefinition)
  • DML (Datamanipulationssprog)
  • DQL (Sprog om dataforespørgsel)
  • DCL (Datakontrol sprog)
  • TCL (Transaktionskontrol sprog)

Her i denne artikel fokuserer vi hovedsageligt på DML. Da vi kan se navnet Data Manipulation sprog, så når bordet / databasen er oprettet, for at manipulere noget, kræver vi DML-kommandoer. Fordelene ved at bruge disse kommandoer er, hvis vi forkerte ændringer, kan vi rulle tilbage / fortryde det.

Følgende er kommandoerne i DML:

1. INSERT: Bruges til at indsætte nye rækker i tabellen.

INSERT into employee
Values(101, 'abcd');

2. SLETT: Bruges til at slette den enkelte række eller hele poster i en tabel.

DELETE TABLE employee;

3. UPDATE: Bruges til at opdatere eksisterende poster i en tabel.

UPDATE employee
SET col1 = new_col
WHERE condition;

Syntaks for Indsæt kommando i MySQL

Vi kan skrive INSERT INTO-erklæringen på følgende to måder.

Måde nr. 1

INSERT INTO table_name
VALUES (value1, value2, ….);

Måde nr. 2

INSERT INTO table_name (column1, column2, …….)
VALUES (value1, value2, ….);

  • INSERT INTO table_name er den kommando, der tilføjer en ny række til en tabel med navnet 'table_name' i MySQL-database.
  • (kolonne_1, kolonne_2, …) er de kolonnenavne, hvor en ny post tilføjes.
  • VALUES (value_1, value_2, …) specificerer de værdier, der skal tilføjes i den nye række.

Når vi tilføjer nye poster, skal vi være forsigtige med de definerede datatyper, mens vi opretter tabelstrukturen.

  • Streng: Alle strengværdier skal vedlægges enkelt citater.
  • Numerisk: Numeriske værdier bør ikke lukkes inden for hverken enkelt- eller dobbeltcitater.
  • Dato: Disse datatyper skal være i det eneste tilbud med formatet 'ÅÅÅÅ-MM-DD'.

Lad os overveje, at der er en "medarbejder" -tabel, der består af følgende attributter:

Emp_id Emp_name telefon E-mail Afdeling Manager by
1001Vinay9876543219CSRSudhirBangalore
1002Raaj9764527848DETStephenHyderabad
1003Sakti9567382784AutomotiveVedBhubaneswar

Hvis vi tilføjer værdier til alle kolonnerne i en tabel, behøver vi ikke at specificere kolonnenavnene i forespørgslen, men vi er nødt til at sikre, at vores nye post skal følge sekvensen for kolonnen som defineret i tabellen.

INSERT INTO employee
VALUES (1004, 'Ravi', 9856478398, ' ', 'marketing', 'shiv', 'kolkata');

Hvis vi ikke har alle værdierne for kolonner, og vi indsætter nogle af dem, er vi nødt til at specificere kolonnavnene i forespørgslen.

INSERT INTO employee (emp_id, emp_name, phone, email, manager)
VALUES (1005, 'sam', 9856478398, ' ', 'shivankar');

Implementering af indsæt kommando i MySQL

Lad os overveje, at vi har følgende lister over nye poster, der er nødvendige for at føje til STUDENT-databasetabellen.

Roll_noFornavnEfternavnStandardtelefonProcentby
1SandeepKumar10987645672689, 33Cuttack
2Shyam976Bhubaneswar
3SaktiNaik646376577676
4Sid89864876986Kolkata
5VinayKumar1092

Vi indsætter disse rækker en efter en i databasen.

  • Lad os starte med Sandeep. Her er 'Roll_no', 'Standard', 'Phone' og 'Procentage' numeriske felter, så værdier i denne kolonne indsættes uden anførselstegn.

INSERT INTO student
VALUES (1, 'Sandeep', 'Kumar', 10, 9876456726, 89.33, 'Cuttack');

Bemærk: Da vi har værdier for alle kolonner i elevtabellen, behøver vi ikke at specificere kolonnenavnet, mens vi bruger kommandoen INSERT. Men vi er nødt til at sikre, at vores værdi skal følge rækkefølgen af ​​kolonner i tabellen.

  • I tilfælde af Shyam-registrering kan vi se, at mange værdier mangler. Så her skal vi specificere kolonnavnene, hvor vi vil indsætte værdierne.

INSERT INTO student (Roll_no, First_name, Standard, Percentage, City)
VALUES (2, 'Shyam', 9, 76, 'Bhubaneswar');

Bemærk: I denne post har vi ikke værdierne for hver kolonne. Derfor er vi nødt til at specificere alle de kolonnenavne, som vi vil indsætte vores værdier i, og i rækkefølgen af ​​disse kolonnenavne, skal vi også nævne værdier.

INSERT INTO student (Roll_no, First_name, Last_name, Phone, Percentage)
VALUES (3, 'Sakti', 'naik', 6463765776, 76);

INSERT INTO student (Roll_no, First_name, Standard, Phone, City)
VALUES (4, 'Sid', 8, 9864876986, 'Kolkata');

INSERT INTO student (Roll_no, First_name, Last_name, standard, Percentage)
VALUES (5, 'Vinay', 'Kumar', 10, 92);

Ændring af rækkefølgen af ​​kolonner og værdi har ingen indflydelse på INSERT-forespørgslen, da den rigtige værdi ikke kan kortlægges til højre kolonne. Således kan der opstå problemer som at indsætte en numerisk værdi i en streng eller omvendt.

I alle ovenstående forespørgsler mangler så mange felter som Efternavn, Telefon, Byværdier. Så i sådanne tilfælde indsætter MySQL som standard NULL-værdier i de kolonner, som vi har springet over i forespørgslerne.

Indsættelse i en tabel fra en anden tabel

Hvis der er 2 lignende tabeller, og vi vil indsætte data fra tabel_1 til tabel_2 direkte for at undgå manuelt arbejde, kan vi også bruge en anden type INSERT-forespørgsel. I et sådant tilfælde er vi nødt til at bruge en SELECT-kommando med kommandoen INSERT. Grundlæggende kommer SELECT-kommandoen under DQL (Data Query Language), der bruges til hentning / hentning af data. Vælg-kommandoen kan også bruges med mange typer klausuler.

Den grundlæggende syntaks til indsættelse af poster til en tabel fra en anden er som følger:

INSERT INTO table_1 SELECT * FROM table_2;

Eksempel

Lad os se eksemplet nedenfor:

1. Bestillingstabel

Ordre nummerOrder_departmentKundenavnContact_noAntalPlacere
8465637MøbelPeter86598767661000Delhi
9473636DekorationerAlex9863769898800Mumbai

2. Order_archive-tabel

Ordre nummerOrder_departmentKundenavnContact_noAntalPlacere

Her har vi 2 tabeller kaldet Order og Order_archive. Hvis vi flytter alle poster fra Order-tabellen til Order_archive, kan følgende kode udføre opgaven:

INSERT INTO Order_archive SELECT * FROM Order;

Hvis vi vil flytte nogle specifikke kolonner fra Order-tabellen til Order_archive, så:

INSERT INTO Order_archive (Order_no, Order_department, Contact_no, Quantity)
SELECT Order_no, Order_department, Contact_no, Quantity FROM Order;

Konklusion

Indsæt kommando er meget nyttig, da det kommer til at spille fra tidspunktet for oprettelse af tabel til hver eneste gang, hver gang vi tilføjer flere poster til den eksisterende tabel. Vi kan sammenfatte følgende punkter fra denne artikel:

  • INSERT-kommando bruges til at tilføje nye data til tabellen.
  • Dato og strengværdi skal være i et enkelt tilbud.
  • Den numeriske værdi bør ikke være i anførselstegn.
  • Når du indsætter poster i specifikke kolonner, skal kolonnens navn og værdi kortlægges i samme rækkefølge.
  • Denne kommando kan også bruges til at indsætte poster fra en tabel til en anden tabel.

Anbefalede artikler

Dette er en guide til Indsæt i MySQL. Her diskuterer vi implementering af Indsæt kommando i MySQL sammen med passende eksempler og syntaks. Du kan også se på den følgende artikel.

  1. Hvad er MySQL-skema?
  2. MySQL strengfunktioner
  3. Hvad er MySQL?
  4. Sådan installeres MySQL
  5. Eksempler på implementering af INSERT i Oracle