Introduksjon til Insert i MySQL

Hovedmålet med et databasesystem er å lagre data i tabeller. For å definere funksjonaliteten i databasen har vi forskjellige typer SQL-kommandoer. I dette emnet skal vi lære om Sett inn i MySQL.

SQL-kommandoer kan kategoriseres i følgende:

  • DDL (datadefinisjonsspråk)
  • DML (Datamanipuleringsspråk)
  • DQL (Språk for dataforespørsel)
  • DCL (Datakontrollspråk)
  • TCL (Transaksjonskontrollspråk)

Her i denne artikkelen skal vi fokusere hovedsakelig på DML. Som vi kan se navnet Data Manipulation språk, så når tabellen / databasen er opprettet, for å manipulere noe, trenger vi DML-kommandoer. Fordelene ved å bruke disse kommandoene er hvis vi skulle skje feil endringer, kan vi rulle tilbake / angre dem.

Følgende er kommandoene i DML:

1. INSERT: Brukes til å sette inn nye rader i tabellen.

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

2. SLETT: Brukes til å slette den ene raden eller hele postene i en tabell.

DELETE TABLE employee;

3. OPPDATERING: Brukes til å oppdatere eksisterende poster i en tabell.

UPDATE employee
SET col1 = new_col
WHERE condition;

Syntaks for Sett inn kommando i MySQL

Vi kan skrive INSERT INTO-setningen på følgende to måter.

Måte 1

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

Måte nr. 2

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

  • INSERT INTO table_name er kommandoen som legger til en ny rad i en tabell som heter `table_name` i MySQL-databasen.
  • (spalte_1, kolonne_2, …) er kolonnenavnene der en ny post blir lagt til.
  • VERDIER (verdi_1, verdi_2, …) spesifiserer verdiene som skal legges til i den nye raden.

Når vi legger til nye poster, må vi være forsiktige med de definerte datatypene mens vi oppretter strukturen i tabellen.

  • Streng: Alle strengverdiene skal være vedlagt enkelt sitater.
  • Numerisk: Numeriske verdier skal ikke legges inn verken i enkelt- eller dobbelt sitater.
  • Dato: Disse datatypene skal være i ett sitat med formatet 'ÅÅÅÅ-MM-DD'.

La oss vurdere at det er en 'ansatt'-tabell som består av følgende attributter:

Emp_id Emp_name telefon e-post Avdeling sjef By
1001Vinay9876543219CSRSudhirBangalore
1002Raaj9764527848DENStephenHyderabad
1003Sakti9567382784AutomotiveVedBhubaneswar

Hvis vi legger til verdier for alle kolonnene i en tabell, trenger vi ikke å spesifisere kolonnenavnene i spørringen, men vi må sørge for at vår nye post skal følge sekvensen til kolonnen som definert i tabellen.

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

Hvis vi ikke har alle verdiene til kolonner, og vi setter inn noen av dem, må vi spesifisere kolonnenavnene i spørringen.

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

Implementering av Sett inn kommando i MySQL

La oss vurdere at vi har følgende lister over nye poster som er nødvendige for å legge til i STUDENT databasetabellen.

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

Vi vil sette inn disse radene en etter en i databasen.

  • La oss starte med Sandeep. Her er 'Roll_no', 'Standard', 'Phone' og 'Procentage' numeriske felt, så verdier i denne kolonnen blir satt inn uten anførselstegn.

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

Merk: Ettersom vi har verdier for alle kolonnene i studenttabellen, trenger vi ikke å spesifisere kolonnenavnet mens vi bruker INSERT-kommandoen. Men vi må sørge for at verdien vår skal følge rekkefølgen på kolonner i tabellen.

  • Når det gjelder Shyam-posten, kan vi se at mange verdier mangler. Så her må vi spesifisere kolonnenavn, der vi vil sette inn verdiene.

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

Merk: I denne posten har vi ikke verdiene for hver kolonne. Det er grunnen til at vi må spesifisere alle kolonnenavnene vi vil sette inn verdiene våre i, og i rekkefølgen på disse kolonnenavnene, må vi også nevne verdier.

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

Endring av rekkefølgen på kolonnene og verdien vil ikke ha noen innvirkning på INSERT-spørringen, da den riktige verdien ikke kan kartlegges til høyre kolonne. Dermed kan det oppstå problemer som å sette en numerisk verdi i en streng eller omvendt.

I alle ovennevnte spørsmål mangler det så mange felt som Etternavn, Telefon, Byverdier. Så i slike tilfeller vil MySQL sette inn som standard NULL-verdier i de kolonnene som vi har hoppet over i spørsmålene.

Sette inn i et bord fra et annet bord

Hvis det er to lignende tabeller, og vi vil sette inn data fra tabell_1 til tabell_2 direkte for å unngå manuelt arbeid, kan vi også bruke en annen type INSERT-spørring. I et slikt tilfelle må vi bruke en SELECT-kommando med INSERT-kommandoen. I utgangspunktet kommer SELECT-kommandoen under DQL (Data Query Language), som brukes til å hente / hente data. Velg-kommandoen kan også brukes med mange typer klausuler.

Den grunnleggende syntaks for å sette inn poster til en tabell fra en annen er som følger:

INSERT INTO table_1 SELECT * FROM table_2;

Eksempel

La oss se eksemplet gitt nedenfor:

1. Bestill tabell

Best.nrOrder_departmentKundenavnKontaktnummerMengdePlass
8465637MøblerPeter86598767661000Delhi
9473636ornamenterAlex9863769898800Mumbai

2. Order_archive Table

Best.nrOrder_departmentKundenavnKontaktnummerMengdePlass

Her har vi 2 tabeller som heter Order and Order_archive. Hvis vi vil flytte alle poster fra Order-tabellen til Order_archive, kan følgende kode utføre oppgaven:

INSERT INTO Order_archive SELECT * FROM Order;

Hvis vi vil flytte noen spesifikke 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;

Konklusjon

Sett inn kommando er veldig nyttig, da det kommer til å spille fra tidspunktet for opprettelse av tabeller til hver eneste gang hver gang vi legger til flere poster til den eksisterende tabellen. Vi kan oppsummere følgende punkter fra denne artikkelen:

  • INSERT-kommando brukes til å legge til nye data i tabellen.
  • Dato og strengverdi skal være i et enkelt sitat.
  • Den numeriske verdien skal ikke være i anførselstegn.
  • Når du setter inn poster i spesifikke kolonner, skal kolonnens navn og verdi kartlegges i samme rekkefølge.
  • Denne kommandoen kan også brukes til å sette inn poster fra en tabell til en annen tabell.

Anbefalte artikler

Dette er en guide til Sett inn i MySQL. Her diskuterer vi Implementering av Sett inn kommando i MySQL sammen med passende eksempler og syntaks. Du kan også se på den følgende artikkelen.

  1. Hva er MySQL-skjema?
  2. MySQL String-funksjoner
  3. Hva er MySQL?
  4. Hvordan installere MySQL
  5. Eksempler på Implement INSERT i Oracle