Komplett guide og detaljerte eksempler på SQL-kommandoer: Fra grunnleggende til avanserte spørringer

Siste oppdatering: 16/06/2025
Forfatter: Isaac
  • Oppdag kommandoer Essensiell SQL og praktiske eksempler for spørring, administrasjon og sikkerhet i databaser.
  • Lær hvordan du bruker SELECT, WHERE, JOIN, GROUP BY, aggregerte funksjoner og visninger, ved hjelp av syntaks og brukstilfeller fra den virkelige verden.
  • Meet Triks avansert, tillatelsesadministrasjon og vanlige spørsmål for å mestre SQL i profesjonelle miljøer.

SQL-kommandoer i databaser

Det strukturerte spørrespråket (SQL) er et av de verktøyene som, når du først mestrer det, blir din beste allierte for å samhandle med enhver relasjonsdatabase. Hvis du noen gang har lurt på hvordan du enkelt og effektivt kan få tilgang til, endre, slette eller analysere store datamengder, er SQL svaret du har lett etter. Lær å bruke SQL-kommandoer riktig markerer forskjellen mellom å være en grunnleggende bruker og å bli en ekte ekspert på datahåndtering og -analyse.

I denne artikkelen gir jeg deg en omfattende samling av de viktigste SQL-kommandoene ledsaget av klare forklaringer og praktiske eksempler, som dekker alt fra det grunnleggende til mer avanserte spørringer. Jeg vil også vise deg triks og detaljer som ofte går ubemerket hen i mer overfladiske artikler, slik at du kan få mest mulig ut av databasene dine, enten du akkurat har begynt eller ønsker å forbedre kunnskapen din. Gjør deg klar til å dykke ned i SQL-universet og oppdag hvordan dette språket kan forvandle måten du jobber med informasjon på.

Hva er SQL, og hvorfor er det fortsatt viktig?

SQL, eller Structured Query Language, er et spørrespråk programmering Spesielt utviklet for å administrere og manipulere relasjonsdatabaser. Selv om den ble utviklet på 70-tallet, er den fortsatt standardløsningen for kommunikasjon med databaser som MySQL, PostgreSQL, SQL Server, MariaDB og Oracle Database, blant andre.

Årsaken til dens lange levetid er enkel: SQL tillater alt fra grunnleggende oppgaver som å spørre data til avanserte operasjoner som å koble sammen komplekse tabeller, opprette strukturer, oppdatere poster i bulk eller definere tillatelser.I tillegg er syntaksen enkel nok til at alle raskt kan bli kjent med den, men likevel kraftig nok til å løse komplekse forretningsproblemer.

Fagfolk på tvers av et bredt spekter av felt – fra utviklere, analytikere og databaseadministratorer til dataforskere – er avhengige av SQL for å behandle, rense og analysere kritiske data for sine prosjekter og organisasjoner.

SQL-kommandokategorier: DQL, DML, DDL og DCL

Før vi går inn på eksemplene, er det verdt å huske at SQL-kommandoer kan grupperes i forskjellige kategorier i henhold til funksjonen deres:

  • DQL (Data Query Language): Dette er setningene for å spørre data, for eksempel VELG.
  • DML (Data Manipulation Language): De manipulerer poster med kommandoer som INSERT, OPPDATERING y SLETT.
  • DDL (Data Definition Language): De administrerer strukturen i databasen, for eksempel SKAPE, ENDRE, DROP y TRUNKER.
  • DCL (Data Control Language): De kontrollerer tillatelser og tilgang ved hjelp av STIPEND y TILBAKE.

Hver kommandotype har en viktig funksjon i den daglige databaseadministrasjonen. Det er viktig å vite hvilken kommando som skal brukes i hver situasjon for å unngå feil eller til og med katastrofer i dataadministrasjonen.

Hoved SQL-kommandoer: Grunnleggende og praktiske eksempler

Å mestre grunnleggende SQL-kommandoer åpner døren for så å si alle databehandlings- eller analyseoppgaver. Nedenfor vil jeg forklare de mest relevante, hvordan de fungerer og gi brukseksempler som hjelper deg å lære dem.

