Grundläggande sql-kommandon. Dataåtkomstmekanism. Strukturerat frågespråk SQL. Historik och standarder för SQL. Bearbetar SQL-kommandon av Oracle-servern. Begäranden om borttagning

All konceptuell information om relationsdatabaser och tabeller är bara användbar om du vet hur man interagerar med data. SQL-språket består av strukturerade kommandon för att lägga till, ändra och ta bort data från en databas. Dessa kommandon utgör grunden för interaktion med PostgreSQL-servern.

Det här avsnittet handlar om "anatomin" av SQL-kommandon. Den undersöker de strukturella komponenterna i kommandon och beskriver funktionerna för varje komponent och deras ömsesidiga relationer. Standard PostgreSQL kommandoradsklient, psql, skriver ut resultatet av kommandona i exemplen som ges.

De flesta av SQL-kommandoexemplen är specifika för booktown-databasen. All psql-utdata har prefixet formen booktown=# .

Några exempel använder testdb-testdatabasen. Som standard visar psql-prompten endast databasnamnet och =#-symbolerna, vilket indikerar att systemet är redo att utfärda ett nytt kommando (även om du kommer att se symbolen = dynamiskt ändras när tillståndet för SQL-inmatningen övervakas). Boken ger denna uppmaning tillsammans med SQL-inmatning och -utgång för att hjälpa dig att bli bekväm med psql-klientens utdata.

Psql-klienten beskrivs i detalj i kapitel 4. Den nämns här endast för att förtydliga stilen för SQL-kommandoexemplen.

Notera
Booktown-databasschemat (tillsammans med exempelposter) finns i filen booktown.sql på CD:n. För att installera denna databas, skriv in kommandot psql - U postgres template! vid kommandotolken. - f /mnt/cdrom/booktown.sql, där /mnt/cdrom är sökvägen till den monterade CD:n och postgres är PostgreSQL superanvändarnamnet
.

Anatomi av SQL-kommandon

SQL-kommandon börjar alltid med en handling (verb) - ett ord eller en grupp av ord som beskriver operationen som utförs. Dessutom innehåller ett SQL-kommando vanligtvis en eller flera sektioner som klargör dess innebörd. I tabell 3.2 listar de viktigaste åtgärderna för SQL.

Tabell 3.2. Grundläggande PostgreSQL-åtgärder.

Åtgärdsbeskrivning
SKAPA DATABAS Skapa en ny databas
SKAPA INDEX Skapa ett nytt index på en tabellkolumn
SKAPA SEKVENS Skapa en ny sekvens i en befintlig databas
SKAPA BORD Skapa en ny tabell i en befintlig databas
SKAPA TRIGGER Skapa en ny triggerdefinition
SKAPA VY Skapa en ny vy för en befintlig tabell
VÄLJ Välja poster från en tabell
FÖRA IN Infoga en eller flera nya poster i en tabell
UPPDATERING Ändring av data i befintliga poster
RADERA Ta bort befintliga poster från en tabell
SLIPPA DATABAS Förstör en befintlig databas
SLIPP INDEX Ta bort ett kolumnindex från en befintlig tabell
DROPPSEKVENS Förstör en befintlig sekvensgenerator
SLÄPP BORD Att förstöra ett befintligt bord
SLÄPP AVTRÖREN Förstör en befintlig triggerdefinition
DROP VIEW Förstör en befintlig vy
SKAPA ANVÄNDARE Skapa ett nytt PostgreSQL-användarkonto i systemet
ÄNDRA ANVÄNDARE Ändra ett befintligt PostgreSQL-användarkonto
SLIPPA ANVÄNDARE Ta bort ett befintligt PostgreSQL-användarkonto
BEVILJA Bevilja åtkomsträttigheter till ett databasobjekt
ÅTERKALLA Ta bort åtkomsträttigheter till ett databasobjekt
SKAPA FUNKTION Skapa en ny SQL-funktion i en databas
SKAPA SPRÅK Skapa en ny språkdefinition i databasen
SKAPA OPERATOR Skapa en ny SQL-sats i databasen
SKAPA TYP Skapa en ny SQL-datatyp i en databas

Structured Query Language utvecklades av IBM i början av 1970-talet. 1986 standardiserades SQL först av ANSI-organisationerna.

SQL är ett kraftfullt och samtidigt enkelt språk för databashantering. Det stöds av nästan alla moderna databaser. SQL är uppdelad i två underuppsättningar av kommandon: DDL (Data Definition Language) och DML (Data Manipulation Language). DDL-kommandon används för att skapa nya databaser, tabeller och kolumner, och DML-kommandon används för att läsa, skriva, sortera, filtrera, radera data.

Den här artikeln kommer att titta närmare på DML-kommandon, eftersom de används mycket oftare.

DDL-kommandon

CREATE - används för att skapa nya tabeller, kolumner och index.

DROP - används för att ta bort kolumner och index.

ALTER - används för att lägga till nya kolumner i tabeller och ändra specifika kolumner.

DML-kommandon

SELECT är det vanligaste kommandot och används för att hämta en uppsättning data från en databastabell. Kommandot SELECT har följande syntax:

VÄLJ fältlista1 FRÅN tabellnamn ]

Operatörer inom hakparenteser är valfria, och den vertikala stapeln betyder att en av de angivna fraserna måste finnas med, men inte båda.

Låt oss till exempel skapa en enkel fråga för att hämta data från fälten "namn" och "telefon" i tabellen "vänner":

VÄLJ namn, telefon FRÅN vänner

Om du behöver få fram alla fält i tabellen är det inte nödvändigt att lista dem, skriv bara en asterisk (*):

VÄLJ * FRÅN vänner

För att utesluta dubbletter från den visade listan, använd nyckelordet DISTINCT:

VÄLJ DISTINKT namn FRÅN vänner

Om du behöver få en separat post används WHERE-satsen. Till exempel måste vi få telefonnumret till "Vasya Pupkin" från tabellen "vänner":

VÄLJ * FRÅN vänner VAR namn = "Vasya Pupkin"

eller vice versa, vi måste ta reda på vem som äger telefonen 44-65-01:

VÄLJ * FRÅN vänner VAR telefon = "44-65-01"

Dessutom kan du använda jokertecken och därigenom skapa sökmönster. LIKE-operatorn används för detta. LIKE-operatorn har följande substitutionsoperatorer:

* - matchar en sträng som består av ett eller flera tecken;

Matchar vilket tecken som helst;

Matchar ett tecken från en specifik uppsättning;

Till exempel, för att hämta poster från "namn"-fältet som innehåller ordet "Vasya", skulle begäran se ut så här:

VÄLJ FRÅN vänner VAR namn TYCKA OM "*Vasya*"

ORDER BY-satsen används för att bestämma i vilken ordning data returneras. Utan denna operatör kan ordningen på de returnerade data inte förutsägas. Nyckelorden ASC och DESC låter dig bestämma sorteringsriktningen. ASC sorterar i stigande ordning och DESC-ordningar i fallande ordning.

Till exempel skulle en begäran om att få en lista över poster från "namn"-fältet i alfabetisk ordning se ut så här:

VÄLJ FRÅN vänner SORTERA EFTER namn

Observera att nyckelordet ASC inte krävs eftersom det är standard.

INSERT - detta kommando används för att lägga till en ny post i tabellen. Det är skrivet så här:

SÄTT IN I tabellnamn VÄRDEN ( värdelista)

Observera att värdetyperna i värdelistan måste matcha värdetyperna i tabellfälten, till exempel:

SÄTT IN I vänner VÄRDEN ( "Anka the Machine Gunner", "32-09-81" )

Det här exemplet lägger till en ny post i väntabellen med de angivna värdena.

UPDATE - Detta kommando används för att uppdatera data i en tabell och används oftast tillsammans med WHERE-satsen. Kommandot UPDATE har följande syntax:

UPPDATERING tabellnamn UPPSÄTTNING fält namn = menande

Om du utelämnar WHERE-satsen kommer data i alla definierade fält i tabellen att uppdateras. Låt oss till exempel ändra Vasya Pupkuns telefonnummer:

UPPDATERING vänner UPPSÄTTNING telefon = "55-55-55" VAR namn = "Vasya Pupkin"

DELETE - som du säkert redan förstått, används detta kommando för att radera poster från tabellen. Precis som UPDATE används kommandot DELETE vanligtvis med en WHERE-sats, om denna sats utelämnas kommer all data från den angivna tabellen att raderas. Syntaxen för DELETE-kommandot är följande:

DELETE FRÅN tabellnamn

Låt oss till exempel ta bort den här irriterande Vasya Pupkin från vårt bord :) :

DELETE FRÅN vänner VAR namn = "Vasya Pupkin"

Slutet

I den här artikeln pratade jag om de viktigaste SQL-operatorerna, de är helt tillräckliga för att arbeta med databaser; jag kommer att prata om de återstående operatorerna mer i detalj en annan gång.

SQL eller Structured Query Language är ett språk som används för att hantera data i ett relationsdatabassystem (RDBMS). Den här artikeln kommer att täcka vanliga SQL-kommandon som alla programmerare bör känna till. Detta material är idealiskt för dig som vill fräscha upp sina kunskaper om SQL inför en anställningsintervju. För att göra detta, titta på exemplen som ges i artikeln och kom ihåg att du studerade databaser i par.

Observera att vissa databassystem kräver ett semikolon i slutet av varje sats. Semikolonet är standardpekaren till slutet av varje sats i SQL. Exemplen använder MySQL, så ett semikolon krävs.

Skapa en databas för exempel

Skapa en databas för att visa hur team fungerar. För att fungera måste du ladda ner två filer: DLL.sql och InsertStatements.sql. Därefter öppnar du en terminal och loggar in på MySQL-konsolen med följande kommando (artikeln förutsätter att MySQL redan är installerat på systemet):

Mysql -u root -s

Ange sedan ditt lösenord.

Kör följande kommando. Låt oss kalla databasen "universitet":

SKAPA DATABAS universitet; ANVÄND universitet; KÄLLA; SOURCE Kommandon för att arbeta med databaser1. Visa tillgängliga databaser VISA DATABASER; 2. Skapa en ny databas CREATE DATABASE; 3. Välja en databas att använda USE; 4. Importera SQL-kommandon från .sql-filen SOURCE ; 5. Ta bort databasen DROP DATABASE ; Arbeta med tabeller6. Se de tillgängliga tabellerna i databasen SHOW TABLES;

7. Skapa en ny tabell SKAPA TABELL ( , , PRIMÄRNYCKEL (), UTLÄNDLIG KEY () REFERENSER ()); Integritetsbegränsningar när du använder CREATE TABLE

Du kan behöva skapa begränsningar för vissa kolumner i en tabell. När du skapar en tabell kan du ställa in följande begränsningar:

  • en tabellcell kan inte ha ett NULL-värde;
  • primärnyckel - PRIMARY KEY (kolnamn1, kolnamn2, ...) ;
  • främmande nyckel - UTLÄNDSK NYCKEL (kolnamnx1, …, kolnamnxn) REFERENSER tabellnamn(kolnamnx1, …, kolnamnxn) .

Du kan ange mer än en primärnyckel. I det här fallet får du en sammansatt primärnyckel.

Exempel

Skapa en tabell "instruktör":

CREATE TABLE-instruktör (ID CHAR(5), namn VARCHAR(20) NOT NULL, dept_name VARCHAR(20), lön NUMERIC(8,2), PRIMÄRNYCKEL (ID), FOREIGN KEY (avd_namn) REFERENSER avdelning(avd_namn));

8. Tabellinformation

Du kan se olika information (värdetyp, nyckel eller inte) om tabellkolumner med följande kommando:

BESKRIVA ;

9. Lägga till data i tabellen INSERT INTO (, , , …) VALUES (, , , …);

När du lägger till data till varje kolumn i en tabell behöver du inte ange kolumnnamn.

INSERT INTO VALUES (, , , ...);

10. Uppdatering av tabelldata UPDATE SET = , = , ... WHERE ; 11. Ta bort all data från tabellen DELETE FROM ; 12. Ta bort en tabell DROP TABLE ; Kommandon för att skapa frågor13. VÄLJ

SELECT används för att hämta data från en specifik tabell:

VÄLJ FRÅN ;

Följande kommando kan visa all data från tabellen:

VÄLJ FRÅN ;

14. VÄLJ DISTINKT

Tabellkolumner kan innehålla dubbletter av data. Använd SELECT DISTINCT för att bara hämta icke-duplicerade data.

VÄLJ DISTINCT , , … FRÅN ;

15. VAR

Du kan använda nyckelordet WHERE i SELECT för att ange villkor i en fråga:

VÄLJ , , ... FROM VAR ;

Följande villkor kan anges i begäran:

  • textjämförelse;
  • jämförelse av numeriska värden;
  • logiska operatorer AND (och), OR (eller) och NOT (negation).
Exempel

Prova följande kommandon. Var uppmärksam på villkoren som anges i VAR:

SELECT * FROM course WHERE dept_name=’Comp. Sci.'; VÄLJ * FRÅN kurs VAR poäng>3; SELECT * FROM course WHERE dept_name="Comp. Sci." OCH poäng>3;

16. GRUPP AV

GROUP BY-operatorn används ofta med aggregerade funktioner som COUNT, MAX, MIN, SUM och AVG för att gruppera utdatavärden.

VÄLJ , , … FRÅN GRUPP EFTER ;

Exempel

Låt oss visa antalet kurser för varje fakultet:

SELECT COUNT(course_id), dept_name FRÅN kurs GROUP BY dept_name;

17. HA

Nyckelordet HAVING lades till i SQL eftersom WHERE inte kan användas med aggregerade funktioner.

VÄLJ , , ... FRÅN GRUPPEN GENOM ATT HA

Exempel

Låt oss visa en lista över fakulteter som har mer än en kurs:

VÄLJ ANTAL(kurs_id), avd_namn FRÅN kurs GRUPPER EFTER avd_namn ATT HA ANTAL(kurs_id)>1;

18. BESTÄLL AV

ORDER BY används för att sortera frågeresultat i fallande eller stigande ordning. ORDER BY kommer att sortera i stigande ordning om inte ASC eller DESC anges.

VÄLJ , , … FRÅN BESTÄLLNING AV , , … ASC|DESC;

Exempel

Låt oss visa en lista över kurser i stigande och fallande poängordning:

VÄLJ * FRÅN kurs BESTÄLL EFTER poäng; VÄLJ * FRÅN kurs BESTÄLLNING EFTER poäng DESC;

19. MELLAN

BETWEEN används för att välja datavärden från ett specifikt intervall. Numeriska och textvärden, såväl som datum, kan användas.

VÄLJ , , … VARFRÅN MELLAN OCH ;

Exempel

Låt oss visa en lista över instruktörer vars lön är mer än 50 000, men mindre än 100 000:

VÄLJ * FRÅN instruktör VAR lön MELLAN 50000 OCH 100000;

20. GILLA

LIKE-operatorn används i WHERE för att ange ett sökmönster för ett liknande värde.

Det finns två gratisoperatörer som används i LIKE:

  • % (inga, ett eller flera tecken);
  • _ (ett tecken).
VÄLJ , , ... FRÅN LIKNANDE ; Exempel

Låt oss visa en lista över kurser vars namn innehåller "till" och en lista över kurser vars namn börjar med "CS-":

VÄLJ * FRÅN kurs WHERE titel LIKE '%to%'; SELECT * FROM course WHERE course_id LIKE "CS-___";

21. IN

Med IN kan du ange flera värden för WHERE-satsen:

VÄLJ , , … FROM WHERE IN (, , …);

Exempel

Låt oss visa en lista över studenter från Comp majors. Sci., Fysik och El. Eng.:

SELECT * FROM student WHERE dept_name IN ('Comp. Sci.', 'Physics', 'Elec. Eng.');

22. GÅ MED

JOIN används för att länka två eller flera tabeller med vanliga attribut inom dem. Bilden nedan visar de olika sätten att gå med i SQL. Observera skillnaden mellan en vänster yttre koppling och en höger yttre koppling:

VÄLJ , , … FRÅN JOIN ON = ;

Exempel 1

Vi kommer att visa en lista över alla kurser och relevant information om fakulteterna:

VÄLJ * FRÅN kurs GÅ MED avdelning PÅ course.dept_name=department.dept_name;

Exempel 2

Vi kommer att visa en lista över alla obligatoriska kurser och detaljer om dem:

VÄLJ prereq.course_id, title, dept_name, credits, prereq_id FROM prereq VÄNSTER YTTRE GÅ MED kurs PÅ prereq.course_id=course.course_id;

Exempel 3

Vi kommer att visa en lista över alla kurser, oavsett om de är obligatoriska eller inte:

SELECT course.course_id, title, dept_name, credits, prereq_id FRÅN prereq HÖGER YTTRE JOIN-kurs PÅ prereq.course_id=course.course_id;

23. Utsikt

View är en virtuell SQL-tabell skapad som ett resultat av exekvering av ett uttryck. Den innehåller rader och kolumner och är väldigt lik en vanlig SQL-tabell. View visar alltid den senaste informationen från databasen.

Skapar CREATE VIEW SOM SELECT , , ... FROM WHERE ; Ta bort DROP VIEW ; Exempel

Låt oss skapa en vy som består av kurser med 3 poäng:

24. Aggregerade funktioner

Dessa funktioner används för att få ett aggregerat resultat relaterat till den aktuella informationen. Följande är vanliga aggregatfunktioner:

  • COUNT (kolnamn) - returnerar antalet rader;
  • SUM (col_name) - returnerar summan av värdena i denna kolumn;
  • AVG (kolnamn) - returnerar medelvärdet för en given kolumn;
  • MIN (kolnamn) - returnerar det minsta värdet av en given kolumn;
  • MAX (kolnamn) - Returnerar det största värdet i en given kolumn.
25. Kapslade underfrågor

Kapslade underfrågor är SQL-frågor som inkluderar SELECT-, FROM- och WHERE-satser kapslade i en annan fråga.

Exempel

Låt oss hitta kurser som undervisades hösten 2009 och våren 2010:

SELECT DISTINCT course_id FROM section WHERE termin = 'Höst' AND year= 2009 AND course_id IN (SELECT course_id FROM section WHERE termin = 'Vår' AND year= 2010);

Kirill Pozdeev, översättare

Hur Yandex använder din data och maskininlärning för att anpassa tjänster -.

SQL (ˈɛsˈkjuˈɛl; English structured query language - "structured query language") är ett deklarativt programmeringsspråk som används för att skapa, modifiera och hantera data i en relationsdatabas.

Överensstämmelse med SQL-standarder för olika databaser:

SQL (Structured Query Language - strukturerat frågespråk). SQL är i första hand ett informationslogiskt språk utformat för att beskriva lagrad data, för att hämta lagrad data och för att modifiera data.

SQL är inte ett programmeringsspråk. Eftersom SQL har blivit mer komplext har det blivit mer av ett applikationsprogrammeringsspråk och användare kan nu använda visuella frågebyggare.

SQL är ett skiftlägesokänsligt språk. Strängar i SQL omges av enkla citattecken.

SQL-språket är en samling satser. SQL-satser är indelade i:

    Data Definition Language (DDL) - schemabeskrivningsspråk i ANSI, består av kommandon som skapar objekt (tabeller, index, vyer, etc.) i databasen (CREATE, DROP, ALTER, etc.).

    Datamanipulationsoperatorer (Data Manipulation Language, DML) är en uppsättning kommandon som bestämmer vilka värden som presenteras i tabeller när som helst (INSERT, DELETE, SELECT, UPDATE, etc.).

    definitionssatser för dataåtkomst (Data Control Language, DCL) - består av verktyg som avgör om användaren ska tillåta att utföra vissa åtgärder eller inte (GRANT/REVOKE, LOCK/UNLOCK).

    Transaction Control Language (TCL) operatörer

Tyvärr används dessa termer inte universellt i alla implementeringar. De betonas av ANSI och är användbara på en konceptuell nivå, men de flesta SQL-program gör inte mycket för att behandla dem separat, så de blir i huvudsak funktionella kategorier av SQL-kommandon.

VÄLJ sektion JOIN

    Enkel JOIN (=korsning JOIN =INNER JOIN) - betyder att endast visa de gemensamma posterna för båda tabellerna. Hur poster anses delade bestäms av fälten i join-uttrycket. Till exempel följande post: FROM t1 JOIN t2 ON t1. id = t2. id

    betyder att poster med samma id som finns i båda tabellerna kommer att visas.

    LEFT JOIN (eller LEFT OUTER JOIN) betyder att visa alla poster från den vänstra tabellen (den som kommer först i join-uttrycket) oavsett om det finns motsvarande poster i den högra tabellen. Om det inte finns några poster i den högra tabellen sätts det tomma värdet NULL.

    RIGHT JOIN (eller RIGHT OUTER JOIN) fungerar i motsats till LEFT JOIN - den visar alla poster från den högra (andra) tabellen och endast de som matchar från den vänstra (första) tabellen.

    Andra typer av JOIN-kopplingar: MINUS - subtraktion; FULL JOIN - komplett anslut; CROSS JOIN - "Alla med alla" eller den kartesiska produktdriften.

SELECT JOIN SUBSTRING INSERT INTO users_auth VALUES (standard, "root" , MD5("root"));

    INSERT IGNORE Om du anger nyckelordet IGNORE i ett INSERT-kommando med rader som har flera värden, kommer alla rader som har dubbletter av PRIMÄRA eller UNIKA nycklar i den tabellen att ignoreras och inte infogas. Om du inte anger IGNORE, avbryts denna infogningsoperation när den stöter på en rad som har ett dubblettvärde för en befintlig nyckel

INFOGA IGNORERA INTO priser VÄRDEN(DEFAULT, 1, 1111, "Fr", 50, 50, 1, 1)

Kommandot REPLACE skiljer sig från INSERT endast genom att om det finns en post i tabellen med samma värde i det indexerade fältet (unikt index) som den nya posten, så raderas den gamla posten innan den nya läggs till.

UPPDATERING< tablename>SET ( | ) .,. .< COLUMN name> = < VALUE expresslon>[VAR< predlcate>| VAR STRÖM AV< cursor name>(*endast för bilaga*) ] ; UPPDATERA peers SET zone= "voip" ; # uppdatera alla rader i zonkolumnen i peers-tabellen UPDATE stat SET whp= "13x13x13" WHERE id = 1 ; UPPDATERA länder SET nm_ukr= ( SELECT del_countries. ukrainian FROM del_countries WHERE länder. nm_en= del_countries. engelska );

WordPress-användning, inställning: i tabellen wp_posts, radera alla förekomster av raden

UPPDATERA wp_posts SET post_content = ERSÄTT (post_content, "" , "" );

DELETE FRÅN

[ VAR | WHERE CURRENT OF (*endast bilaga*) ];

DELETE FROM Peers; // kommer att ta bort allt innehåll i tabellen Peers. DELETE FRÅN FinR där dag Gillar "20120415%"; // DELETE FROM priser DÄR taxesheet_id NOT I (VÄLJ ID FRÅN taxesheets);

ÄNDRA

    Ändra standardvärdet för en kolumn. För att ställa in ett nytt standardvärde för en kolumn, använd ett kommando som: ALTER TABLE products ALTER COLUMN price SET DEFAULT 7.77 ; ELLER ÄNDRA TABELL nases ALTER COLUMN zone SET DEFAULT "voip" ;

    Observera att körning av detta kommando inte påverkar befintliga rader i tabellen; kommandot kommer bara att ändra standardvärdet för framtida INSERT-kommandon. För att ta bort alla standardvärden, använd

    ALTER TABLE produkter ALTER COLUMN price DROP DEFAULT ;

    Kommandot gör samma sak som att ställa in standardvärdet till null. Eftersom radering av ett standardvärde implicit sätter det till null, kommer inga fel att rapporteras om ett befintligt standardvärde tas bort.

    Fungerar som standardvärde för kolumnen. I det här fallet har tidsspårningskolumnen en tidsstämpeldatatyp, vilket innebär att dess standardvärde kan ställas in på den inbyggda now()-funktionen, dvs. när en ny rad läggs till i kolumnen kommer det aktuella datumet och tiden att registreras ALTER TABLE timetracking ALTER COLUMN date_wd SET DEFAULT now();

    Lägger till en begränsning. För att lägga till en begränsning används tabellsyntaxen för att definiera den begränsningen. Till exempel: ALTER TABLE-produkter ADD CHECK (namn ""); ALTER TABLE-produkter ADD CONSTRAINT some_name UNIQUE (product_nr); ALTER TABLE produkter LÄGG TILL UTLÄNDSK NYCKEL (product_group_id) REFERENSER product_groups;

    För att lägga till en icke-null-begränsning som inte kan skrivas som en tabellrestriktion, använd syntaxen:

    ALTER TABLE products ALTER COLUMN product_no SET NOT NULL;

    Den angivna begränsningen kommer att tillämpas omedelbart, så data i tabellen måste uppfylla den innan begränsningen läggs till.

Aggregationsfunktioner

Det finns 5 aggregerade funktioner i standard SQL:

    COUNT - funktionen returnerar antalet rader som uppfyller vissa kriterier.,

    SUM - returnerar summan (totalt) av värdena i en specifik kolumn. Kolumnrader med NULL-värden ignoreras av SUM-funktionen.

    AVG - medelvärde i kolumnen,

Aggregationsfunktioner används som fältnamn i en SELECT-frågesats, med ett undantag: fältnamn används som argument. SUM- och AVG-funktionerna kan bara fungera med numeriska fält. Funktionerna COUNT, MAX, MIN fungerar med både numeriska och teckenfält. När de tillämpas på teckenfält kan MAX- och MIN-funktionerna fungera med ASCII-motsvarigheterna till tecknen.

SELECT Count(Books.ID) SOM [Antal böcker] FRÅN böcker;

Genom att använda CROUP BY kan du tillämpa aggregerade funktioner på grupper av poster.

VÄLJ Count(Books.ID) SOM [Antal böcker] FRÅN Books GROUP BY [Writer];

Visningar (VIEW)

En VIEW är ett dataobjekt som inte innehåller några data om sin ägare. Det är en typ av tabell vars innehåll hämtas från andra tabeller genom att köra en fråga.

Bastabeller är tabeller som innehåller data. Det finns dock en annan typ av tabell: - vyer (VIEW). Vyer är tabeller vars innehåll är valt eller hämtat från andra tabeller. De fungerar i frågor och DML-satser precis som huvudtabeller, men innehåller inga egna data. Vyer är som fönster genom vilka du ser information som faktiskt är lagrad i den underliggande tabellen.

    CREATE VIEW-kommandot. Vyn skapas med kommandot CREATE VIEW. Den består av orden CREATE VIEW, namnet på vyn som måste skapas, ordet SOM (HUR) och sedan frågan. Låt oss skapa Londonstaff-vyn: SKAPA VY Londonstaff SOM SELECT * FRÅN Säljare WHERE stad = "London";

    Denna vy används precis som vilken annan tabell som helst. Det kan frågas efter, ändras, infogas i, tas bort från och kopplas till andra tabeller och vyer. Begäran om inlämning.

    Den här bilagan innehåller förkortade beskrivningar av olika SQL-kommandon. Målet är att ge dig snabb och korrekt referens och definition av SQL.

    Den första delen av denna applikation definierar de element som används för att skapa SQL-kommandon; den andra är detaljer om syntaxen och meningar med en kort beskrivning av själva kommandona.

    Här är standardkonventionerna (kallade BNF-villkor):

  • Nyckelord skrivs med versaler.
  • SQL och andra speciella villkor är omgivna inom vinkelparenteser och skrivs i kursiv stil.()
  • Valfria delar av kommandon omges av hakparenteser ([ och ]).
  • En ellips (....) indikerar att föregående del av kommandot kan upprepas hur många gånger som helst.
  • En vertikal streck (|) betyder att det som föregår det kan ersättas med det som följer efter det.
  • Lockiga parenteser (( och )) indikerar att allt inuti dem måste behandlas som en helhet för att kunna utvärdera andra tecken (som vertikala streck eller ellipser).
  • Dubbla kolon och likhetstecknet (:: =) betyder att det som följer är en definition av vad som föregår det.

    Dessutom kommer vi att använda följande sekvens (.,..) för att indikera att det som föregår det kan upprepas hur många gånger som helst, med enskilda händelser separerade med kommatecken. Attribut som inte ingår i den officiella standarden kommer att markeras i beskrivningen som (*icke-standard*).

    OBS: Den terminologi vi använder här är inte officiell ANSI-terminologi. Den officiella terminologin kan vara mycket förvirrande, så vi har förenklat den något. Av denna anledning använder vi ibland villkor som skiljer sig från ANSI, eller använder samma villkor men på ett lite annorlunda sätt. Till exempel skiljer sig vår definition av C från ANSI-kombinationen av standarddefinitionen av C. SQL-ELEMENT

    Det här avsnittet definierar elementen i SQL-kommandon.

    De är indelade i två kategorier: Språkets grundläggande element och språkets funktionella element.

    Grundläggande element är skapade block av språk; När SQL undersöker ett kommando, utvärderar det först varje tecken i kommandotexten i termer av dessa element. En separator separerar en del av ett kommando från en annan; allt mellan avgränsare behandlas som en modul. Baserat på denna uppdelning tolkar SQL kommandot.

    Funktionella element är en mängd andra element än nyckelord som kan tolkas som moduler. Dessa är delar av ett kommando, separerade av avgränsare, som har en speciell betydelse i SQL. Vissa av dem är speciella för vissa kommandon och kommer att beskrivas tillsammans med dessa kommandon längre fram i denna bilaga.

    Objekten som listas här är gemensamma för alla kommandon som beskrivs.

    Funktionella element kan definieras i termer av varandra eller till och med i sina egna termer. Till exempel innehåller predikatet Vårt sista och mest komplexa fall ett predikat Inuti sin egen definition. Detta beror på att ett predikat som använder OCH eller ELLER kan innehålla valfritt antal predikat som kan fungera oberoende. Vi har presenterat predikat B för dig i ett separat avsnitt i denna bilaga på grund av variationen och komplexiteten hos detta funktionella element i språket. Han kommer ständigt att vara närvarande när han diskuterar andra funktionella delar av teamen.

    GRUNDLÄGGANDE ELEMENT AV SPRÅK

    ELEMENTDEFINITION | | -- mellslutet av teckensträngen [( | = B AND


    En värld av gratis program och användbara tips
    2024 whatsappss.ru