Windows.  Virus.  Anteckningsböcker.  Internet.  kontor.  Verktyg.  Förare

På frågespråket SQL intar en betydande plats SELECT-sats, eftersom vi med hjälp av den gör ett urval i databasen. I den här artikeln kommer vi att täcka grunderna i denna mycket viktiga SQL-sats.

Det finns många olika artiklar, böcker, tutorials om SQL på Internet, men alla är svåra för en person som aldrig har hört talas om SQL, och kanske till och med om programmering, och därför är alla dessa källor svåra för honom att studera . Här försöker jag förklara grunderna för en enskild operatör utan att gå för djupt ( det är det som gör det svårt att studera att de omedelbart går från grunderna till komplexa frågor), så du måste först lära dig grunderna och sedan gå vidare till mer komplexa, vilket gör det lättare att lära dig SQL-språket. Den här artikeln är bra för nybörjare som vill lära sig hur man skriver enkla SQL-frågor för att hämta data.

Vad är SQL-språk och SELECT-sats

SQLär ett frågespråk som används för att manipulera (hantera) data i relationsdatabaser. Det har stor popularitet och därför bör alla IT-k som respekterar sig själv känna till grunderna i detta språk, eftersom nästan alla företag har databaser.

VÄLJ– operatör för SQL-språket, tillhör gruppen datamanipuleringsoperatorer ( Data Manipulation Language, DML) och tjänar till att hämta data från databasen.

Notera! För att lära sig SQL-språket och databaserna finns det speciella gratisutgåvor av stora DBMS, till exempel i SQL Server Microsoft har en Express-utgåva. Hur man installerar givet DBMS kan du läsa i materialet - Beskrivning av installationen av Microsoft SQL Server 2016 Express.

Här är det enklaste exemplet på att använda SELECT-satsen.

VÄLJ * FRÅN tabell

  • * - visa alla data;
  • FROM - från källan;
  • Tabell - källnamn ( i vårt fall bordet).

Men i praktiken behöver vi ofta inte all data från tabellen, och ibland bara några kolumner, för detta anger vi helt enkelt namnet på den önskade kolumnen istället för * ( eller högtalare), Till exempel:

VÄLJ pris FRÅN tabell

där Pris är namnet på kolumnen.

Notera! Som exempel använder vi ett enkelt bord listar datormodeller, deras pris och namn.

Om du behöver ange flera kolumner, lista dem helt enkelt separerade med kommatecken efter SELECT-satsen, till exempel

VÄLJ pris, namn, modell FRÅN Bord

där, pris, namn, modell är kolumner från tabelltabellen.

Urvalsvillkor - WHERE-sats

I samplingsprocessen behöver vi ganska ofta filtrera datan efter ett visst villkor, d.v.s. inte alla data, utan bara de som matchar villkoret, i SELECT-konstruktionen kan du använda operatorn för detta VAR.

VÄLJ pris FRÅN Bord VAR pris > 100:-

var, VAR är tillståndet, d.v.s. vi visar bara de rader som matchar vårt villkor ( pris över 100).

Jämförelseoperatörer i SQL

  • ">" - mer än något annat;
  • «<» – меньше чего-нибудь;
  • "=" - lika;
  • «<>" - inte jämnlikt;
  • ">=" - större än eller lika;
  • «<=» – меньше или равно.

Du kan också ange i villkoret nyckelord MELLAN, dvs. värdet faller eller faller inte inom ett visst intervall, till exempel

VÄLJ pris FRÅN tabell VAR pris MELLAN 400 OCH 600

där anger vi att priset ska vara mellan 400 och 600.

För att kontrollera om värdet på uttrycket som testas tillhör en viss uppsättning värden kan du använda predikatet I.

VÄLJ pris FRÅN tabell VAR pris IN (400, 600)

I det här fallet vi vill bara ha priset med kostnad 400 och 600.

Om vi ​​bara behöver få fram de unika raderna i källan kan vi ange nyckelordet DISTINKT, Till exempel

VÄLJ DISTINKT pris FRÅN Tabell VAR pris > 100

Notera! SQL-språket är skiftlägesokänsligt, frågor kan skrivas på en rad eller delas upp i flera. Till exempel är följande två frågor exakt likadana.

VÄLJ pris FRÅN tabell

välj pris från tabellen

Sorterar BESTÄLL EFTER

Mycket ofta är det nödvändigt att sortera resultatet av en fråga efter ett visst fält ( kolumn). För att göra detta, efter begäran, ange konstruktionen SORTERA EFTER och de fälten ( flera kan separeras med kommatecken) att sortera efter.

VÄLJ pris FRÅN Tabell BESTÄLL EFTER pris BESK

Detta är ett exempel på sortering i fallande ordning, men du kan också sortera i stigande ordning, istället för DESC skriver vi ASC, men vanligtvis skriver vi inte på detta sätt, eftersom stigande sortering är standard.

Aggregera funktioner i SQL

Det finns mycket användbara så kallade aggregeringsfunktioner i SQL, nämligen:

  • RÄKNA— antalet värden i den angivna kolumnen;
  • BELOPPär summan av värdena i den angivna kolumnen;
  • AVG- medelvärdet i den angivna kolumnen;
  • MIN— Minimivärdet i den angivna kolumnen.
  • MAX— Det högsta värdet i den angivna kolumnen.

Till exempel måste vi få det genomsnittliga priset för en dator, max och minimum, för detta kan vi skriva följande fråga

VÄLJ AVG(pris), MAX(pris), MIN(pris) FRÅN tabellen

GRUPP AV

Du kan gruppera värden efter kolumner, till exempel måste vi ta reda på det genomsnittliga priset för varje datormodell, i det här fallet blir frågan så här

VÄLJ modell, AVG (pris) SOM AVGPrice FRÅN tabell GRUPP FÖR modell

Om du märker så använde jag uppgiften här " alias» för en mer bekväm uppfattning av resultaten av denna fråga, dvs. efter kolumnen skriver du AS och det namn du vill ska visas i resultaten.

Förutom när du använder villkor i enskilda kolumner kan du också ange ett villkor för hela gruppen med funktionen HAR. Till exempel måste vi bestämma maxpriset för en dator, grupperad efter modellerna av dessa datorer, men vars maxpris är mindre än 500.

VÄLJ modell, MAX(pris) FRÅN tabell GRUPP EFTER modell ATT HAR MAX(pris)< 500

I det här fallet kommer vår fråga att ge oss datorer grupperade efter modeller, vars högsta pris är mindre än 500.

