13 Viktigste SQL-kommandoer Enhver programmerer bør vite
Databaser kjører den moderne nettsiden. Hver stor eller dynamisk nettside bruker en database på en måte, og når kombinert med Strukturert spørrespråk (SQL), mulighetene for å manipulere data er virkelig endeløse. Hvis du allerede kjenner SQL, må du sjekke disse programmeringsevnen. 7 Programmeringsferdigheter Alle nettstedsutviklere bør vite 7 programmeringsferdigheter. Alle nettstedsutviklere bør vite. Nettdesign og utvikling gir god lønn og fordeler, anstendig arbeidstid og utsiktene til fremskritt. Vi viser deg hvilke viktige ferdigheter du kan begynne å lære nå for å komme inn på dette spennende feltet. Les mer alle nettsider utviklere burde vite.
I dag vil jeg vise deg noen av kjernekommandoene du trenger å vite som programmerer.
Det er mange navn på data returnert fra en databasetabell. Data blir ofte referert til som rader, Records, eller tupler. Jeg bruker disse vilkårene utveksling gjennom denne artikkelen.
Forord
Alle eksemplene i dag vil være basert på fire fiktive tabeller. De kunde Tabellen inneholder navn og alder til kunder:
De høyder Tabellen inneholder navnet og høyden til enhver person:
De personale Tabellen inneholder navn og alder av medarbeidere - akkurat det samme som kundebordet:
Sluttbordet ringte mennesker inneholder navn og alder av mennesker, akkurat som kunden og stabstabellene:
1. Velg
De å velge erklæring er den enkleste, og det er viktig at du forstår det som det underbygger nesten alle de andre kommandoene. Det regnes som en god praksis å skrive dine reserverte SQL-ord i stor bokstav, da det gjør kommandoen lettere å lese og forstå.
Som navnet tilsier, er valgt brukt til å velge data fra en database. Her er den enkleste bruken:
VELG * FRA bordet;
Det er to deler til dette. Den første delen (Å VELGE *) angir hvilke kolonner du vil velge. Stjernen indikerer at du ønsker å velge alle kolonnene i tabellen. Den andre delen (FRA bordet) forteller databasemotoren din hvor du vil hente disse dataene fra. Erstatte “bord” med navnet på databasetabellen.
Denne velgeren er kjent som “velg stjerne.” Å bruke stjernen er en god måte å finne ut hvilke data som finnes i et bord, men jeg anbefaler ikke at du bruker den til noen produksjonskode. Når du bruker en valgt stjerne, er det opp til databasemotoren å presentere deg med de dataene du vil ha. Du har ingen kontroll over rekkefølgen dataene returneres, så hvis noen legger til en ny kolonne i tabellen, kan du finne at variablene i programmeringsspråket ikke lenger representerer de riktige dataene. Heldigvis er det en løsning.
Du kan eksplisitt angi hvilke kolonner du vil hente, slik:
SELECT alder, navn FRA folk;
Dette spørsmålet henter “alder” og “Navn” kolonner fra “mennesker” bord. Å være dette eksplisitt kan være litt kjedelig hvis du har mye data, men det vil redusere problemer i fremtiden, sammen med å gjøre SQL enklere å forstå av fremtidige programmerere.
Hvis du vil velge et ekstra stykke data, men det er ikke lagret i noen av tabellene dine, kan du gjøre det slik:
SELECT alder, '1234' fra folk;
En hvilken som helst streng innenfor enkelt anførselstegn vil bli returnert i stedet for å matche et kolonnens navn.
2. Hvor
Valgkommandoen er utmerket for å hente data, men hva om du ønsket å filtrere resultatene litt mer? Hva med å hente bare personer som har blå øyne? Hva med folk født i januar som jobber som mekanikere? Det er her hvor kommandoen kommer inn. Dette tillater deg å legge til vilkår for utvalget, og du legger det bare til slutten av setningen:
VELG alder, navn FRA personer hvor alder> 10;
Denne spørringen er nå begrenset til personer som er eldre enn 10 år. Du kan kombinere flere forhold ved hjelp av OG operatør:
SELECT alder, navn FRA personer hvor alder> 10 og alder < 20;
De OG kommando fungerer akkurat som det gjør på engelsk: det gjelder en annen betingelse for uttalelsen. I dette eksemplet vil dataene returneres være noen poster med en alder mellom 10 og 20. Da det ikke er matchende resultater, returneres ingen data.
En annen kommando som kan brukes i forbindelse med dette er ELLER. Her er et eksempel:
VELG alder, navn FRA personer hvor alder> 10 eller navn = 'joe';
Denne spørringen returnerer poster hvor alderen er mer enn 10, eller navnet er lik “Joe”. Legg merke til hvordan det er bare ett like tegn? De fleste programmeringsspråk bruker dobbelt likeverdig (==) for å sjekke om ekvivalens. Dette er ikke nødvendig for det store flertallet av databasemotorer (men det kan svært per miljø, så dobbeltsjekke først).
3. Bestilling
De rekkefølge Kommandoen brukes til å sortere resultatene som returneres. Det er en annen enkel å bruke. Bare legg det til slutten av erklæringen:
SELECT navn, alder FRA folk BESTILL BY alder DESC;
Du må spesifisere kolonnen og ordren, som kan være ASC for stigende eller DESC for nedstigning. Du kan bestille med flere kolonner som dette:
VELG navn, alder FRA folk BESTILL BY navn ASC, alder DESC
REKKEFØLGE ETTER er kanskje den mest nyttige når kombinert med andre kommandoer. Ikke alle forespørsler vil returnere data på en logisk eller bestilt måte - denne kommandoen lar deg endre det.
4. Bli med
De bli med kommandoen er vant til bli med relaterte data lagret i en eller flere tabeller. Du bli med den andre tabellen til den første tabellen, og angi hvordan dataene er koblet til. Her er et grunnleggende eksempel:
VELG alder, navn, høyde FRA folk LEFT JOIN høyder BRUKER (navn);
Det er noen ting som foregår her. Du må begynne med “VENSTRE BLI MED” syntaks, som spesifiserer at du vil bli med på et bord ved hjelp av en del av typen til venstre. Deretter angir du tabellen du ønsker å bli med (høyder). De BRUKER (navn) syntax sier at kolonnen “Navn” kan bli funnet i begge tabellene, og at dette skal brukes som en nøkkel til å delta i tabellene sammen.
Ikke bekymre deg hvis kolonnene dine har forskjellige navn i hver tabell. Du kan bruke “PÅ” i stedet for “VED HJELP AV”:
VELG alder, navn, høyde FRA folk LEFT JOIN høyder PÅ (namea = nameb);
På-setningen angir eksplisitt hvilke kolonner som skal tastes inn. Det er mange typer å bli med, og det vil ta lang tid å gå inn i detaljer for hver enkelt, så her er et raskt sammendrag av deres bruk:
- (INNER) BLI MED - Returnerer rader med en kamp i begge tabellene.
- VENSTRE (YTRE) GÅ MED - Returnerer alle rader fra venstre bord, med noen kamper fra høyre bord. Hvis det ikke er noen kamper, blir de venstre tabellene fortsatt returnert.
- HØYRE (YTRE) GÅ MED - Dette er motsatt av en venstre deltakelse: Alle rader fra høyre bord returneres, sammen med eventuelle kamper i venstre bord.
- FULL (YTRE) GÅ MED - Returnerer eventuelle poster med en kamp i hver tabell.
De “INDRE” eller “YTRE” syntaks er valgfritt. Det kan gjøre det lettere å forstå, men du trenger ikke å spesifisere det for det meste av tiden.
5. Alias
Nå vet du det grunnleggende, la oss se på alias kommando. Dette brukes til å omdøpe et bord midlertidig - mer med et kallenavn enn noe annet, siden dette nye navnet bare eksisterer i den enkelte transaksjonen du kjører. Slik bruker du det:
SELECT A.age FROM people A;
Du kan bruke gyldig navn du liker, men jeg liker å bruke bokstaver i alfabetet. Før hvert kolonnavn preges aliaset. Dette aliaset er tilordnet bordet umiddelbart etter at det er erklært. Dette er akkurat det samme som å gjøre dette:
Velg people.age fra folk;
I stedet for å skrive et langt tabellnavn, kan du skrive et enkelt og lett å huske brev - men hva er poenget? Vel, hvis du velger fra mer enn ett bord, er det lett å bli forvirret om hvilke kolonner som tilhører hvilket bord. Hvis begge tabellene dine har kolonner med samme navn, kan databasespørsmålet til og med mislykkes i å kjøre uten at det refereres til tabellnavnet eller aliaset. Her er et eksempel med to bord:
SELECT staff.age, staff.name, customers.age, customers.name FRA ansatte, kunder;
Og her er det samme spørsmålet med aliaser:
SELECT A.age, A.name, B.age, B.name FRA ansatte A, kunder B;
Persontabellen er gitt alias av “EN”, og kundens bord er gitt aliaset til “B”. Aliasing-tabeller hjelper virkelig å gjøre koden enklere å forstå, og reduserer mengden skriving du må gjøre.
Du kan også gi nytt navn til en kolonne med et alias ved hjelp av “SOM” kommando:
SELECT alder AS person_age FRA folk;
Når denne spørringen er kjørt, vil kolonnen nå bli kalt “person_age” i stedet for “alder”.
6. Union
Union er en god kommando. Det lar deg legge til rader til hverandre. Til forskjell fra å bli med som legger til tilsvarende kolonner, kan unionen legge til ikke-relaterte rader hvis de har samme nummer og navn på kolonner. Slik bruker du det:
SELECT alder, navn FRA kunder UNION SELECT alder, navn FRA ansatte;
Du kan tenke på forening som en måte å kombinere resultatene av to spørringer. En union vil bare returnere resultater der det er en unik rad mellom de to spørringene. Du kan bruke “UNION ALL” syntaks for å returnere alle dataene, uavhengig av duplikater:
SELECT alder, navn FRA kunder UNION ALL SELECT alder, navn FRA ansatte;
Legg merke til hvordan rekkefølgen på radene endres? Union opererer på den mest effektive måten, slik at de returnerte dataene kan variere i rekkefølge.
En mulig brukstilstand for union er en subtotal: Du kan forene en spørring av summen til en forespørsel av de enkelte totals for et bestemt scenario.
7. Sett inn
Du vet nå alt om å hente data fra en database, men hva med å sette inn den? Det er her sett inn kommandoen kommer inn. Her er et eksempel:
INSERT TIL personer (navn, alder) verdier ('Joe', 102);
Du må angi tabellnavn (personer), og kolonnene du vil bruke (navn og alder). De “VERDIER” Syntaxen brukes da til å angi verdiene som skal settes inn. Disse må være i samme rekkefølge som kolonnene som tidligere ble angitt.
Du kan ikke spesifisere en hvor klausul for innsettinger, og du må sørge for at du følger de nødvendige tabellbegrensningene som er til stede.
8. Oppdatering
Etter at du har lagt inn noen data, er det bare naturlig å måtte endre bestemte rader. Her er Oppdater kommandosyntaks:
OPPDATER folk SET navn = 'Joe', alder = 101;
Du må spesifisere tabellen du ønsker å endre, og bruk deretter “SETT” syntaks for å angi kolonnene og deres nye verdier. Dette eksemplet er bra, men det vil oppdatere hver eneste plate - noe som ikke alltid er ønskelig!
For å være mer spesifikk, kan du bruke “HVOR” klausuler akkurat som når du gjør et valg:
OPPDATER folk SET navn = 'Joe', alder = 101 HVOR navn = 'James';
Du kan selv angi flere forhold ved å bruke “OG” og “ELLER”:
OPPDATER folk SET navn = 'Joe', alder = 101 hvor (navn = 'james' og alder = 100) eller navn = 'ryan';
Legg merke til hvordan beslagene brukes til å begrense forholdene.
9. Upsert
Upsert er et merkelig lydende ord, men det er en utrolig nyttig kommando. Si at du har en begrensning på bordet ditt, og du har oppgitt at du bare vil ha poster med unike navn - du vil ikke lagre to rader med samme navn, for eksempel. Hvis du prøvde å sette inn flere verdier av 'Joe', ville databasemotoren kaste en feil og nekte å gjøre det (med rette). En UPSERT lar deg oppdatere en plate hvis den allerede eksisterer. Dette er utrolig nyttig! Uten denne kommandoen, må du skrive mye logikk for å først sjekke om det finnes en plate, sett inn hvis ikke, ellers hent den riktige primærnøkkelen og oppdater deretter.
Dessverre implementeres opsjoner forskjellig i ulike databasemotorer. PostgreSQL har bare nylig oppnådd denne muligheten, mens MySQL har hatt det en stund. Her er MySQL-syntaksen som referanse:
INSERT TIL MENNESKER (navn, alder) VÆRDIER ('Joe', 101) PÅ DUPLIKATE KEY UPDATE alder = 101;
Legg merke til hvordan dette egentlig er en oppdatering og en innsatserklæring, som kan oppsummeres som “oppdater hvis innsetting mislyktes.”
10. Slett
Slett brukes til å fjerne poster helt - det kan være ganske skadelig hvis det blir misbrukt! Den grunnleggende syntaksen er veldig enkel å bruke:
SLETT fra folk;
Som de fleste andre kommandoer slettes dette alt! Du må bruke en hvor å begrense den til et litt mer sant antall rader - ideelt sett ett:
SLETT FRA personer hvor navnet = 'joe';
Hvis du utvikler et system, er det ofte lurt å implementere en “myk sletting.” Du kjører aldri slette kommandoen, heller du lager en slettet kolonne, og deretter sjekker du kolonnen i valgene dine - det kan unngå mye potensial forlegenhet hvis du raskt og enkelt kan hente angivelig slettede poster. Dette er imidlertid ikke en erstatning for riktig sikkerhetskopiering.
11. Opprett tabell
De lage bord Kommandoen brukes til å lage tabeller. Det er en annen veldig enkel en:
CREATE TABLE personer (navn TEXT, alder, INTEGER, PRIMARY KEY (navn));
Legg merke til hvordan kolonne navn og begrensninger er inne parentes, og kolonnene er gitt en passende datatype. En primærnøkkel er spesifisert, som kreves i en hvilken som helst god databasedesign.
12. Endre tabell
De endre tabellen Kommandoen brukes til å endre strukturen til et bord. Dette er litt begrenset, da databasen ikke lar deg endre et bord hvis eksisterende data vil føre til konflikt - for eksempel endre en streng til et heltall. I slike tilfeller må du først fikse dataene, og deretter endre tabellen. Her er et eksempel:
ALTER TABLE people ADD høyde heltal;
Dette eksemplet legger til en kolonne som heter “høyde” av type heltall til folketabellen. Det er egentlig ikke en grense for hva du kan endre.
13. Drop Table
Den endelige kommandoen er slipp bordet. Tenk på dette som slett, men i stedet for å slette en enkelt post, fjerner den hver enkelt plate sammen med bordet! Slik bruker du det:
DROP TABLE people;
Det er ganske drastisk, og det er ingen grunn til at det må programmeres inn i systemet. Det bør bare utføres manuelt i de aller fleste tilfeller, og det kan være veldig destruktiv.
Det var alt for i dag. Jeg håper du har lært noen nyttige triks! Du kan lære å lage et nettsted Hvordan lage et nettsted: For nybegynnere Hvordan lage et nettsted: For nybegynnere I dag vil jeg veilede deg gjennom prosessen med å lage et komplett nettsted fra bunnen av. Ikke vær redd hvis dette høres vanskelig ut. Jeg vil lede deg gjennom det hvert skritt av veien. Les mer, og bruk deretter nyskapede ferdigheter for å gjøre det dynamisk - bare sørg for at du ikke gjør disse feilene 9 Feil du ikke bør gjøre når du bygger en webside 9 Feil du ikke bør gjøre når du bygger en webside Følgende følger HTML koding feil er enkle å lage, men hvis du leder dem av tidligere heller enn senere, vil siden din se bedre ut, være lettere å vedlikeholde og fungere som du vil. Les mer eller la det være sårbart for SQL-injeksjon Hva er en SQL-injeksjon? [MakeUseOf Forklarer] Hva er en SQL-injeksjon? [MakeUseOf Forklarer] Verden av Internett-sikkerhet er plaget av åpne porter, bakdører, sikkerhetshull, trojanere, ormer, brannmur sårbarheter og en rekke andre problemer som holder oss alle på tærne hver dag. For private brukere, ... Les mer. Hvis du ikke er sikker på at du må lære SQL, har du vurdert en statisk nettstedgenerator. 7 Grunner til å ditch ditt CMS og vurdere en statisk nettstedgenerator. 7 grunner til å ditch ditt CMS og vurdere en statisk nettstedgenerator. I mange år har du publisert et nettsted var vanskelig for mange brukere. CMS som WordPress endret det, men de kan fortsatt være forvirrende. Et annet alternativ er en statisk nettstedgenerator. Les mer ?
Hvorfor ikke legge igjen en kommentar nedenfor med dine favoritt SQL tips og triks?
Image Credits: HYS_NP / Shutterstock
Utforsk mer om: Programmering, SQL.