VELG: Kongen av spørringer

Kommandoen VELG Det er fundamentet som de fleste operasjoner i SQL er bygget på. Det lar deg hente data lagret i én eller flere tabeller.

Generell syntaks:

VELG kolonne1, kolonne2, ... FRA tabellnavn;

For å få alle kolonnene i en tabell, bruk ganske enkelt stjernen:

VELG * FRA ansatte;

Hvis du vil filtrere spesifikke data, kan du legge til betingelser:

VELG navn, alder FRA ansatte HVOR alder > 30;

Takk til VELG Du kan hente alt fra en enkelt verdi til komplekse datasett, bruke aggregerte funksjoner, beregne avledede kolonner og klargjøre data for rapporter eller visualiseringer.

  Hva er Recuva Bruker, funksjoner, meninger, priser

HVOR: Filtrering av resultater presist

Klausulen HVOR Den lar deg spesifisere betingelser for å velge bare de radene som oppfyller visse kriterier. Det er et grunnleggende filter for enhver spørring.

Grunnleggende syntaks:

VELG * FRA produkter HVOR pris < 100;

Du kan kombinere betingelser ved hjelp av logiske operatorer som OG, OR y IKKE, samt sammenligningsoperatorer (=, <, >, <=, >=, <>).

For eksempel, for å rekruttere selgere under 30 år:

VELG * FRA ansatte HVOR avdeling = 'Salg' OG alder < 30;

Eksempler på SQL-spørringer

INNSETT: Legge til nye poster

med INSERT Du kan legge til nye rader i en tabell. Dette er viktig for å forsyne databasene dine med ny informasjon.

Generell syntaks:

SETT INN I produkter (navn, pris) VERDIER ('Tastatur', 29.99);

Hvis du vil legge til flere poster i én spørring, kan du også gjøre det:

SETT INN I produkter (navn, pris) VERDIER ('Mus', 15.50), ('Skjerm', 120.00);

Husk at hvis du utelater kolonnelisten, må du oppgi en verdi for hvert felt i tabellen, og respektere rekkefølgen.

OPPDATERING: Endring av eksisterende data

Kommandoen OPPDATERING Lar deg endre verdien til ett eller flere felt i poster som oppfyller en bestemt betingelse. Dette er nyttig for å rette feil eller oppdatere informasjon.

Syntaks:

OPPDATERING ansatte SET lønn = lønn * 1.05 HVOR avdeling = 'Markedsføring';

I dette eksemplet vil alle markedsføringsansatte se lønnen sin øke med 5 %. Dette er avgjørende. bruk WHERE når du oppdaterer, med mindre du virkelig vil endre hele tabellen.

SLETT: Sletter data

For å slette poster, bruk SLETT ved siden av en betingelse, og dermed unngår du å slette alle data fra tabellen ved et uhell.

Eksempel:

SLETT FRA produkter HVOR id_producto = 10;

Hvis du utelater WHERE-klausulen, vil alle radene i tabellen bli slettet. Forsiktig!

SORTER ETTER: Organiserer resultater

Klausulen REKKEFØLGE ETTER brukes til å sortere resultatene av en spørring i henhold til én eller flere kolonner. Som standard vil rekkefølgen være stigende, men du kan angi ASC o DESC som du trenger.

VELG * FRA ansatte SORTER ETTER lønn BESKRIVELSE;

Du kan kombinere flere kolonner i sorteringen:

VELG * FRA produkter BESTILL ETTER kategori ASC, pris DESC;

GROUP BY og aggregerte funksjoner: SUM, AVG, MIN, MAX, COUNT

GRUPPE AV lar deg gruppere resultater i henhold til én eller flere kolonner, noe som er veldig nyttig i forbindelse med funksjoner som SUM() (addisjon), AVG () (gjennomsnittlig), MIN (minimum), MAX (maksimum) og COUNT (telling).

For eksempel, for å vite hvor mange produkter som finnes i hver kategori:

VELG kategori, ANTALL(*) FRA produkter GRUPPÉR ETTER kategori;

Eller for å beregne den totale regningen for hver kunde:

SELECT kunde_id, SUM(beløp) FROM salg GROUP BY kunde_id;

Du kan filtrere de resulterende gruppene ved hjelp av klausulen HAR:

VELG avdeling, GJENNOMSNITT(lønn) FRA ansatte GRUPPÉR ETTER avdeling SOM HAR GJENNOMSNITT(lønn) > 2000;

LIMIT og OFFSET: Begrense antall resultater

Når tabellene dine har tusenvis av poster, BEGRENSE Det er viktig å bare vise en del av resultatene, noe som forbedrer ytelse og lesbarhet.

VELG * FRA produkter GRENSE 10;

med OFFSET Du kan hoppe over en rekke rader, noe som er nyttig for paginering:

VELG * FRA produkter GRENSE 10 FORSKYVNING 20;

MELLOM, I og LIKE: Avanserte HVOR-betingelser

Disse nøkkelordene utvider filtreringsmulighetene:

  • MELLOM: Velg verdier innenfor et område.
    VELG * FRA ansatte HVOR lønn MELLOM 1000 OG 3000;
  • IN: Søk etter flere verdier.
    VELG * FRA produkter HVOR kategori IN ('Datamaskiner', 'Elektronikk');
  • SOM: Se etter mønstre i teksten.
    VELG * FRA kunder HVOR navn SOM 'A%';

Jokertegn kan også brukes, for eksempel % (et hvilket som helst antall tegn) og _ (et enkelt tegn) for å tilpasse søk ytterligere med LIKE.

JOIN: Kryssing av informasjon mellom tabeller

En av SQLs store egenskaper er muligheten til å kombinere data fra forskjellige tabeller ved hjelp av BLI. De vanligste er:

  • INDRE BLITT: Returnerer samsvarende rader i begge tabellene.
  • VENSTRE BLI MED: Returnerer alle rader fra venstre tabell og eventuelle treff fra høyre (fylles ut med NULL hvis det ikke er noen treff).
  • HØYRE BLI MED: Returnerer alle rader fra den høyre tabellen og samsvarende rader fra venstre.
  • FULL YTRE BETINGELSE: Returnerer alle rader fra begge tabellene (fylt med NULL der det ikke er noen treff).
  Slik oppretter du en Access-database som lagrer stier eller vedlegg

Eksempel på INNER JOIN:

SELECT ordres.id, customers.name FROM orders INNER JOIN customers ON orders.customer_id = customers.id;

VENSTRE BLI MED:

SELECT ansatte.navn, salg.beløp FROM ansatte LEFT JOIN salg ON ansatte.id = salg.ansatt_id;

ENDRE, OPPRETT og SLIPPE: Endre databasestrukturen

I tillegg til å manipulere data, lar SQL deg definere og endre strukturen til tabeller og andre databaseobjekter:

  • SKAPE: For å opprette nye objekter (tabeller, visninger, indekser, brukere…).
    OPPRETT TABELL produkter (id INT PRIMARY KEY, navn VARCHAR(100), pris DECIMAL(8,2));
  • ENDRE: Å endre strukturen til et eksisterende objekt.
    ALTER TABLE-produkter LEGG TIL beskrivelse VARCHAR(255);
    ALTER TABLE-produkter ALTER COLUMN price SET NOT NULL;
  • MISTE: For å slette objekter fra databasen.
    DROP TABLE-produkter;
    DROP BRUKER eksempel_bruker CASCADE;

Visninger (VIEW): Gjenbrukbare spørringer og avansert filtrering

Las visninger De er virtuelle objekter som representerer en lagret spørring. De fungerer som en tabell, men de lagrer ikke data; de peker bare på informasjon i andre tabeller. De er nyttige for å forenkle komplekse spørringer, sentralisere filtre og legge til rette for tilgang til spesifikk informasjon.

OPPRETT VISNING aktive_ansatte AS SELECT * FROM ansatte WHERE aktiv = 1;

Du kan spørre visningen akkurat som en tabell:

VELG * FRA aktive_ansatte;

Visninger er ideelle for å administrere tillatelser og bare vise relevante data til bestemte brukere.

Aggregerte funksjoner og beregninger på kolonner

SQL lar deg jobbe med aggregerte funksjoner og aritmetiske operatorer for å utføre beregninger på dataene:

  • SUM(): Totalsum av en kolonne.
  • AVG(): Aritmetisk gjennomsnitt.
  • MIN() og MAX(): Minimum og maksimum.
  • TELLE(): Antall poster.

Hvis du for eksempel vil ha antall ansatte per avdeling:

VELG avdeling, ANTAL(*) FRA ansatte GROUP BY avdeling;

Eller den høyeste lønnen per avdeling:

VELG avdeling, MAX(lønn) FRA ansatte GROUP BY avdeling;

Du kan til og med opprette beregnede kolonner direkte i spørringen:

VELG navn, lønn * 0.95 AS netto_lønn FRA ansatte;

Bruk av aliaser (AS) for tabeller og kolonner

I spørringer kan du tilordne midlertidige navn til kolonner og tabeller ved hjelp av kommandoen ASDette gjør det enklere å lese resultatene og skrive komplekse spørringer.

For eksempel:

SELECT e.navn AS ansatt, d.navn AS avdeling FROM ansatte AS e JOIN avdelinger AS d ON e.avdelings_id = d.id;

På denne måten vil resultatet vise kolonner med egendefinerte navn. Bruk av alias er spesielt nyttig når du utfører JOIN-er eller når kolonner har lange eller ikke-beskrivende navn.

Eksempler på avanserte SQL-spørringer: Løs virkelige tilfeller

For å bli selvstendig i SQL, må du møte reelle utfordringer. Her er noen tips: utvidede eksempler hentet fra praktiske tilfeller som bidrar til å konsolidere kunnskap.

Spør etter alle ansatte i en avdeling og deres totale salg

SELECT e.id, e.navn, SUM(v.beløp) AS total_sales FROM employees e JOIN sales v ON e.id = v.employee_id WHERE e.avdeling = 'Salg' GROUP BY e.id, e.navn;

Dette eksemplet viser hvordan du kobler sammen tabeller, bruker aggregeringsfunksjoner og filtrerer resultater.

Beregning av gjennomsnitts- og maksimallønn per avdeling

VELG avdeling, GJENNOMSNITT(lønn) AS gjennomsnittslønn, MAX(lønn) AS maksimumslønn FROM ansatte GROUP BY avdeling;

På denne måten kan du analysere lønnsfordelingen og identifisere ulikheter eller områder med større insentiver.

Tell produkter etter prisklasse ved hjelp av CASE

VELG CASE NÅR pris < 50 SÅ 'Billig' NÅR pris < 150 SÅ 'Middels' ELLERS 'Dyrt' END AS price_range, COUNT(*) AS quantity FROM products GROUP BY price_range;

Bruk CASE lar deg opprette egendefinerte kategorier i spørringen.

Eksempelspørring for å finne dupliserte poster

VELG navn, ANTAL(*) FRA kunder GROUP BY navn HAVING ANTAL(*) > 1;

Dette hjelper deg med å holde databasen din ren og fri for overflødige data.

Identifiser den n-te høyeste lønnen (underspørringer)

VELG TOP 1-lønn FRA (VELG TYDELIG TOP N-lønn FRA ansatte SORTER ETTER lønn BESKRIVELSE) SORTER ETTER lønn ASC;

Perfekt for å svare på spørsmål i tekniske intervjuer eller produsere avanserte rapporter.

  Koble til Access ved hjelp av System.Data.OleDb i PowerShell

Slett gamle poster automatisk

SLETT FRA logger HVOR dato < NÅ() - INTERVALL 6 MÅNEDER;

Ideell for produksjonsdatabaser der du trenger å kontrollere tabellstørrelser.

Nyttige tips og triks i SQL

Å mestre SQL betyr ikke bare å vite hvordan man skriver grunnleggende spørringer. Her er noen Tips for å få mest mulig ut av språket:

  • Bruk alltid WHERE i UPDATE og DELETE for å forhindre utilsiktede masseendringer eller slettinger.
  • Sett indekser på de mest konsulterte kolonnene for å få fart på søk og sammenføyninger.
  • Foretrekk eksplisitte JOIN-er fremfor WHERE for å koble tabeller: forenkler vedlikehold og lesbarhet.
  • Bruk aggregeringsfunksjoner og GROUP BY for automatisk rapportering og analyse uten å være avhengig av eksterne regneark.
  • Test på en testdatabase før man foretar større endringer.
  • Kontroller tillatelser med GRANT og REVOKE for å sikre sikkerheten til dine data.
  • Dra nytte av utsikten (UTSIKT) for å forenkle tilgangen til kompleks informasjon og sentralisere forretningslogikk.
  • Ikke overbruk SELECT *, da du kan hente inn mer data enn nødvendig og gjøre systemet tregere.
  • Kommenter komplekse spørringer for å legge til rette for fremtidig vedlikehold.

Ofte stilte spørsmål om SQL-kommandoer i intervjuer og praktiske tilfeller

Å mestre SQL er viktig for å utmerke seg i tekniske intervjuer og løse hverdagsproblemer. Her er noen typiske spørsmål og svar som kan hjelpe deg med forberedelsene:

  • Hva er en INNER JOIN?
    Dette er standardkoblingen i SQL; den returnerer rader som samsvarer med begge tabellene. Eksempel:

    VELG * FRA EN INDRE JOIN B PÅ A.id = B.a_id;
  • Hva brukes LEFT JOIN til?
    Returnerer alle rader fra venstre tabell og eventuelle treff fra høyre tabell. Eksempel:

    VELG * FRA ansatte VENSTRE BLI MED i salg PÅ ansatte.id = salg.ansatt_id;
  • Hva er forskjellen mellom DROP og DELETE?
    SLETT sletter rader fra en tabell, mens DROP fjerner objektet (tabell, visning, bruker) fullstendig fra databasen.
  • Kan man rulle tilbake etter en ALTER?
    Nei, fordi ALTER er DDL og mange systemer commit automatisk. Det er viktig å forsikre seg om det før du bruker det.
  • Hva er pseudokolonner?
    De er virtuelle kolonner generert av systemet, for eksempel ROWID, USER eller CURRVAL i Oracle.
  • Hvordan lage en visning?
    OPPRETT VISNING view_employees AS SELECT navn, lønn FRA ansatte;
  • Hvordan gi tillatelser?
    GI SELECT PÅ inventar TIL ana, rita;
  • Hvordan sletter man en bruker sammen med dataene deres?
    DROP BRUKER bruker CASCADE;

Regulære uttrykk og spesielle operatorer i SQL

En mindre kjent, men svært kraftig del av SQL er muligheten til å søke etter mønstre ved hjelp av regulære uttrykk og avanserte operatorer. For eksempel:

  • %: Representerer en hvilken som helst streng av en hvilken som helst lengde (brukt i LIKE).
  • _ : Representerer et enkelt tegn (også i LIKE).
  • | : Vekslemåte, å se etter det ene eller det andre.
  • *: Gjentakelse av et tegn null eller flere ganger.

Avansert administrasjon: Roller, tillatelser og sikkerhet

Å administrere en database er ikke begrenset til å spørre og endre data. Det er avgjørende å kontrollere hvem som kan få tilgang til, endre eller slette informasjon ved hjelp av kommandoer som STIPEND, TILBAKE, eller avansert styring av ROLLER:

OPPRETT ROLLE-manager;
GJELDER VALG, INNSETT, OPPDATERING OM ansatte TIL leder;
TILSKUDDSANVISNING TIL Juan, Maria;

På denne måten kan du sentralisere sikkerheten og legge til rette for tillatelsesadministrasjon i store miljøer. Hvis du vil dykke dypere ned i tillatelsesadministrasjon, kan du sjekke ut artikkelen vår om automatisering og administrasjon.

Hva er .ETL-filer i Windows 2?
Relatert artikkel:
.etl-filer i Windows: Hva de er, hva de brukes til, og hvordan analysere dem