Notera! Du kan läsa mer om gruppering i SQL i den här artikeln.

NULL-värde i SQL

I SQL finns ett sådant värde som NULL. Faktum är att NULL är frånvaron av ett värde ( de där. tömma). För att visa alla rader som innehåller ett sådant värde ( till exempel har vi ännu inte fastställt något pris för någon dator) kan vi använda följande villkor.

VÄLJ * FRÅN tabell DÄR priset ÄR NULL

Vilket kommer att innebära att man söker efter alla rader som inte innehåller ett värde för prisfältet.

Förenklad SELECT Statement Syntax

VÄLJ<Список полей>eller * , ...] , ...]

Anteckningen! Om du är intresserad av T-SQL-språket rekommenderar jag att du läser min bok "The Way of the T-SQL Programmer", där jag talar i detalj, med många exempel, om grunderna i Transact-SQL-språket speciellt för nybörjare.

Det var allt för idag, vi har tillsammans med dig granskat en liten del av SQL-språket, nämligen SELECT-satsen. Lycka till!

Och data över bordet.

SQL-språket kallas inbyggt, därför att den innehåller funktioner fullfjädrat språk utveckling, men fokuserar på dataåtkomst, vilket gör att det är en del av. SQL-språkstandarder stöder språk Pascal programmering, Fortran, COBOL, C, etc.

Existerar 2 metoder för att använda inbäddad SQL:

  • statisk språkanvändning ( statisk SQL) - programmets text innehåller anrop till SQL-funktioner som ingår i den körbara modulen efter kompilering.
  • dynamisk språkanvändning ( dynamisk SQL) – dynamisk konstruktion av SQL-funktionsanrop och deras tolkning. Till exempel, kan du komma åt fjärrdatabasdata under programkörning.

SQL-språket (liksom andra databasspråk) är utformat för att förbereda och köra frågor. Som ett resultat av att köra en datafråga från en eller flera tabeller erhålls en uppsättning poster, som kallas prestanda.

Definition 1

Prestandaär en tabell som bildas som ett resultat av query exekvering.

Grundläggande SQL Query Language Operatörer

SQL-satser är villkorligt uppdelade i 2 underspråk:

  1. Datadefinitionsspråk DDL;
  2. Språk för datamanipulation DML.

I tabellen är symbolen * markerad specifika operatörer språk.

Låt oss ta en titt på de viktigaste SQL-satserna.

    Tabellskapande uttalande:

    Namnet på tabellen som skapas och namnet på minst en kolumn (fält) är obligatoriska operander. För kolumnnamnet måste du ange vilken typ av data som ska lagras i den.

    För enskilda fält kan du ange ytterligare regler för att kontrollera de värden som skrivs in i dem. Till exempel, INTE NULL indikerar att fältet inte kan vara tomt och ett värde måste anges i det.

    Exempel 1

    För att skapa en tabell böcker bokkatalog, som innehåller fälten:

    typ- Typ av bok

    namn- boktitel,

    pris– bokpris

    operatör kan se ut så här:

    Operator för ändring av tabellstruktur:

    När du ändrar tabellstrukturen kan du lägga till ( LÄGG TILL), förändra ( ÄNDRA) eller ta bort ( SLÄPPA) en eller flera tabellkolumner. Regler för inspelning given operatör samma som för operatören SKAPA BORD. Du behöver inte ange för att ta bort en kolumn.

    Exempel 2

    Att lägga till i tabellen böcker fält siffra, som lagrar antalet böcker, kan du skriva operatorn:

    Tabellförklaring:

    Exempel 3

    Till exempel att släppa en befintlig tabell med namnet böcker använd bara operatorn:

    Index skapande uttalande:

    Uttrycket skapar ett index på en eller flera kolumner i en given tabell, vilket påskyndar fråge- och uppslagsoperationer. Flera index kan skapas på samma tabell.

    Valfritt alternativ UNIKär ansvarig för att säkerställa unika värden i alla kolumner som anges i uttalandet.

    ASC ställer in automatisk sortering av värden i kolumner i stigande ordning (standard), och DESC- i fallande ordning.

    Index drop operator:

    Visa skapande operatör:

    När du skapar en vy kan du utelämna kolumnnamnen. Då kommer kolumnnamnen från frågan att användas, vilket beskrivs av motsvarande operatör VÄLJ.

    Visa raderingsoperatör:

    Rekordvalsoperatör:

    Operatör VÄLJ väljer och utför beräkningar på data från en eller flera tabeller. Resultatet av satsexekveringen är en svarstabell som innehåller ( ALLT) eller innehåller inte ( DISTINKT) rader som upprepas.

    Operand FRÅN innehåller en lista över tabeller från vilka poster hämtas för dataurval.

    Operatör för poständring:

    Nya fältvärden i poster får inte innehålla värden ( NULL) eller beräknas enligt ett aritmetiskt uttryck.

    Operatör för att infoga nya poster:

    I den första posten av operatören FÖRA IN nya poster läggs in med givna värden i kolumnerna.

    I den andra posten av operatören FÖRA IN nya rader läggs in, valda från en annan tabell genom en mening VÄLJ.

    Ta bort postoperatör:

    Som ett resultat av operatörskörningen raderas raderna som uppfyller villkoret som anges av den valfria operanden från den angivna tabellen VAR. Om operanden VAR inte anges, raderas alla poster i tabellen.

SQL-språkstandarden antogs 1992 och används fortfarande idag. Det var han som blev standarden för många.Självklart använder vissa tillverkare sina egna tolkningar av standarden. Men i vilket system som helst finns det fortfarande huvudkomponenter - SQL-satser.

Introduktion

Med hjälp av SQL-satser, värden, tabeller hanteras och tas emot för vidare analys och visning. De är en uppsättning nyckelord med vilka systemet förstår vad det ska göra med datan.

Flera kategorier av SQL-satser är definierade:

  • definition av databasobjekt;
  • värdemanipulation;
  • skydd och förvaltning;
  • sessionsparametrar;
  • basinformation;
  • statisk SQL;
  • dynamisk SQL.

SQL-satser för att manipulera data

FÖRA IN. Infogar rader i en befintlig tabell. Det kan användas både för ett värde och flera, bestämt av något villkor. Till exempel:

tabellnamn (kolumnnamn 1, kolumnnamn 2)

VÄRDEN (värde 1, värde 2).

För att använda INSERT-satsen på flera värden är syntaxen:

tabellnamn 1 (kolumnnamn 1, kolumnnamn 2)

VÄLJ kolumnnamn 1, kolumnnamn 2

FRÅN tabellnamn 2

WHERE tabellnamn 2.kolumnnamn 1>2

Denna fråga kommer att välja all data från tabell 2 som är större än 2 i kolumn 1 och infoga den i den första.

UPPDATERING. Som namnet antyder, denna operatör SQL-fråga uppdaterar data i en befintlig tabell med ett visst attribut.

UPPDATERA tabellnamn 1

SET kolumnnamn 2 = "Basilika"

WHERE tabellnamn 1.kolumnnamn 1 = 1

Denna konstruktion kommer att fylla med värdet Vasily alla rader där den möter siffran 1 i den första kolumnen.

Data från tabellen. Du kan ange vilket villkor som helst eller ta bort alla rader.

DELETE FROM tabellnamn

WHERE tabellnamn.kolumnnamn 1 = 1

Ovanstående fråga kommer att ta bort all data med värdet ett i den första kolumnen från databasen. Och så här kan du rensa hela tabellen:

SELECT-sats

Huvudsyftet med SELECT är att välja data enligt vissa förutsättningar. Resultatet av hans arbete är alltid en ny tabell med utvalda data. MS-operatören kan användas i många olika frågor. Därför, tillsammans med det, kan du överväga andra relaterade sökord.

För att välja all data från en viss tabell, använd "*"-tecknet.

FRÅN tabellnamn 1

Resultatet av arbetet given begäran kommer att vara en exakt kopia av tabell 1.

Och här finns ett urval enligt WHERE-villkoret, som får från tabell 1 alla värden större än 2 i kolumn 1.

FRÅN tabellnamn 1

WHERE tabellnamn 1.kolumnnamn 1 > 2

Du kan också ange i urvalet att endast vissa kolumner behövs.

VÄLJ tabellnamn 1.kolumnnamn 1

FRÅN tabellnamn 1

Resultatet av denna fråga kommer att vara alla rader med värden från kolumn 1. Med hjälp av MS SQL-satser kan du skapa din egen tabell genom att ersätta, beräkna och ersätta vissa värden på språng.

tabellnamn 1.kolumnnamn 1

tabellnamn 1.kolumnnamn 2

tabellnamn 1.kolumnnamn 3

tabellnamn 1.kolumnnamn 2 * tabellnamn 1.kolumnnamn 3 SOM SUMMA

FRÅN tabellnamn 1

Denna till synes komplexa fråga hämtar alla värden från tabell 1 och skapar sedan nya EQ- och SUMMA-kolumner. Den anger "+"-tecknet i det första, och produkten av data från kolumnerna 2 och 3 i den andra. Resultatet kan presenteras i form av en tabell, för att förstå hur det fungerar:

När du använder SELECT-satsen kan du omedelbart sortera data enligt något attribut. För detta används ordet ORDER BY.

tabellnamn 1.kolumnnamn 1

tabellnamn 1.kolumnnamn 2

tabellnamn 1.kolumnnamn 3

FRÅN tabellnamn 1

BESTÄLL EFTER kolumnnamn 2

Den resulterande tabellen kommer att se ut så här:

Det vill säga, alla rader sattes i sådan ordning att värdena i kolumn 2 var i stigande ordning.

Data kan också hämtas från flera tabeller. För tydlighetens skull måste du först föreställa dig att det finns två av dem i databasen, ungefär så här:

Tabell "Anställda"

Tabell "Lön"

Nu måste du på något sätt länka dessa två tabeller för att få gemensamma värden. Med grundläggande SQL-satser kan du göra så här:

Personal.Antal

Anställdes namn

Lön. Pris

Lön. Upplupen

FRÅN Anställda, Lön

VAR Anställda.Number = Lön.Antal

Här är ett urval av två olika bord värden grupperade efter nummer. Resultatet blir följande dataset:

Lite mer om SELECT. Använda aggregerade funktioner

En av huvudoperatörerna kan utföra vissa beräkningar på hämtningen. För att göra detta använder han vissa funktioner och formler.

Till exempel, för att få antalet poster från tabellen "Anställda", måste du använda frågan:

VÄLJ ANTAL (*) SOM N

FRÅN Anställda

Resultatet är en tabell med ett värde och en kolumn.

Du kan använda den här frågan och se vad som händer:

SUM(Lön. Upplupen) SOM SUMMA

MAX(Lön.Upplupna) SOM MAX

MIN(Lön. Upplupen) SOM MIN

AVG(Lön.Upplupna) SOM SRED

FRÅN Lön

Finalbordet kommer att se ut så här:

På detta sätt kan du välja önskade värden från databasen genom att utföra beräkningen av olika funktioner i farten.

Union, Intersect och Differences

Kombinera flera frågor i SQL

VÄLJ Employees.Name

FRÅN Anställda

WHERE Anställda. Antal = 1

VÄLJ Employees.Name

FRÅN Anställda, Lön

VAR Lön. Antal = 1

Man bör komma ihåg att med en sådan sammanfogning måste tabellerna vara kompatibla. Det vill säga att ha samma antal kolumner.

SELECT-satssyntax och bearbetningsordning

Först och främst definierar SELECT området från vilket den ska hämta data. Nyckelordet FROM används för detta. Om det inte är specificerat vad man ska välja exakt.

Sedan kan det finnas en SQL WHERE-sats. Med dess hjälp går SELECT igenom alla rader i tabellen och kontrollerar att data överensstämmer med villkoret.

Om det finns en GROUP BY i frågan, grupperas värdena enligt de angivna parametrarna.

Operatörer för datajämförelse

Det finns flera typer av dem. I SQL kan jämförelseoperatorer kontrollera Olika typer värden.

    "=". Betecknar, som du kanske kan gissa, likheten mellan två uttryck. Den har till exempel redan använts i exemplen ovan - WHERE Lön.Number = 1.

    ">". Mer tecken. Om värdet på vänster sida av uttrycket är större än, returneras booleskt SANT och villkoret anses vara uppfyllt.

    «<». Знак меньше. Обратный предыдущему оператор.

    Tecken"<=» и «>=". Det skiljer sig från enkla mer och mindre operatorer genom att om operanderna är lika, kommer villkoret också att vara sant.

TYCKA OM

Detta nyckelord kan översättas som "liknande". LIKE-operatorn i SQL används på ungefär samma sätt - den kör en fråga enligt en mall. Det vill säga, det låter dig utöka urvalet av data från databasen med hjälp av reguljära uttryck.

Till exempel sattes följande uppgift: från den redan kända basen "Anställda" för att få alla personer vars namn slutar med "jag". Då kan frågan skrivas så här:

FRÅN Anställda

WHERE Namn SOM `%i`

Procenttecknet i det här fallet betyder en mask, det vill säga vilken karaktär som helst och deras nummer. Och med bokstaven "i" kommer SQL att bestämma att det sista tecknet ska vara just det.

FALL

Denna SQL Server-sats är en implementering av multipelval. Det liknar switchkonstruktionen i många programmeringsspråk. CASE-satsen i SQL utför en åtgärd på flera villkor.

Till exempel måste du välja högsta och lägsta värden från lönetabellen.

Då kan frågan skrivas så här:

FRÅN Lön

WHERE FALL NÄR VÄLJ MAX(Upplupet) SEN Maximum

NÄR VÄLJ MIN(Upplupna) DÅ Minimum

I det här sammanhanget letar systemet efter högsta och lägsta värde i kolumnen Upplupet. Sedan, med END, skapas ett "total"-fält, där "Maximum" eller "Minimum" kommer att anges, beroende på resultatet av villkoret.

SQL har förresten också en mer kompakt form av CASE - COALESCE.

Data Definition Operatörer

Den här vyn låter dig göra en mängd olika ändringar i tabeller - skapa, ta bort, ändra och arbeta med index.

Den första som är värd att överväga är CREATE TABLE. Det gör inget mer än att skapa en tabell. Om du bara skriver CREATE TABLE-frågan kommer ingenting att hända, eftersom du fortfarande behöver ange några parametrar.

Till exempel, för att skapa den redan välbekanta tabellen Anställda, måste du använda kommandona:

SKAPA BORD Anställda

(Nummer nummer(10) INTE NULL

Namn varchar(50) NOT NULL

Efternamn varchar(50) NOT NULL)

I den här frågan bestäms namnen på fälten och deras typer omedelbart inom parentes, samt om det kan vara lika med NULL.

SLÄPP BORD

Utför en enkel uppgift och släpper den angivna tabellen. Har ytterligare en OM FINNS-parameter. Den absorberar ett fel vid radering om tabellen som slås upp inte finns. Användningsexempel:

SLÄPP TABELL Anställda OM FINNS.

SKAPA INDEX

SQL har ett indexsystem som gör att du kan snabba upp dataåtkomsten. I allmänhet är det en länk som pekar till en specifik kolumn. Du kan skapa ett index med en enkel fråga:

SKAPA INDEX index_name

PÅ tabellnamn (kolumnnamn)

Denna operatör används i T-SQL, Oracle, PL SQL och många andra tolkningsteknologier.

ÄNDRA TABELL

En mycket funktionell operatör med många alternativ. I allmänhet ändrar det strukturen, definitionen och placeringen av tabeller. Operatören används i Oracle SQL, Postgres och många andra.

    LÄGG TILL. Lägger till en kolumn i en tabell. Dess syntax är: ALTER TABLE tabellnamn ADD kolumnnamn lagrad_datatyp. Kan ha ett OM INTE FINNS-alternativet för att undertrycka felet om kolumnen som skapas redan finns;

    SLÄPPA. Tar bort en kolumn. Den har också en IF EXISTS-nyckel, utan vilken ett fel kommer att genereras som säger att den obligatoriska kolumnen saknas;

    FÖRÄNDRA. Används för att byta namn på fältnamnet till det angivna. Användningsexempel: ALTER TABLE table_name CHANGE gammalt_namn nytt_namn;

    ÄNDRA. Detta kommando hjälper dig att ändra typen och ytterligare attribut för en specifik kolumn. Och det används så här: ALTER TABLE tabellnamn MODIFIERA kolumnnamn datatypattribut;

SKAPA VY

I SQL finns det något som heter en vy. Kort sagt, detta är en slags virtuell tabell med data. Den bildas som ett resultat av ett urval med SQL SELECT-satsen. Vyer kan begränsa åtkomsten till databasen, dölja dem, ersätta riktiga kolumnnamn.

Skapandeprocessen sker med en enkel begäran:

CREATE VIEW vynamn SOM VÄLJ FRÅN * tabellnamn

Sampling kan ske som hela databasen som helhet, och enligt vissa förutsättningar.

Lite om funktionerna

SQL-frågor använder ofta olika inbyggda funktioner som gör att du kan interagera med data och transformera den i farten. Det är värt att överväga dem, eftersom de är en integrerad del av ett strukturerat språk.

    RÄKNA. Räknar poster eller rader i en viss tabell. Som en parameter kan du ange namnet på kolumnen, sedan tas data från den. VÄLJ ANTAL * FRÅN Anställda;

    A.V.G. gäller endast kolumner med numeriska data. Dess resultat är bestämningen av det aritmetiska medelvärdet av alla värden;

    MIN och MAX. Dessa funktioner har redan använts i den här artikeln. De bestämmer de högsta och lägsta värdena från den angivna kolumnen;

    BELOPP. Det är enkelt - funktionen beräknar summan av kolumnvärdena. Den används uteslutande för den numeriska datatypen. Genom att lägga till parametern DISTINCT i frågan kommer endast unika värden att summeras;

    RUNDA. Funktionen att avrunda decimaltal. Syntaxen använder kolumnnamnet och antalet decimaler;

    len. En enkel funktion som beräknar längden på en kolumns värden. Resultatet blir en ny tabell med en indikation på antalet tecken;

    NU. Detta nyckelord används för att beräkna aktuellt datum och tid.

Ytterligare operatörer

Många av exemplen på SQL-satsen har nyckelord som utför små uppgifter men som ändå förenklar val eller databasoperationer avsevärt.

    SOM. Den används när du behöver visualisera resultatet genom att tilldela det angivna namnet till den resulterande tabellen.

    MELLAN. Ett mycket praktiskt urvalsverktyg. Den anger intervallet för värden som data ska hämtas från. Ingången accepterar en parameter från och till vilket nummer området används;.

    INTE. En operator ger motsatsen till ett uttryck.

    STYMPA. Tar bort data från den angivna regionen i databasen. Det skiljer sig från liknande operatörer genom att det är omöjligt att återställa data efter användning. Det är värt att tänka på att implementeringen av detta nyckelord i olika tolkningar av SQL kan skilja sig åt. Därför, innan du försöker använda TRUNCATE, är det bättre att läsa hjälpinformationen.

    BEGRÄNSA. Ställer in antalet rader som ska visas. Det speciella med operatören är att den alltid är placerad i slutet. Det krävs en obligatorisk parameter och en valfri. Den första anger hur många rader med vald data som ska visas. Och om den andra används, fungerar operatören som för en rad värden.

    UNION. En mycket praktisk operatör för att kombinera flera frågor. Han har redan träffat bland exemplen på detta i den här artikeln. Du kan visa önskade rader från flera tabeller genom att sammanfoga dem med UNION för mer bekväm användning. Syntaxen är: VÄLJ kolumnnamn FRÅN tabellnamn UNION VÄLJ annat_kolumnnamn FRÅN annat_tabellnamn. Resultatet är en pivottabell med kombinerade frågor.

    PRIMÄRNYCKEL. Översatt som "primärnyckel". Egentligen är det denna terminologi som används i referensmaterial. Det står för den unika radidentifieraren. Den används som regel när man skapar en tabell för att ange vilket fält som ska innehålla den.

    STANDARD. Precis som den tidigare operatören används den i processen för att utföra den skapande frågan. Den definierar standardvärdet som kommer att fyllas i fältet när det skapas.

    NULL. Nybörjare och inte bara programmerare, när de sammanställer frågor, glömmer mycket ofta möjligheten att få ett NULL-värde. Som ett resultat smyger sig ett fel in i koden, vilket är svårt att spåra under felsökning. Därför, när du skapar tabeller, väljer eller räknar om värden, måste du stanna upp och tänka på om förekomsten av NULL i den här delen av frågan tas med i beräkningen.

    Minne. Den här artikeln har visat flera funktioner som kan utföra vissa uppgifter. När du utvecklar ett skal för att fungera med databasen kan du "uppväga" beräkningen av enkla uttryck på databashanteringssystemet. I vissa fall ger detta en betydande prestandaökning.

    Restriktioner. Om du bara behöver få två från en databas med tusentals rader, bör du använda operatorer som LIMIT eller TOP. Det finns inget behov av att extrahera data med hjälp av skalutvecklingsspråket.

    Förening. Efter att ha tagit emot data från flera tabeller börjar många programmerare att sammanföra dem med hjälp av skalminne. Men varför? När allt kommer omkring kan du göra en begäran där allt detta kommer att vara närvarande. Du behöver inte skriva extra kod och reservera ytterligare minne i systemet.

    Sortering. Om det är möjligt att tillämpa beställning i frågan, det vill säga via DBMS, måste du använda den. Detta kommer att spara avsevärt på resurser när du kör ett program eller en tjänst.

    Många förfrågningar. Om du måste infoga många poster sekventiellt, bör du för optimering tänka på att infoga data i en enda fråga. Detta kommer också att öka prestandan för hela systemet som helhet.

    Genomtänkt placering av data. Innan du sammanställer strukturen för databasen måste du fundera på om ett sådant antal tabeller och fält är nödvändigt. Kanske finns det ett sätt att slå ihop dem eller kassera några. Mycket ofta använder programmerare en överdriven mängd data som aldrig kommer att användas någonstans.

    Typer. För att spara utrymme och resurser måste du vara lyhörd för vilken typ av data du använder. Om det är möjligt att använda en typ som är mindre "tung" för minne, så är det nödvändigt att använda den. Till exempel, om det är känt att i ett givet fält det numeriska värdet inte kommer att överstiga 255, varför använda en 4-byte INT om det finns en TINYINT på 1 byte.

Slutsats

Sammanfattningsvis bör det noteras att SQL-strukturerade frågespråk nu används nästan överallt - webbplatser, webbtjänster, PC-program, applikationer för mobila enheter. Därför kommer kunskap om SQL att hjälpa alla utvecklingsgrenar.

Samtidigt skiljer sig ibland ändringar av den ursprungliga språkstandarden från varandra. Till exempel kan PL SQL-satser ha en annan syntax än i SQL Server. Innan du börjar utveckla med denna teknik bör du därför läsa manualerna för den.

I framtiden är det osannolikt att analoger som kan överträffa SQL när det gäller funktionalitet och prestanda dyker upp, så detta område är en ganska lovande nisch för alla programmerare.

SQL SELECT-satsen är avsedd för frågor för att välja data från en databas. Den kan användas både utan villkor (välja alla rader i alla kolumner eller alla rader i specifika kolumner) eller med flera villkor (välja specifika rader) som anges i WHERE-satsen. Låt oss bekanta oss med SQL-verktygen som kan användas för att ställa in dessa villkor på ett dataval, och även lära oss hur man använder SELECT-satsen i underfrågor.

VÄLJ för att välja tabellkolumner

En fråga med en SELECT-sats för att välja alla kolumner i en tabell har följande syntax:

VÄLJ * FRÅN TABLE_NAME

Det vill säga, för att välja alla kolumner i tabellen, efter ordet SELECT, måste du sätta en asterisk.

Exempel 1 Det finns en fast databas - Företag. Den har en tabell Org (företagets struktur) och personal (anställda). Det är nödvändigt att välja alla kolumner från tabellerna. Motsvarande fråga för att välja alla kolumner från organisationstabellen är följande:

VÄLJ * FRÅN ORG

Denna fråga kommer att returnera följande (för att förstora bilden, klicka på den med vänster musknapp):

Frågan för att välja alla kolumner från personaltabellen ser ut så här:

VÄLJ * FRÅN PERSONAL

Denna fråga returnerar följande:


För att välja vissa kolumner i tabellen, istället för en asterisk, måste vi lista namnen på alla kolumner som ska väljas, separerade med kommatecken:

VÄLJ KOLUMNER ATT VÄLJA FRÅN TABLE_NAME

Exempel 2 Låt det krävas att du väljer kolumnerna Depnumb och Deptname från Org-tabellen, som innehåller data om numren på företagets avdelningar respektive deras namn. Frågan för att få ett sådant urval skulle vara följande:

VÄLJ DEPNUMB, DEPTNAME FRÅN ORG

Och från personaltabellen måste du välja kolumnerna DEPT, NAME, JOB, som innehåller respektive data om numret på den avdelning där den anställde arbetar, hans namn och position:

VÄLJ AVDELNING, NAMN, JOBB FRÅN PERSONAL

För att välja vissa tabellrader, tillsammans med SELECT-satsen, behöver vi redan nyckelordet WHERE, som pekar på något värde eller flera värden som finns i raderna av intresse för oss. De enklaste villkoren specificeras med hjälp av jämförelse- och likhetsoperatorerna (, =), samt nyckelordet IS. Det kan finnas flera villkor, sedan listas de med nyckelordet AND. Radvalsfrågor har följande syntax:

Exempel 4 I det föregående exemplet valde vi rader från tabellen endast med värdet av en kolumn - DEPT. Anta att vi nu behöver välja data om anställda som arbetar på 38:e avdelningen och vars position är en anställd (Clerk). För att göra detta, i avsnittet WHERE, måste motsvarande värden listas med ordet OCH:


Exempel 5 Låt det vara nödvändigt att välja identifierare och namn från personaltabellen för de anställda vars provisionsstorlek är obestämd. För att göra detta, i avsnittet WHERE, innan du anger värdet på kolumnen COMM - NULL, måste du inte sätta ett likhetstecken, utan ordet IS:

Denna fråga returnerar följande data:


Jämförelsetecken används också för att indikera värdena i raderna som ska väljas.

Använda SELECT och IN, OR, BETWEEN, LIKE-predikaten

Predikat - orden IN, OR, BETWEEN, LIKE i WHERE-satsen - låter dig också välja specifika värdeintervall (IN, OR, BETWEEN) eller värden i rader (LIKE) som du vill välja från tabell. Frågor med IN, OR, BETWEEN predikat har följande syntax:

Frågor med LIKE-predikatet har följande syntax:

Exempel 7 Anta att du från personaltabellen vill välja namn, befattningar och antal arbetade år för anställda som arbetar på avdelningar med nummer 20 eller 84. Detta kan göras med följande fråga:

Resultat för körning av fråge:


Exempel 8 Anta att du nu vill välja samma data från tabellen Staff som i föregående exempel. Frågan med ordet OR liknar frågan med ordet IN och listar värdena av intresse inom parentes. Begäran kommer att vara följande:

Exempel 9 Låt oss från samma tabell välja namn, befattningar och antal arbetade år för anställda vars lön är mellan 15 000 och 17 000 inklusive:

Resultat för körning av fråge:


LIKE-predikatet används för att välja de strängar vars värden innehåller de tecken som anges efter predikatet mellan apostroferna (").

Exempel 10 Låt oss från samma tabell välja namn, befattningar och antal arbetade år för anställda vars namn börjar med bokstaven S och består av 7 tecken:

Understreckstecknet (_) betyder vilket tecken som helst. Resultat för körning av fråge:


Exempel 11. Låt oss från samma tabell välja namn, befattningar och antal arbetade år för anställda vars namn börjar med bokstaven S och innehåller andra bokstäver i valfritt antal:

Procentsymbolen (%) betyder valfritt antal tecken. Resultat för körning av fråge:


Värden som anges med predikaten IN, ELLER, MELLAN, LIKE kan inverteras med ordet NOT. Då kommer de begärda uppgifterna att ha motsatt betydelse. Om vi ​​använder NOT IN (20, 84) kommer uppgifterna om anställda som arbetar på alla avdelningar utom de med nummer 20 och 84 att visas. Genom att använda INTE MELLAN 15000 OCH 17000 kan vi få data för anställda vars lön inte ingår i intervallet från 15000 upp till 17000. En fråga med NOT LIKE kommer att returnera data för anställda vars namn inte börjar eller inte innehåller tecken specificerade med NOT LIKE.

Skriv SQL-frågor med SELECT och IN, NOT IN, MELLAN predikat själv, och se sedan lösningarna

Det finns en databas "Theater". Speltabellen innehåller speldata. Bordslag - om skådespelarnas roller. Skådespelarbordet handlar om skådespelare. Bordsdirektör - om direktörer. Tabellfält, primär- och främmande nycklar kan ses i figuren nedan (klicka på vänster musknapp för att förstora).


Exempel 12. Visa en lista över skådespelare som aldrig blivit godkända för huvudrollen. I teamtabellen finns data om huvudrollerna i kolumnen mainteam. Om rollen är huvudrollen markeras "Y" på motsvarande rad.

VÄLJ och BESTÄLL EFTER - sortera (beställa) rader

SQL SELECT-frågorna som har analyserats hittills har returnerat rader som kan vara i valfri ordning. Det är dock ofta nödvändigt att sortera strängar efter numerisk ordning, alfabetiskt och andra kriterier. Detta görs med hjälp av nyckelordet ORDER BY. Sådana frågor har följande syntax:

Exempel 15 Låt det krävas att man från personaltabellen väljer anställda som arbetar på avdelning nummer 84 och sorterar (ordnar) posterna efter antalet arbetade år i stigande ordning:

Ordet ASC indikerar att sorteringsordningen är stigande. Detta ord är valfritt, eftersom stigande sorteringsordning är standard. Resultat för körning av fråge:


Exempel 16 Låt det krävas att du väljer samma data som i föregående exempel, men sortera (ordna) posterna efter antalet arbetade år i fallande ordning:

Ordet DESC indikerar att sorteringsordningen är fallande. Resultat för körning av fråge:


SELECT och DISTINCT - ta bort dubbletter av rader

När unikhetsvillkoret inte anges för tabellradsvärden kan identiska rader visas i frågeresultaten. Ofta vill man bara visa unika strängar. Detta görs genom att använda DISTINCT-satsen efter SELECT-satsen.

Exempel 17. Låt det krävas att ta reda på vilka avdelningar som finns och vilka positioner bland avdelningar vars antal är mindre än 30. Detta kan göras med hjälp av följande fråga:

Resultat för körning av fråge:


SELECT-sats i SQL-underfrågor

Hittills har vi behandlat SQL-konstruktioner med en SELECT-sats, där villkoren för vilka data väljs och data som väljs finns i samma databastabell. I praktiken händer det ofta att data som ska väljas finns i en tabell och villkoren finns i en annan. Det är här subqueries kommer till undsättning: urvalsvillkorsvärdena returneras från en annan fråga (subquery) som också börjar med SELECT. Frågor med underfrågor kan producera en eller flera rader.

Exempel 18. Alla samma ORG och STAFF bord. Låt det krävas att ta reda på vilken avdelning den anställde med identifikationsnummer 280 arbetar och var denna avdelning är belägen. Men information om avdelningar lagras i ORG-tabellen, och information om anställda lagras i STAFF-tabellen. Detta kan göras med följande underfråga, där den yttre SELECT finns på ORG-tabellen och den inre SELECT är på STAFF-tabellen:

Resultat för körning av fråge:


Exempel 19. Låt nu det krävs att ta reda på vilka avdelningar (utan dubbelarbete) anställda med en lön på mindre än 13 000. För att göra detta anges i WHERE-delen av den yttre SELECT (frågan till ORG-tabellen) ett villkor som tar ett värdeintervall (IN), och det inre SELECT (till STAFF-tabellen) returnerar bara det nödvändiga värdeintervallet:

Relationsdatabaser och SQL-språk

Disciplin: Databaser

SpråkoperatörerSQL

SQL-språket innehåller operatorer av olika kategorier. Varje SQL-sats består av reserverade ord och ord som definieras av användaren i enlighet med etablerade syntaktiska regler. Som med många programmeringsspråk är de flesta av språkets satskomponenter skiftlägesokänsliga. Undantaget från denna regel är som vanligt teckendata, som måste vara skiftlägesmedvetna och använda den som behövs för att representera data.

För att skriva påståenden på språket antas ett fritt format, vilket gör det möjligt att göra SQL-programmet mer läsbart genom indrag och justering.

    varje fras i uttalandet måste börja på en ny rad;

    början av varje fras måste vara i linje med början av resten av påståendets fraser;

    varje del av frasen ska börja på en ny rad med lite indrag i förhållande till början av hela frasen, vilket gör att du kan markera de underordnade delarna;

    Vissa konventioner gäller för skrivoperatorer:

    versaler används för att skriva reserverade ord;

    små bokstäver används för att skriva användardefinierade ord;

    den vertikala stapeln "|"" indikerar behovet av att välja ett av flera värden;

    lockiga hängslen definierar ett nödvändigt element;

    hakparenteser definierar ett valfritt element;

    ellipsen "..." används för att indikera den valfria möjligheten att upprepa konstruktionen, från noll till flera gånger.

Datadefinitionsoperatorer (tabell 1) används för att beskriva de datastrukturer som används. Den här kategorin innehåller följande påståenden: skapa tabell, släpp tabell, ändra tabell, skapa vy, ALTER VIEW, DROP VIEW.

bord 1 . Data Definition Operatörer

Operatör Förklaring

skapa bord

Släpp bord

ändra tabell

SKAPA VY Skapa en vy

ändra vy

drop view

Datamanipuleringsoperatorer, som utgör nästa kategori av operatorer, är utformade för att fylla tabeller med data och för att uppdatera informationen som laddas in i dem. Denna kategori inkluderar följande operatorer: ta bort, infoga, uppdatera (tabell 2).

Tabell 2 . Operatörer för datamanipulation

OperatörFörklaring

Ta bort Tar bort en eller flera rader som matchar villkoren

filtrering, från bastabell

INSERT Infogar en rad i bastabellen

update Uppdaterar värdena för en eller flera kolumner i en eller flera

flera rader som matchar filtervillkoren

För att välja information från databasen är frågespråket avsett, vilket i SQL-språket representeras av en enda select-sats (tabell 3).

Tabell 3 Frågespråk

Operatör Förklaring

välj Väljer rader; operatör som låter dig bilda resultatet

tabell som matchar frågan

Förutom de angivna kategorierna av operatörer, vars syfte inte är svårt att föreställa sig efter att ha läst förklaringarna i tabellerna, är det nödvändigt att peka ut ytterligare två: transaktionshanteringsoperatörer (tabell 4) och verktyg för dataadministration (tabell 5). .

Tabell 4. Transaktionshantering

Operatörens förklaring

begå Slutför transaktionen - slutför behandlingen av information,

kombineras till en transaktion

rollback Återställ transaktion - ångra ändringar som gjorts under körningen

tillstånd för databasen, markera den så att du kan återvända till den senare

Tabell 5 . Dataadministration

Operatörens förklaring

ÄNDRA DATABAS Ändra uppsättningen av basobjekt i databasen, begränsningar ang

hela databasen

ALTER DAREA Ändra ett tidigare skapat lagringsområde

ÄNDRA LÖSENORD Ändra lösenordet för hela databasen

SKAPA DATABAS Skapa en ny databas

SKAPA DBAREA Skapa ett nytt lagringsområde och gör det tillgängligt för hosting

SLIP DATABAS Släpp en befintlig databas

DROP DBAREA Ta bort ett befintligt lagringsområde (om det för närvarande inte innehåller

aktiv data finns)

BEHANDLA Ge åtkomsträttigheter till ett antal åtgärder på något databasobjekt

REVOKE Återkalla åtkomsträttigheter till något objekt eller några åtgärder på

objekt

I kommersiella DBMS utökas uppsättningen av grundläggande operatörer. De flesta DBMS innehåller satser för att definiera och ta bort körindex för lagrade procedurer och satser för att definiera utlösare.

Det är vanligt att börja bekanta sig med detta språk genom att överväga kapaciteten hos frågespråket, som i SQL-språket representeras av en enda select-sats, eftersom denna kraftfulla sats, naturligtvis, också är den mest komplexa. Dessutom är det intressant att se hur det kan användas tillsammans med datamanipuleringsoperatörer i framtiden.

    Välj uttalandeVÄLJ . Bildande av frågor till databasen

Syftet med select-satsen är att välja och visa data från en eller flera databastabeller. Denna extremt kraftfulla, mest använda operator implementerar alla relationella algebraoperationer. Samma begäran kan implementeras på flera sätt, som kan skilja sig markant i exekveringstid.

Välj uttalandeformat:

VÄLJ *|<список полей>FRÅN<список таблиц>

Den angivna ordningen för fraserna i select-satsen kan inte ändras, men inte alla delar av den krävs. Obligatoriska satser inkluderar endast välj och från satser. Alla andra delar av operatören kan användas efter programmerarens gottfinnande. Förklaring:

□ Fras Välj:

Sökordsnärvaro Allt(standard) betyder att den resulterande tabellen inkluderar alla rader som uppfyller frågevillkoren, vilket kan leda till att dubbletter av rader visas i den resulterande tabellen;

Nyckelord distinkt utformad för att bringa tabellen i linje med principerna för relationsteori, som förutsätter frånvaron av dubbla rader;

Symbol " * " definierar en mycket vanlig situation där resultatuppsättningen inkluderar alla kolumner från den ursprungliga frågetabellen.

□ I en fras från en lista med källtabeller för frågan anges.

□ I en fras var villkor för val av resultatrader eller villkor för att sammanfoga rader med källtabeller definieras, liknande operationen för villkorlig sammanfogning i relationalgebra. Följande predikat kan användas som urvalsvillkor:

Jämförelser "= ,<>, >, <, >=, <=" - для сравнения результатов вы­числения двух выражений; более сложные выражения строятся с по­мощью логических операторов AND, OR, NOT; значения выражений вычисляются в порядке, который определяется приоритетом исполь­зуемых операторов и наличием скобок в выражении;

mellanAochI- predikatet är sant när det utvärderade värdet av uttrycket faller inom det angivna intervallet (predikatet intemellanaochI sant när värdet som jämförs inte faller inom det angivna intervallet);

i- predikatet är sant när det jämförda värdet ingår i uppsättningen av givna värden; i det här fallet kan uppsättningen värden specificeras genom en enkel uppräkning eller en inbyggd underfråga (not in-predikatet är sant när det jämförda värdet inte ingår i den specificerade uppsättningen);

tycka om Och intetycka om- predikat, vars betydelse är motsatt, kräver specifikationen av en mall med vilken det givna värdet jämförs; liknande predikat är sant när värdet som jämförs matchar mönstret, och falskt annars;

ÄRnull- ett predikat som används för att detektera likheten mellan värdet av något attribut och ett odefinierat värde:

    <имя атрибута> ÄRnull- tar värdet true om det angivna attributet i denna sträng har ett odefinierat värde och false, annars;

    <имя атрибута> ÄRINTEnull– allt händer tvärtom.

existera Och inteexistera Används i inline underfrågor.

□ I en fras gruppförbi listan över grupperingsfält är inställd.

□ I en fras har de predikat-villkor som åläggs varje grupp är satta.

□ I en fras beställaförbi en lista med resultatordningsfält anges, det vill säga en lista med fält som bestämmer sorteringsordningen i den resulterande tabellen.

SQL-standarden definierar konceptet med ett NULL-värde, vilket gjorde det nödvändigt att använda logik med tre värden, där alla logiska operationer utförs i enlighet med sanningstabellen nedan (tabell 6).

Tabell 6 . sanningstabell

A OCH B

TÅNGRA

1.1. Enkla frågor

Begäran 1

Visa information om universitetets institutioner.

Denna uppgift reduceras till att välja och visa information från en tabell, och alla dess rader och alla dess kolumner är föremål för utdata:

VÄLJ * FRÅN avdelning

Resultatet av en sådan fråga kommer att vara en tabell som innehåller information om alla avdelningar vid universitetet:

kod kaf

Namn kaf

Nom_telef

Nom_Auditoria

Col_sotr

Ivanov T.M.

Allmän matematik

Makhov K L.

Ross L.T.

Firsov S.S.

Tillämpad matematik

Lyakhova I.T.

Begäran 2

Visa telefonnummer till universitetsavdelningar.

Resultatet av en sådan fråga bör endast innehålla två kolumner: namn_ kaf Och Nom_ telef, så själva frågan bör se ut så här:

VÄLJ Namn_kaf, Nom_telef FRÅN kafedra

Resultattabell:

namnkaf Nomjelef

Fysik 23-34-24

Allmän matematik 23-65-43

Berättelser 23-78-72

Diagram 23-99-77

Tillämpad matematik 23-66-62

I frågorna som bildades ovan var det nödvändigt att visa alla rader i tabellen som specificerades i from-satsen. Om urvalet behöver begränsa antalet utdatarader enligt något villkor, kan detta uppnås genom att använda where-satsen i frågan. Du kan inkludera ett eller flera radvalsvillkor i where-satsen.

Begäran 3

Visa information om avdelningen för grafik.

VÄLJ * FRÅN kafedra WHERE Name_kaf = "Charts"

Svaret på en sådan begäran innehåller endast en rad:

Kod.kaf Namn_kaf NomjelefNom_Auditoria Col_sotr Zav_kaf

004 Charts 23-99-77 385 18 Firsov C.C.

Begäran 4

Visa information om universitetsavdelningarna på bottenvåningen, med hänsyn till att rummen på bottenvåningen ligger i intervallet 1 till 99.

Förfrågan kommer att se ut så här:

VÄLJ * FRÅN kafedra WHERE Nom_Auditoria MELLAN 1 OCH 99

Frågeresultat:

KodjcafNamn_kafNorn lelef Norn Audit oria Coi_sotr Zavkaf

002 Allmän matematik 23-65-43 003 22 Makhov K.L.

matematik

I allmänhet visas raderna i den resulterande tabellen i ett oordnat tillstånd på något sätt. Att titta på och analysera sådant material är inte alltid bekvämt. Ordningssatssatsen används för att sortera rader efter valfri kolumn. Den innehåller en kommaseparerad lista med kolumnnamn som du vill sortera den visade informationen efter. Denna fras måste alltid placeras sist i select-satsen och, om den finns, blir det möjligt att sortera rader i stigande (asc) eller fallande (fallande) värden i den angivna kolumnen eller kombinationen av de angivna kolumnerna, oavsett om dessa kolumner finns i den resulterande tabellen eller inte.

Begäran 5

Visa information om universitetets institutioner i formuläret sorterat efter kolumnennamn_ kafi stigande ordning.

Förfrågan kommer att se ut så här:

VÄLJ * FRÅN kafedra BESTÄLL AV Name_caf ASC

Resultatet av denna begäran:

Kod_kaf Name_kaf Nomjelef Nom_Auditoria Col_sotr Zav kaf

004 Charts 23-E9-77 385 18 FirsovS.S.

003 Berättelser 23-78-72 465 16 Ross L.T.

002 Allmän ma- 23-65-43 003 22 Makhov K.L.

ämnen

005 Ansökt 23-66-62 028 24 Lyakhova I.T.

matematik

001 Fysiker 23-34-24 132 25 Ivanov T.M.

Det är ofta användbart att sortera den visade informationen i flera kolumner för att förbättra synligheten. För att göra detta måste sorteringskolumnnamn listas separerade med kommatecken i ordningsföljd av sats. I det här fallet kommer utdatatabellen att innehålla rader ordnade efter den första kolumnen specificerad i order by-satsen, och rader som har lika värden i denna kolumn kommer att ordnas efter värdena i den andra kolumnen, och så vidare från vänster till höger.

Om du upptäcker ett fel, välj en textbit och tryck på Ctrl + Retur
DELA MED SIG: