sql >> Database teknologi >  >> RDS >> Database

Grundlæggende SQL-kommandoer:Sådan skriver du simple forespørgsler med eksempler

Denne artikel forklarer, hvordan man skriver simple SQL-forespørgsler fra de mest basale og gradvist forbedrer scriptet for at løse nogle matematiske og datorelaterede problemer. Derudover skal vi afklare begreberne omkring SQL-forespørgsler.

Selvom denne artikel primært er for begyndere, indeholder den tip, der vil være nyttige for ethvert erfaringsniveau.

Hvad er SQL Query i databasen?

Lad os først tale lidt om SQL-forespørgsler for at forstå dem ordentligt, før vi får praktisk erfaring med at skrive.

SQL står for struktureret forespørgselssprog det er et vigtigt sprog, der bruges til at forespørge i relationelle databaser.

T-SQL vs SQL – Hvad er forskellen?

T-SQL eller Transact-SQL er Microsoft-versionen af ​​SQL med flere funktioner og funktioner end traditionelt SQL-sprog også kendt som ANSI SQL har.

Derfor er T-SQL et traditionelt SQL-sprog plus flere ting tilføjet af Microsoft. Det er mere almindeligt brugt og nævnt, når vi taler om SQL.

Denne artikel vil referere til Microsoft SQL-versionen, uanset om vi bruger ordet SQL eller T-SQL.

Hvorfor bruger vi SQL-forespørgsler i en relationel database?

En relationsdatabase er en database med nøgler, der bruges til at forbinde tabeller i stedet for at forbinde tabeller fysisk.

For eksempel har du en tabel kaldet Book som du linker til en anden tabel kaldet BookType via taster for at tilføje flere betydninger til posterne.

Tabellerne på illustrationen er forbundet med en nøgle. Der er ingen grund til at forbinde dem fysisk. Dette er den grundlæggende regel for relationelle databaser – du opretter relationer mellem de to tabeller ved hjælp af nøgle(r).

Læs også relationel database vs NoSQL – hvad skal man vælge til big data management?

Hvad er at forespørge i en database?

Du forespørger i databasen for at få svar på spørgsmål relateret til den pågældende database. Med andre ord skriver du forespørgsler mod en database for at få information om de data, den indeholder.

For eksempel er du interesseret i at se alle bogposter sammen med deres typer i den pågældende database. Du skal forespørge i databasen for at se de nødvendige data. Til det skal du skrive og køre et script mod databasen.

Hvad har du brug for for at stille en forespørgsel?

Nogle få forudsætninger skal være til stede for at forespørge en database, da vi ikke bare kan skrive og køre en forespørgsel hvor som helst mod noget.

Følgende ting er obligatoriske for at forespørge i en database:

  1. En databaseserver såsom SQL Server (installeret lokalt eller eksternt), hvor du gemmer databasen.
  2. Et databasestyringsværktøj såsom SQL Server Management Studio eller dbForge Studio til SQL Server, som du vil bruge til at skrive og køre dine forespørgsler
  3. En database, som du kører dine forespørgsler mod. Du kan oprette en hvilken som helst prøvedatabase til læringsformål.

Du skal også have en grundlæggende forståelse af din database, såsom hvilken tabel der indeholder den ønskede information og så videre. Forståelse af relationelle databasekoncepter er også et plus.

Vi antager, at du allerede har opfyldt ovenstående krav. Men du kan også henvise til følgende artikel for flere detaljer:

Grundlæggende om SQL Server Management Studio (SSMS) – Del 1

Ting, du skal gøre, før du skriver forespørgsler i SQL

Vi skal nu skrive simple SQL-forespørgsler.

Konfigurer venligst miljøet for at begynde at skrive dine SQL-forespørgsler. Gør værktøjerne klar. Åbn dbForge Studio til SQL Server eller SQL Server Management Studio, og opret forbindelse til SQL-instansen. Her starter vi vores SQL-rejse:

Når du har oprettet forbindelse, skal du trykke på CTRL+N eller gå til Fil> Ny> Forespørgsel med aktuel forbindelse :

Nu er du med succes forbundet til masteren (systemdatabasen) på den aktuelt tilsluttede server.

Vigtigt tip: Opret altid en prøvedatabase for at køre dine forespørgsler (scripts) mod den. At køre forespørgsler mod systemdatabaserne er ikke en god praksis bortset fra tre tilfælde:

  1. Du arbejder med en eksempeldatabase, og så vil scriptet, der er oprettet til den, køre mod systemdatabasen (masterdatabasen).
  2. Du forespørger masterdatabasen med vilje for at få nogle oplysninger ud af den.
  3. Forespørgslerne er sikre at køre mod systemets (master) database.

Opsæt en prøvedatabase

Lad os oprette en eksempeldatabase kaldet BookSimple uden borde. Skriv følgende script mod masterdatabasen for at oprette en eksempeldatabase og Tryk på F5 for at udføre forespørgslen:

-- Opret eksempeldatabase BookSimpleUSE MASTERGOCREATE DATABASE BookSimpleGOUSE BookSimple 

Det sæt-baserede koncept bag SQL-forespørgsler

Lige før du skriver selv den enkleste SQL-forespørgsel, skal du forstå, at SQL er et sæt-baseret sprog.

Det betyder, at når du vil forespørge i din database ved hjælp af SQL, skal du tænke i sæt eller grupper.

SQL er ved design og som standard meget effektiv til at betjene sæt-baserede anmodninger. Hvis du opbygger dine scripts (forespørgsler) med den sæt-baserede logik for øje, forstår og implementerer du SQL hurtigere end dem, der følger den typiske læringsvej (som har sine egne fordele).

Lad os tænke på et naturligt forekommende sæt, såsom klasse eller gruppe. Når vi henviser til en klasse, henviser vi til alle elever i den klasse. SQL kan hjælpe med at forespørge på den klasse som helhed.

Tilsvarende en bog er en tabel med bøger. Den indeholder alle optegnelser for bøger. Vi kan simpelthen forespørge i den tabel, som om vi taler om en enkelt bog, men faktisk forespørger vi hele tabellen med bøger repræsenteret af bogen tabel.

Vi vil se flere fordele ved det sæt-baserede koncept senere, når vi udforsker nogle grundlæggende eksempler.

Simpel SQL SELECT-sætning

SELECT er en T-SQL-sætning, der henter alle eller udvalgte rækker og kolonner (baseret på et kriterium) fra en database.

Med andre ord VÆLG lader os se (vælge) data fra en tabel eller et antal tabeller baseret på bestemte kriterier, som, hvis de ikke er nævnt generelt, viser alle dataene.

Derfor er SELECT den første sætning, der skal kigges efter, hvis vi ønsker at hente rækker og kolonner fra en database. Den enkleste form for SELECT-syntaks er som følger:

VÆLG * FRA

Husk, at vi vil ændre syntaksen med tiden for gradvist at forbedre læringsprocessen.

En anden måde at bruge SELECT-sætning på er som følger:

VÆLG  

Udtrykket kan være mange ting, herunder følgende:

  1. Konstant (såsom et fast tal som 1).
  2. Variabel (såsom @X, som kan ændres til et hvilket som helst tal).
  3. Kombination af konstanter eller variabler (såsom 1+2 eller @X [email protected]).

Uanset om du bruger VÆLG eller VÆLG * FRA

, skal du tænke i sæt.

Sådan skriver man en simpel SQL-forespørgsel

Lad os forespørge på BookSimple database ved at opdatere databaserne node under Object Explorer. Højreklik på BookSimple > Ny forespørgsel :

Skriv den enkleste SQL-forespørgsel ned – skriv og kør følgende script mod eksempeldatabasen:

-- Display 1SELECT 1 

Kørsel af forespørgslen (tryk på F5) vil vise følgende resultater:

Så SELECT 1 returnerer 1, men med en unavngiven kolonne (Intet kolonnenavn).

1 er en konstant. Det forbliver 1, så vi forventer, at resultatet også bliver 1. Der er dog endnu en vigtig ting at forstå:vores output konverteres til et sæt af 1 kolonne og 1 række. Da vi ikke har givet noget navn til kolonnen, og der ikke er nogen tabel involveret (for at få navnet fra), får vi værdien 1 for en unavngiven kolonne i en unavngiven tabel (sæt).

Det sæt-baserede sprog har automatisk returneret vores angivne værdi til en unavngiven kolonne i en unavngiven tabel med én række.

Lad os navngive kolonnen ved at ændre scriptet som følger:

-- Vis værdi 1 for kolonnen Nummer på en unavngiven tabel (sæt) SELECT 1 AS Number 

Kør scriptet for at se følgende resultatsæt denne gang:

Da denne forespørgsel altid returnerer den samme værdi (tal), som vi indtaster (leverer), er der ikke meget at diskutere udover at forstå, hvorfor den sæt-baserede tænkning er afgørende for at forstå, hvordan forespørgsler fungerer.

Beregning i Select Statement

Lad os bruge ovenstående case til hurtige beregninger i SQL - vi gør den enkelte værdi til et udtryk.

For eksempel vil vi hurtigt tilføje to tal 1000 og 200. Vi kan ganske enkelt skrive følgende forespørgsel uden at nævne nogen tabel ved kun at bruge SELECT-sætningen:

-- Tilføjelse af to tal 1000 og 200 VÆLG 1000+200 SOM [Sum af 1000 og 200] 

Resultatet er nedenfor:

På samme måde kan vi addere, multiplicere, dividere og trække tal fra.

Det er nyttigt at tilføje to kolonner i en tabel, der indeholder numeriske værdier. Vi kan dog også bruge denne tilgang til at tilføje to variable. Det er en fordel at bruge variabler, da vi kan tilføje to vilkårlige tal ved at initialisere disse variable med de ønskede værdier. Dette illustreres af følgende script:

-- SQL-script til at tilføje to vilkårlige talDECLARE @X INT, @Y INT, @Addition INTSET @X=550 -- Initialiser variabel X med en værdi (tal)SET @Y=350 -- Initialiser variabel Y med en værdi (tal) SET @[email protected]@sqldat.com -- SUM X og YSELECT @X AS FirstNumber_X,@Y som SecondNumber_Y,@Addition as SumOfNumbers

Kørsel af scriptet viser os følgende output:

Vi kan gemme denne forespørgsel for at genbruge den til enhver tid til at tilføje to vilkårlige tal (ved at ændre værdierne for @X og @Y). Hvis vi tænker på dette i form af et sæt, kan vi sige, at outputtet returneres som en unavngiven tabel (sæt) med én række og følgende tre kolonner:

  1. FørsteNumber_X
  2. SecondNumber_Y
  3. SumOfNumbers

Du kan dog gøre mere med SELECT med en tom database (der ikke har nogen tabeller).

Et mere databeregningseksempel

Her skal vi bruge funktionen GETDATE() til at hente den aktuelle dato og den forventede leveringsdato for en ukendt ordre, som endnu ikke er en del af vores tabel.

Antag, at vi ikke har nogen ordretabel endnu, men vi vil hurtigt beregne en forventet leveringsdato for produktordre. Hvis vi tilføjer et hvilket som helst tal til GETDATE()-funktionen, vil det fortælle os datoen tilføjet med det angivne antal dage.

Med andre ord, hvis vi forventer, at ordrens leveringsdato er to dage efter ordreafgivelsen, kan vi beregne den ved at bruge SELECT med GETDATE()+2.

For at se det i aktion skal du køre følgende SQL-script:

-- Beregner ordredato og forventet leveringsdato.VÆLG GETDATE() AS [Order Date],GETDATE()+2 som [Forventet leveringsdato] 

Resultatsættet er som følger:

Denne gang kunne vi beregne den forventede leveringsdato for ordre direkte ved hjælp af SELECT-sætningen med funktionen GETDATE() i mangel af nogen tabel.

Men hvis vi havde et bord, ville vi have fået den forventede leveringsdato for alle ordrer i den tabel.

Endnu en gang, hvis vi analyserer dette output i form af Set Logic, har vi en unavngiven tabel (sæt) med to kolonner og en række. SQL er et sæt-baseret sprog, som fungerer meget hurtigt med sæt, såsom tabeller. Hvis tabeller ikke er der, behandler det inputværdierne (der skal behandles) som unavngivne sæt.

Kort sagt kræver en SQL-forespørgsel en SELECT-sætning efterfulgt af et udtryk for at udføre nogle tal- eller datobaserede beregninger selv mod en tom database (ingen tabeller).

Tillykke! Du har lært det grundlæggende i SQL-forespørgsler og skrevet nogle simple forespørgsler ved hjælp af SELECT-sætningen mod en eksempeldatabase.

Hold kontakten, da skrivning af simple SQL-forespørgsler mod databasetabellerne er endnu ikke på vej.

Ting at lære, hvordan man bedre skriver SQL-forespørgsler

Nu hvor du kan skrive nogle grundlæggende SQL-forespørgsler, kan du prøve følgende øvelser:

  1. Opret en eksempeldatabase BookSimple2.
  2. Opret en forespørgsel for at gange to vilkårlige tal ved at definere dem som variable.
  3. Skriv en forespørgsel for at oprette en ordredato som den aktuelle dato, forsendelsesdatoen som to dage efter ordredatoen og den forventede leveringsdato som to dage efter forsendelsesdatoen.

  1. En guide til implementering af TimescaleDB med Docker

  2. SQL Server En udløser til at arbejde på indsættelse af flere rækker

  3. Flere forespørgsler udført i java i en enkelt sætning

  4. 2 måder at sammenkæde en streng og et tal i Oracle