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 |
1001 | Vinay | 9876543219 | CSR | Sudhir | Bangalore | |
1002 | Raaj | 9764527848 | DEN | Stephen | Hyderabad | |
1003 | Sakti | 9567382784 | Automotive | Ved | Bhubaneswar |
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_no | Fornavn | Etternavn | Standard | telefon | Prosentdel | By |
1 | Sandeep | Kumar | 10 | 9876456726 | 89, 33 | Cuttack |
2 | Shyam | 9 | 76 | Bhubaneswar | ||
3 | Sakti | Naik | 6463765776 | 76 | ||
4 | Sid | 8 | 9864876986 | Kolkata | ||
5 | Vinay | Kumar | 10 | 92 |
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.nr | Order_department | Kundenavn | Kontaktnummer | Mengde | Plass |
8465637 | Møbler | Peter | 8659876766 | 1000 | Delhi |
9473636 | ornamenter | Alex | 9863769898 | 800 | Mumbai |
2. Order_archive Table
Best.nr | Order_department | Kundenavn | Kontaktnummer | Mengde | Plass |
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.
- Hva er MySQL-skjema?
- MySQL String-funksjoner
- Hva er MySQL?
- Hvordan installere MySQL
- Eksempler på Implement INSERT i Oracle