Hva er SQL? Fullstendig veiledning for skjema og grunnleggende

โšก Smart oppsummering

Hva er SQL? Structured Query Language er standardsprรฅket for arbeid med relasjonsdatabaser. Det lar deg opprette skjemaer, spรธrre poster, oppdatere rader, administrere tillatelser og koble moderne applikasjoner til sรธkemotorer som PostgreSQL, MySQL, og SQL Server.

  • ๐Ÿ“˜ Definisjon: SQL stรฅr for Structured Query Language, en ANSI- og ISO-standard som brukes til รฅ definere, spรธrre og kontrollere data i en relasjonsdatabase.
  • ๐Ÿงฉ Utsagnstyper: DDL-, DML-, DCL-, TCL- og DQL-gruppekommandoer som CREATE, INSERT, UPDATE, DELETE, SELECT og DROP.
  • ๐Ÿ›๏ธ Standard: ANSI SQL:2023 la til innebygd JSON-stรธtte og PostgreSQL-style standard egenskapsgrafspรธrringer (SQL/PGQ).
  • โš™๏ธ Motorer: PostgreSQL 17, MySQL 8, Oracle 23ai og SQL Server 2022 implementerer alle store deler av den moderne SQL-standarden.
  • ๐Ÿ†š SQL vs. NoSQL: SQL hรฅndhever skjemaer, sammenfรธyninger og ACID-transaksjoner, mens NoSQL handler med streng struktur for horisontal skala og fleksible dokumenter.
  • ๐Ÿค– AI-vinkel: Tekst-til-SQL-assistenter som GitHub Copilot og Vanna AI oversetter nรฅ spรธrsmรฅl pรฅ vanlig engelsk til kjรธrbare SQL-spรธrringer.

Hva er SQL?

Hva er SQL?

SQL er standardsprรฅket for arbeid med relasjonsdatabaser. Det brukes til รฅ sette inn, sรธke i, oppdatere og slette poster, og det kan ogsรฅ optimalisere og vedlikeholde databaser. SQL er en ANSI- og ISO-standard, sรฅ den samme kjernesyntaksen kjรธrer pรฅ tvers av motorer som PostgreSQL, MySQL, Oracle, og SQL Server.

SQL Full Form

SQL stรฅr for Strukturert spรธrresprรฅk, uttales som ยซSQLยป eller ยซSee-Quelยป. IBM utviklet den pรฅ 1970-tallet, og relasjonsdatabaser som MySQL, Oracle Database, Microsoft SQL Server, PostgreSQLog SAP Sybase bruker ANSI SQL som grunnlag.

Hvordan bruke SQL

Du utsteder SQL ved รฅ skrive en setning som navngir operasjonen, mรฅltabellen og eventuelle filterbetingelser. En SELECT-spรธrring som returnerer medlemmer eldre enn 30 ser slik ut:

SELECT * FROM Members WHERE Age > 30;

Syntaksen pรฅ tvers av databaser er stort sett lik fordi alle stรธrre motorer implementerer ANSI-standarden. Noen fรฅ RDBMS-produkter legger til proprietรฆre dialekter, for eksempel T-SQL i SQL Server og PL/SQL i Oracle.

Klikk her. hvis videoen ikke er tilgjengelig

Hva brukes SQL til?

Her er de viktigste grunnene til รฅ bruke SQL:

  • Det hjelper brukere med รฅ fรฅ tilgang til data i RDBMS system.
  • Det hjelper deg med รฅ beskrive dataene.
  • Den lar deg definere dataene i en database og manipulere de spesifikke dataene.
  • Ved hjelp av SQL kan du opprette og slippe databaser og tabeller.
  • Med SQL kan du bruke funksjoner i en database, opprette en visning og skrive lagrede prosedyrer.
  • Du kan angi tillatelser for tabeller, prosedyrer og visninger.
  • SQL stรธtter analytiske oppgaver som rapportering, forretningsintelligens og datamating til maskinlรฆringsrรธrledninger.

En kort historie om SQL

Her er viktige landemerker fra historien til SQL:

  • 1970 โ€“ Dr. Edgar F. "Ted" Codd beskrev en relasjonsmodell for databaser.
  • 1974 โ€“ Strukturert spรธrresprรฅk dukket opp pรฅ IBM Forskning.
  • 1978 - IBM utgitt System/R.
  • 1986 โ€“ ANSI standardiserte SQL som SQL-86.
  • 1989 โ€“ Den fรธrste kommersielle versjonen av SQL-standarden ble publisert.
  • 1999 โ€“ SQL:1999 la til utlรธsere og objektorienterte funksjoner.
  • SQL:2003 โ€“ Vindusfunksjoner og XML-funksjoner.
  • SQL:2006 โ€“ Stรธtte for XML-spรธrresprรฅk.
  • SQL:2011 โ€“ Stรธtte for midlertidig database.
  • SQL:2016 โ€“ JSON, gjenkjenning av radmรธnster, polymorfe tabellfunksjoner.
  • SQL:2023 โ€“ Egenskapsgrafspรธrringer (SQL/PGQ) og strammere JSON-hรฅndtering.

Typer SQL-setninger

Her er fem typer mye brukte SQL-setninger:

  • Datadefinisjonssprรฅk (DDL)
  • Datamanipulasjonssprรฅk (DML)
  • Datakontrollsprรฅk (DCL)
  • Transaksjonskontrollsprรฅk (TCL)
  • Data Query Language (DQL)

Liste over SQL-kommandoer

Her er en liste over noen av de mest brukte SQL-kommandoer:

  • SKAPE โ€“ definerer databasestrukturen eller skjemaet.
  • INSERT โ€“ setter inn data i radene i en tabell.
  • OPPDATERING โ€“ oppdaterer eksisterende data i en database.
  • SLETT โ€“ fjerner รฉn eller flere rader fra en tabell.
  • VELG โ€“ velger attributtene som samsvarer med betingelsen beskrevet av WHERE-klausulen.
  • DROP โ€“ fjerner tabeller og databaser.
  • SLร… SAMMEN โ€“ utfรธrer en INSERT- eller UPDATE-setning i en enkelt setning basert pรฅ en samsvarsbetingelse.

SQL-prosess

Nรฅr du utfรธrer en SQL-kommando, analyserer databasemotoren setningen, velger en utfรธrelsesplan og kjรธrer den mot lagringslaget.

Viktige komponenter i denne prosessen er:

  • SQL spรธrremotor
  • Optimaliseringsmotor
  • Forespรธrselssender
  • Klassisk spรธrremotor

Den klassiske spรธrremotoren hรฅndterer ikke-SQL-spรธrringer, mens SQL-spรธrremotoren behandler den strukturerte arbeidsmengden.

SQL-prosess
SQL-prosess

SQL-standarder

SQL dekker oppretting, sletting, henting og endring av rader i databaser, samt tilgangskontroll. Det er en ANSI- og ISO-standard (American National Standards Institute), og den nรฅvรฆrende utgaven er ISO / IEC 9075: 2023, ofte kalt SQL:2023. Standarden er delt inn i flere deler:

Del Tekniske beskrivelser
Del 1 โ€“ SQL/Framework Tilbyr de logiske konseptene som ligger til grunn for alle andre deler.
Del 2 โ€“ SQL/Foundation Definerer den sentrale syntaksen og semantikken til SQL.
Del 3 โ€“ SQL/CLI Angir grensesnittet pรฅ anropsnivรฅ som brukes av ODBC og lignende drivere.
Del 4 โ€“ Vedvarende lagrede moduler Lagrede rutiner, eksterne rutiner og prosessuelle sprรฅkutvidelser til SQL.
Del 9 โ€“ Hรฅndtering av eksterne data Legger til syntaks og definisjoner som tillater SQL tilgang til ikke-SQL-datakilder, for eksempel filer.
Del 10 โ€“ Objektsprรฅkbindinger Angir syntaksen og semantikken for innebygging av SQL i Java.
Del 11 โ€“ SQL/Skjema Informasjons- og definisjonsskjemaer.
Del 13 โ€“ SQL/JRT SQL-rutiner og -typer som bruker Java programmeringssprรฅk.
Del 14 โ€“ SQL/XML SQL og XML, inkludert XMLTYPE- og XQuery-integrasjonen.
Del 15 โ€“ SQL/MDA Gir SQL-stรธtte for flerdimensjonale arrayer.
Del 16 โ€“ SQL/PGQ Lagt til i SQL:2023 for รฅ definere egenskapsgrafspรธrringer oppรฅ relasjonstabeller.

Moderne SQL-motorer

Hver motor implementerer mesteparten av ANSI-kjernen og legger til sine egne utvidelser:

  • PostgreSQL 17: ร…pen kildekode med strenge standarder og rik JSON-stรธtte.
  • MySQL 8: Populรฆr blant webapper; stรธtter vindusfunksjoner, CTE-er og en dokumentlagringsmodus.
  • Microsoft SQL Server 2022: Bedriftsmotor med spรธrreintelligens og Azure Synapsespeiling.
  • Oracle Database 23ai: Kombinerer SQL med vektorsรธk og JSON-relasjonelle dualitetsvisninger.
  • SQLite: Lett filbasert motor innebygd i mobilapper og nettlesere.

Skylagre som f.eks. Amazon rรธdforskyvning, Google BigQuery og Snowflake eksponerer ogsรฅ ANSI SQL-dialekter, noe som gjรธr sprรฅket portabelt fra en bรฆrbar PC til analyser i petabyte-skala.

SQL-sprรฅkelementer

Her er de viktigste elementene i SQL-sprรฅket:

  • nรธkkelord: Reserverte ord som SELECT, FROM eller WHERE som bygger opp alle utsagn.
  • Identifikatorer: Navn pรฅ databaseobjekter som bruker-ID-er, tabeller og kolonner.
  • Strenger: Literale strenger eller uttrykk med VARCHAR- eller CHAR-datatyper.
  • Uttrykkene: Dannet av konstanter, SQL-operatorer, kolonnenavn og underspรธrringer.
  • Sรธkebetingelser: Filtrer rader eller kontrollflytsetninger som HVIS.
  • Spesielle verdier: Verdier som CURRENT_TIMESTAMP brukt i uttrykk og kolonnestandarder.
  • Variabler: De fleste motorer stรธtter lokale, globale og tilkoblingsnivรฅvariabler i lagrede prosedyrer.
  • kommentarer: Enlinjede (โ€“) og blokkkommentarer (/* */) dokumenterer SQL, men utfรธres ikke.
  • NULL-verdi: NULL markerer en verdi som er ukjent, mangler eller ikke relevant.

Hva er en database i SQL?

A database er en samling av tabeller som lagrer strukturerte data. En tabell inneholder rader (poster eller tupler) og kolonner (attributter).

Hver kolonne lagrer en spesifikk type informasjon, for eksempel navn, datoer, dollarbelรธp eller tall. Relasjoner mellom tabeller hรฅndheves med primรฆrnรธkler og fremmednรธkler, noe som gjรธr databasen ยซrelasjonellยป.

Hva er NoSQL?

NoSQL er en kategori av Databasesystemer hvis hovedtrekk er manglende overholdelse av relasjonelle konsepter. NoSQL betyr ยซIkke bare SQLยป. Kategorien vokste med internettgiganter som Google, Facebook, og Amazon, som hรฅndterer gigantiske datamengder.

Nรฅr relasjonsdatabaser hรฅndterer enorme volumer, kan responstidene bli kortere. Du kan ยซskalere oppยป ved รฅ oppgradere maskinvare, eller ยซskalere utยป ved รฅ fordele belastningen pรฅ tvers av flere verter.

NoSQL-databaser er ikke-relasjonelle butikker designet for webapplikasjoner. De bruker ikke alltid SQL eller hรฅndhever strenge skjemaer, og ACID (AtomEgenskaper (icity, konsistens, isolasjon, holdbarhet) er ikke alltid garantert, selv om moderne systemer som MongoDB og Cassandra tilbyr nรฅ justerbare transaksjonsmoduser.



Hvorfor det er fornuftig รฅ lรฆre SQL etter NoSQL

Gitt at NoSQL skalerer bedre enn relasjonsmodeller, lurer du kanskje pรฅ hvorfor noen fortsatt ville lรฆre SQLNoSQL-databaser er spesialiserte og best egnet for store ustrukturerte datasett, men de fleste forretningsapplikasjoner er fortsatt avhengige av relasjonsdatabaser og deres verktรธy.

Relasjonsdatabaser har fรธlgende fordeler fremfor NoSQL:

  • Moden modell for datalagring og -administrasjon, avgjรธrende for bedriftsbrukere.
  • Stรธtte for visninger, slik at brukere kun kan se autoriserte data.
  • Stรธtte for lagrede prosedyrer som sender forretningslogikk inn i databasen.
  • Sterkere sikkerhetsmodeller, rollebaserte tilgangskontroller og revisjonsfunksjoner.
  • SQL er lingua franca for BI, dashboards og AI-verktรธy som trenger strukturert input.

Etterspรธrselen etter fagfolk som kan hรฅndtere relasjonsdatabaser fortsetter รธkende, sรฅ det er fortsatt en klar fordel รฅ lรฆre det grunnleggende om SQL.

SQL og AI: Tekst-til-SQL-verktรธy

SQL er nรฅ et mรฅlsprรฅk for AI-assistenter. Tekst-til-SQL Verktรธy oversetter enkle engelske spรธrsmรฅl, som ยซvis siste kvartals topp 10 kunder etter omsetningยป, til kjรธrbar SQL. Populรฆre alternativer inkluderer GitHub Copilot, Vanna AI, Microsoft Copilot inn Azure SQL, og Oracle Velg AI. Sjekk alltid generert SQL for korrekthet, sikkerhet og indeksering fรธr du kjรธrer den pรฅ produksjonsdata.

De beste bรธkene for รฅ lรฆre SQL

Her er noen av de beste SQL-bรธkene:

  • SQL-opplรฆring for nybegynnere:

    Dette SQL-veiledning for nybegynnere PDF-en dekker grunnleggende databasekonsepter, MS-SQL-kommandoer og avanserte emner som SQL-sammenfรธyninger.

  • SQL pรฅ 10 minutter: Eksempler pรฅ fargekode viser hvordan SQL-setninger er strukturert, pluss snarveier og ferdige lรธsninger. KJร˜P Nร…
  • SQL kokebok: Teknikker som รฅ bruke SQL til รฅ analysere tegn eller avgrensede elementer i en streng. KJร˜P Nร…
  • SQL: The Complete Reference: Dekker vindusfunksjoner, pivotering av rader til kolonner og omvendt pivotering. KJร˜P Nร…
  • SQL-lommeguide: Lรฆrer SQL-funksjoner, syntaks for regulรฆre uttrykk og typekonvertering. KJร˜P Nร…

For flere SQL-bรธker โ€“ Klikk her

Spรธrsmรฅl og svar

SQL stรฅr for Structured Query Language. Det uttales enten som de tre bokstavene ยซSQLยป eller som ยซSee-Quelยป, et kallenavn arvet fra originalen. IBM SEQUEL-prototypen ble utviklet pรฅ 1970-tallet.

SQL er et standardisert sprรฅk for spรธrring av relasjonsdatabaser. MySQL er et av mange databasebehandlingssystemer som implementerer SQL. Andre motorer som ogsรฅ bruker SQL inkluderer PostgreSQL, Microsoft SQL Server, Oracle Databaseog SQLite.

Den nรฅvรฆrende standarden er ISO/IEC 9075:2023, ofte kalt SQL:2023. Den la til del 16 SQL/PGQ for egenskapsgrafspรธrringer og forklarte JSON-hรฅndtering, basert pรฅ JSON- og radmรธnsterfunksjonene som ble introdusert i SQL:2016.

Ja. Tekst-til-SQL-verktรธy som GitHub Copilot, Vanna AI, og Microsoft Copilot inn Azure SQL gjรธr enkle engelske ledetekster om til spรธrringer. Sjekk alltid den genererte SQL-en for korrekthet, sikkerhet og indeksering fรธr du kjรธrer den.

SQL forbereder treningsdata: funksjonsutvikling, sammenfรธyninger, filtre og aggregeringer skjer alle i lageret. Motorer som Oracle 23ai, BigQuery ML og PostgreSQL Med pgvector kan du nรฅ kjรธre vektorlikhetssรธk direkte i SQL for generering med utvidet henting.

De fleste nybegynnere kan skrive grunnleggende SELECT-, INSERT-, UPDATE- og DELETE-setninger etter to til tre uker med fokusert รธvelse. Det tar vanligvis noen mรฅneder med regelmessig praktisk arbeid รฅ oppnรฅ middels ferdigheter med sammenfรธyninger, delspรธrringer, vindusfunksjoner og spรธrrejustering.

Oppsummer dette innlegget med: