Grunnleggende sql-kommandoer. Datatilgangsmekanisme. Strukturert spørringsspråk SQL. Historikk og standarder for SQL. Behandler SQL-kommandoer av Oracle-serveren. Forespørsler om fjerning

All konseptuell informasjon om relasjonsdatabaser og tabeller er bare nyttig hvis du vet hvordan du skal samhandle med dataene. SQL-språket består av strukturerte kommandoer for å legge til, endre og slette data fra en database. Disse kommandoene danner grunnlaget for samhandling med PostgreSQL-serveren.

Denne delen handler om "anatomien" til SQL-kommandoer. Den undersøker de strukturelle komponentene til kommandoer, og beskriver funksjonene til hver komponent og deres gjensidige relasjoner. Standard PostgreSQL kommandolinjeklient, psql, skriver ut resultatene av kommandoene i eksemplene gitt.

De fleste av SQL-kommandoeksemplene er spesifikke for booktown-databasen. All psql-utdata er prefikset med formen booktown=# .

Noen eksempler bruker testdb-testdatabasen. Som standard viser psql-ledeteksten bare databasenavnet og =#-symbolene, noe som indikerer at systemet er klart til å utstede en ny kommando (selv om du vil se =-symbolet dynamisk endres ettersom tilstanden til SQL-inndata overvåkes). Boken gir denne ledeteksten sammen med SQL-inndata og -utdata for å hjelpe deg med å bli komfortabel med psql-klientutgangen.

Psql-klienten er beskrevet i detalj i kapittel 4. Den er nevnt her kun for å klargjøre stilen til SQL-kommandoeksemplene.

Merk
Booktown-databaseskjemaet (sammen med eksempelposter) er plassert i booktown.sql-filen på CD-en. For å installere denne databasen, skriv inn kommandoen psql - U postgres template! ved ledeteksten. - f /mnt/cdrom/booktown.sql, der /mnt/cdrom er banen til den monterte CD-en og postgres er PostgreSQL-superbrukernavnet
.

Anatomi av SQL-kommandoer

SQL-kommandoer begynner alltid med en handling (verb) - et ord eller en gruppe ord som beskriver operasjonen som utføres. I tillegg inneholder en SQL-kommando vanligvis en eller flere seksjoner som tydeliggjør betydningen. I tabellen 3.2 viser hovedhandlingene til SQL.

Tabell 3.2. Grunnleggende PostgreSQL-handlinger.

Handlingsbeskrivelse
LAG DATABASE Opprette en ny database
LAG INDEKS Opprette en ny indeks på en tabellkolonne
LAG SEKVENS Opprette en ny sekvens i en eksisterende database
LAG BORD Opprette en ny tabell i en eksisterende database
LAG TRIGGER Opprett en ny utløserdefinisjon
LAG UTSIKT Opprett en ny visning for en eksisterende tabell
PLUKKE UT Velge poster fra en tabell
SETT INN Sette inn en eller flere nye poster i en tabell
OPPDATER Endre data i eksisterende poster
SLETT Fjerne eksisterende poster fra en tabell
DROPPE DATABASE Ødelegge en eksisterende database
SLIPP INDEKS Fjerne en kolonneindeks fra en eksisterende tabell
DROPPESEKVENS Ødelegge en eksisterende sekvensgenerator
DROPPE BORD Ødelegge et eksisterende bord
SLIPPE TRIGGER Ødelegge en eksisterende utløserdefinisjon
DROP VISNING Ødelegge en eksisterende visning
OPPRETT BRUKER Opprette en ny PostgreSQL-brukerkonto i systemet
ENDRE BRUKER Endre en eksisterende PostgreSQL-brukerkonto
DROPPE BRUKER Sletting av en eksisterende PostgreSQL-brukerkonto
STIPEND Gi tilgangsrettigheter til et databaseobjekt
OPPHAV Fjerne tilgangsrettigheter til et databaseobjekt
LAG FUNKSJON Opprette en ny SQL-funksjon i en database
LAG SPRÅK Opprette en ny språkdefinisjon i databasen
LAG OPERATØR Opprette en ny SQL-setning i databasen
LAG TYPE Opprette en ny SQL-datatype i en database

Structured Query Language ble utviklet av IBM på begynnelsen av 1970-tallet. I 1986 ble SQL først standardisert av ANSI-organisasjonene.

SQL er et kraftig og samtidig enkelt språk for databasebehandling. Det støttes av nesten alle moderne databaser. SQL er delt inn i to undersett av kommandoer: DDL (Data Definition Language) og DML (Data Manipulation Language). DDL-kommandoer brukes til å lage nye databaser, tabeller og kolonner, og DML-kommandoer brukes til å lese, skrive, sortere, filtrere, slette data.

Denne artikkelen vil se nærmere på DML-kommandoer, siden de brukes mye oftere.

DDL-kommandoer

CREATE - brukes til å lage nye tabeller, kolonner og indekser.

DROP - brukes til å fjerne kolonner og indekser.

ALTER - brukes til å legge til nye kolonner i tabeller og endre spesifikke kolonner.

DML-kommandoer

SELECT er den mest brukte kommandoen og brukes til å hente et sett med data fra en databasetabell. SELECT-kommandoen har følgende syntaks:

PLUKKE UT feltliste1 FRA tabellnavn ]

Operatører innenfor hakeparenteser er valgfrie, og den vertikale linjen betyr at en av de spesifiserte frasene må være til stede, men ikke begge.

La oss for eksempel lage en enkel spørring for å hente data fra feltene "navn" og "telefon" i "venner"-tabellen:

PLUKKE UT navn, telefon FRA venner

Hvis du trenger å få alle feltene i tabellen, er det ikke nødvendig å liste dem, bare legg inn en stjerne (*):

PLUKKE UT * FRA venner

For å ekskludere dupliserte oppføringer fra den viste listen, bruk DISTINCT nøkkelordet:

VELG DISTINKT Navn FRA venner

Hvis du trenger å få en egen post, brukes WHERE-klausulen. For eksempel må vi få telefonnummeret til "Vasya Pupkin" fra "venner"-tabellen:

PLUKKE UT * FRA venner HVOR Navn = "Vasya Pupkin"

eller omvendt, vi må finne ut hvem som eier telefonen 44-65-01:

PLUKKE UT * FRA venner HVOR telefon = "44-65-01"

I tillegg kan du bruke jokertegn, og dermed lage søkemønstre. LIKE-operatoren brukes til dette. LIKE-operatoren har følgende substitusjonsoperatorer:

* - samsvarer med en streng som består av ett eller flere tegn;

Matcher et hvilket som helst tegn;

Matcher ett tegn fra et spesifikt sett;

For eksempel, for å hente poster fra "navn"-feltet som inneholder ordet "Vasya", vil forespørselen se slik ut:

VELG * FRA venner HVOR Navn SOM "*Vasya*"

ORDER BY-klausulen brukes til å bestemme rekkefølgen data returneres i. Uten denne operatøren kan ikke rekkefølgen på de returnerte dataene forutsies. Nøkkelordene ASC og DESC lar deg bestemme sorteringsretningen. ASC sorterer i stigende rekkefølge, og DESC-ordrer i synkende rekkefølge.

For eksempel vil en forespørsel om å få en liste over poster fra "navn"-feltet i alfabetisk rekkefølge se slik ut:

VELG * FRA venner REKKEFØLGE ETTER Navn

Merk at ASC-nøkkelordet ikke er nødvendig fordi det er standard.

INSERT - denne kommandoen brukes til å legge til en ny post i tabellen. Det er skrevet som følger:

SETTE INN I tabellnavn VERDIER ( verdiliste)

Vær oppmerksom på at verditypene i listen over verdier må samsvare med verditypene til tabellfeltene, for eksempel:

SETTE INN I venner VERDIER ( "Anka the Machine Gunner", "32-09-81" )

Dette eksemplet legger til en ny oppføring i vennetabellen med de angitte verdiene.

UPDATE - Denne kommandoen brukes til å oppdatere data i en tabell og brukes oftest sammen med WHERE-leddet. UPDATE-kommandoen har følgende syntaks:

OPPDATER tabellnavn SETT feltnavn = betydning

Hvis du utelater WHERE-leddet, vil dataene i alle definerte felt i tabellen bli oppdatert. La oss for eksempel endre Vasya Pupkuns telefonnummer:

OPPDATER venner SETT telefon = "55-55-55" HVOR Navn = "Vasya Pupkin"

SLETT - som du sikkert allerede har forstått, brukes denne kommandoen til å slette poster fra tabellen. Som UPDATE, brukes DELETE-kommandoen vanligvis med en WHERE-klausul; hvis denne setningen utelates, vil alle data fra den angitte tabellen bli slettet. Syntaksen for DELETE-kommandoen er som følger:

SLETT FRA tabellnavn

La oss for eksempel fjerne denne irriterende Vasya Pupkin fra bordet vårt :) :

SLETT FRA venner HVOR Navn = "Vasya Pupkin"

Slutten

I denne artikkelen snakket jeg om de viktigste SQL-operatørene, de er ganske tilstrekkelige for å jobbe med databaser; Jeg vil snakke om de resterende operatørene mer detaljert en annen gang.

SQL eller Structured Query Language er et språk som brukes til å administrere data i et relasjonsdatabasesystem (RDBMS). Denne artikkelen vil dekke vanlige SQL-kommandoer som enhver programmerer bør være kjent med. Dette materialet er ideelt for de som ønsker å friske opp kunnskapen om SQL før et jobbintervju. For å gjøre dette, se på eksemplene gitt i artikkelen og husk at du studerte databaser i par.

Merk at noen databasesystemer krever semikolon på slutten av hver setning. Semikolonet er standardpekeren til slutten av hver setning i SQL. Eksemplene bruker MySQL, så et semikolon kreves.

Sette opp en database for eksempler

Lag en database for å demonstrere hvordan team fungerer. For å fungere, må du laste ned to filer: DLL.sql og InsertStatements.sql. Deretter åpner du en terminal og logger på MySQL-konsollen ved å bruke følgende kommando (artikkelen antar at MySQL allerede er installert på systemet):

Mysql -u root -s

Skriv deretter inn passordet ditt.

Kjør følgende kommando. La oss kalle databasen "universitet":

LAG DATABASE universitet; BRUK universitetet; KILDE; SOURCE Kommandoer for arbeid med databaser1. Se tilgjengelige databaser VIS DATABASER; 2. Opprette en ny database CREATE DATABASE; 3. Velge en database som skal brukes USE; 4. Importer SQL-kommandoer fra .sql-filen SOURCE ; 5. Fjerne databasen DROP DATABASE ; Arbeide med tabeller6. Se tabellene som er tilgjengelige i SHOW TABLES-databasen;

7. Opprette en ny tabell LAG TABELL ( , , PRIMÆR NØKKEL (), UTENLANDSKE NØKKEL () REFERANSER ()); Integritetsbegrensninger ved bruk av CREATE TABLE

Det kan hende du må opprette begrensninger for enkelte kolonner i en tabell. Når du oppretter en tabell, kan du angi følgende begrensninger:

  • en tabellcelle kan ikke ha en NULL-verdi;
  • primærnøkkel - PRIMARY KEY (col_name1, col_name2, ...) ;
  • fremmednøkkel - UTENLANDSKE NØKKEL (col_namex1, …, col_namexn) REFERANSER tabellnavn(col_namex1, …, col_namexn) .

Du kan spesifisere mer enn én primærnøkkel. I dette tilfellet vil du få en sammensatt primærnøkkel.

Eksempel

Lag en tabell "instruktør":

CREATE TABLE instruktør (ID CHAR(5), navn VARCHAR(20) NOT NULL, dept_name VARCHAR(20), lønn NUMERIC(8,2), PRIMARY KEY (ID), UTENLANDSKE KEY (dept_name) REFERANSER avdeling(dept_name));

8. Tabellinformasjon

Du kan se forskjellig informasjon (verditype, nøkkel eller ikke) om tabellkolonner med følgende kommando:

BESKRIVE ;

9. Legge til data i tabellen INSERT INTO (, , , …) VERDIER (, , , …);

Når du legger til data til hver kolonne i en tabell, trenger du ikke å angi kolonnenavn.

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

10. Oppdatering av tabelldata UPDATE SET = , = , ... HVOR ; 11. Slette alle data fra tabellen SLETT FRA ; 12. Fjerne et bord DROPPE TABELL ; Kommandoer for å lage spørringer13. PLUKKE UT

SELECT brukes til å hente data fra en bestemt tabell:

VELG , , ... FRA ;

Følgende kommando kan vise alle dataene fra tabellen:

VELG * FRA;

14. VELG DISTINKT

Tabellkolonner kan inneholde dupliserte data. Bruk SELECT DISTINCT for å hente kun ikke-dupliserte data.

VELG DISTINCT , , … FRA ;

15. HVOR

Du kan bruke nøkkelordet WHERE i SELECT for å spesifisere betingelser i en spørring:

VELG , , ... FRA ;

Følgende betingelser kan spesifiseres i forespørselen:

  • tekst sammenligning;
  • sammenligning av numeriske verdier;
  • logiske operatorer AND (og), OR (eller) og NOT (negasjon).
Eksempel

Prøv følgende kommandoer. Vær oppmerksom på betingelsene spesifisert i HVOR:

SELECT * FROM course WHERE dept_name=’Comp. Sci.'; VELG * FRA kurs HVOR studiepoeng>3; VELG * FRA kurs WHERE dept_name="Comp. Sci." OG studiepoeng>3;

16. GRUPPE ETTER

GROUP BY-operatoren brukes ofte med aggregerte funksjoner som COUNT, MAX, MIN, SUM og AVG for å gruppere utdataverdier.

VELG , , … FRA GRUPPE ETTER ;

Eksempel

La oss vise antall emner for hvert fakultet:

VELG ANTALL(kurs_id), avd_navn FRA kurs GROUP BY avd_navn;

17. Å HA

Nøkkelordet HAVING ble lagt til SQL fordi WHERE ikke kan brukes med aggregerte funksjoner.

VELG , , ... FRA GRUPPE VED Å HA

Eksempel

La oss vise en liste over fakulteter som har mer enn ett kurs:

VELG ANTALL(kurs_id), avd_navn FRA kurs GRUPPE ETTER avd_navn HAR ANTALL(kurs_id)>1;

18. BESTILL INNEN

ORDER BY brukes til å sortere søkeresultater i synkende eller stigende rekkefølge. ORDER BY vil sortere i stigende rekkefølge med mindre ASC eller DESC er spesifisert.

VELG , , … FRA BESTILLING AV , , … ASC|DESC;

Eksempel

La oss vise en liste over emner i stigende og synkende rekkefølge av studiepoeng:

VELG * FRA kurs BESTILL ETTER studiepoeng; VELG * FRA kurs BESTILL ETTER studiepoeng DESC;

19. MELLOM

BETWEEN brukes til å velge dataverdier fra et spesifikt område. Numeriske verdier og tekstverdier, samt datoer, kan brukes.

VELG , , … FRA HVOR MELLOM OG ;

Eksempel

La oss vise en liste over instruktører hvis lønn er over 50 000, men mindre enn 100 000:

VELG * FRA instruktør HVOR lønn MELLOM 50000 OG 100000;

20. LIKER

LIKE-operatoren brukes i WHERE for å spesifisere et søkemønster for en lignende verdi.

Det er to gratis operatører som brukes i LIKE:

  • % (ingen, ett eller flere tegn);
  • _ (ett tegn).
VELG , , ... FRA LIKE ; Eksempel

La oss vise en liste over kurs hvis navn inneholder "til" og en liste over kurs hvis navn begynner med "CS-":

VELG * FRA kurs HVOR tittel LIKE '%to%'; VELG * FRA kurs WHERE kurs_id LIKE "CS-___";

21. INN

Ved å bruke IN kan du spesifisere flere verdier for WHERE-leddet:

VELG , , … FRA HVOR I (, , …);

Eksempel

La oss vise en liste over studenter fra Comp majors. Sci., fysikk og elektr. Eng.:

VELG * FRA student WHERE avd.navn IN ('Comp. Sci.', 'Fysikk', 'Elec. Eng.');

22. BLI MED

JOIN brukes til å koble sammen to eller flere tabeller ved å bruke vanlige attributter i dem. Bildet nedenfor viser de forskjellige måtene å bli med i SQL. Legg merke til forskjellen mellom en venstre ytre skjøt og en høyre ytre skjøt:

VELG , , … FRA JOIN PÅ = ;

Eksempel 1

Vi vil vise en liste over alle emner og relevant informasjon om fakultetene:

VELG * FRA kurs BLI MED avdeling PÅ course.dept_name=department.dept_name;

Eksempel 2

Vi vil vise en liste over alle obligatoriske kurs og detaljer om dem:

VELG prereq.course_id, title, dept_name, credits, prereq_id FROM prereq VENSTRE YTRE JOIN kurs PÅ prereq.course_id=course.course_id;

Eksempel 3

Vi vil vise en liste over alle kurs, uavhengig av om de er obligatoriske eller ikke:

SELECT course.course_id, title, dept_name, credits, prereq_id FROM prereq HØYRE YTRE JOIN-kurs PÅ prereq.course_id=course.course_id;

23. Utsikt

View er en virtuell SQL-tabell opprettet som et resultat av å utføre et uttrykk. Den inneholder rader og kolonner og ligner veldig på en vanlig SQL-tabell. Vis viser alltid den nyeste informasjonen fra databasen.

Opprette CREATE VIEW SOM SELECT , , ... FROM WHERE ; Fjerner DROP VIEW ; Eksempel

La oss lage en visning bestående av kurs med 3 studiepoeng:

24. Aggregerte funksjoner

Disse funksjonene brukes for å få et samlet resultat relatert til de aktuelle dataene. Følgende er ofte brukte aggregerte funksjoner:

  • COUNT (col_name) - returnerer antall rader;
  • SUM (col_name) - returnerer summen av verdiene i denne kolonnen;
  • AVG (col_name) - returnerer gjennomsnittsverdien for en gitt kolonne;
  • MIN (col_name) - returnerer den minste verdien av en gitt kolonne;
  • MAX (col_name) – Returnerer den største verdien av en gitt kolonne.
25. Nestede underspørringer

Nestede underspørringer er SQL-spørringer som inkluderer SELECT , FROM og WHERE-klausuler nestet i en annen spørring.

Eksempel

La oss finne kurs som ble undervist høsten 2009 og våren 2010:

SELECT DISTINCT course_id FROM section WHERE semester = 'Høst' OG år= 2009 OG course_id IN (SELECT course_id FROM section WHERE semester = 'Vår' OG år= 2010);

Kirill Pozdeev, oversetter

Hvordan Yandex bruker dataene dine og maskinlæring for å tilpasse tjenester -.

SQL (ˈɛsˈkjuˈɛl; English structured query language - "structured query language") er et deklarativt programmeringsspråk som brukes til å lage, endre og administrere data i en relasjonsdatabase.

Samsvar med SQL-standarder for ulike databaser:

SQL (Structured Query Language - strukturert spørrespråk). SQL er først og fremst et informasjonslogisk språk designet for å beskrive lagrede data, for å hente lagrede data og for å endre data.

SQL er ikke et programmeringsspråk. Ettersom SQL har blitt mer kompleks, har det blitt mer et applikasjonsprogrammeringsspråk, og brukere kan nå bruke visuelle spørringsbyggere.

SQL er et språk som ikke skiller mellom store og små bokstaver. Strenger i SQL er omsluttet av enkle anførselstegn.

SQL-språket er en samling av utsagn. SQL-setninger er delt inn i:

    Data Definition Language (DDL) - skjemabeskrivelsesspråk i ANSI, består av kommandoer som lager objekter (tabeller, indekser, visninger, etc.) i databasen (CREATE, DROP, ALTER, etc.).

    Datamanipulasjonsoperatører (Data Manipulation Language, DML) er et sett med kommandoer som bestemmer hvilke verdier som presenteres i tabeller til enhver tid (INSERT, DELETE, SELECT, UPDATE, etc.).

    datatilgangsdefinisjonsutsagn (Data Control Language, DCL) - består av verktøy som bestemmer om brukeren skal kunne utføre visse handlinger eller ikke (GANT/REVOKE, LOCK/UNLOCK).

    Transaction Control Language (TCL) operatører

Dessverre brukes ikke disse begrepene universelt på tvers av alle implementeringer. De vektlegges av ANSI og er nyttige på et konseptuelt nivå, men de fleste SQL-programmer gjør lite for å behandle dem separat, så de blir i hovedsak funksjonelle kategorier av SQL-kommandoer.

VELG seksjon BLI MED

    Enkel JOIN (=kryss JOIN =INNER JOIN) - betyr å vise bare de vanlige postene til begge tabellene. Hvordan poster anses som delte, bestemmes av feltene i join-uttrykket. For eksempel følgende oppføring: FROM t1 JOIN t2 ON t1. id = t2. id

    betyr at poster med samme id som finnes i begge tabellene vil vises.

    LEFT JOIN (eller LEFT OUTER JOIN) betyr å vise alle poster fra den venstre tabellen (den som kommer først i join-uttrykket) uavhengig av om det er tilsvarende poster i den høyre tabellen. Hvis det ikke er noen poster i den høyre tabellen, settes den tomme verdien NULL.

    RIGHT JOIN (eller RIGHT OUTER JOIN) fungerer i motsetning til LEFT JOIN - den viser alle poster fra høyre (andre) tabell og bare de som samsvarer fra venstre (første) tabell.

    Andre typer JOIN joins: MINUS - subtraksjon; FULLSTENDIG - fullfør deltakelse; CROSS JOIN - "Alle med alle" eller den kartesiske produktoperasjonen.

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

    INSERT IGNORE Hvis du spesifiserer nøkkelordet IGNORE i en INSERT-kommando med rader som har flere verdier, vil alle rader som har dupliserte PRIMÆRE eller UNIKE nøkler i den tabellen bli ignorert og ikke satt inn. Hvis du ikke spesifiserer IGNORE, avbrytes denne innsettingsoperasjonen når den støter på en rad som har en duplikatverdi for en eksisterende nøkkel

INSERT IGNORE INTO Prices VALUES(DEFAULT, 1, 1111, "Fr", 50, 50, 1, 1)

REPLACE-kommandoen skiller seg fra INSERT bare ved at hvis det er en post i tabellen med samme verdi i det indekserte feltet (unik indeks) som den nye posten, så slettes den gamle posten før den nye legges til.

OPPDATER< tablename>SET ( | ) .,. .< COLUMN name> = < VALUE expresslon>[HVOR< predlcate>| HVOR STRØM AV< cursor name>(*kun for vedlegg*) ] ; OPPDATERING jevnaldrende SET zone= "voip" ; # oppdater alle rader i sonekolonnen i peers-tabellen UPDATE stat SET whp= "13x13x13" WHERE id = 1 ; OPPDATERT land SET nm_ukr= ( SELECT del_countries. ukrainsk FROM del_countries WHERE land. nm_en= del_countries. engelsk ) ;

WordPress-bruk, innstilling: i wp_posts-tabellen, slett alle forekomster av raden

OPPDATERING wp_posts SET post_content = REPLACE (post_content, "" , "" );

SLETT FRA

[ HVOR | WHERE CURRENT OF (*kun vedlegg*) ];

SLETT FRA jevnaldrende; // vil slette alt innholdet i Peers-tabellen. SLETT FRA FinR hvor dag Liker "20120415%"; // SLETT FRA priser HVOR ratesheet_id NOT IN (VELG ID FRA ratesheets);

ENDRE

    Endre standardverdien for en kolonne. For å angi en ny standardverdi for en kolonne, bruk en kommando som: ALTER TABLE products ALTER COLUMN price SET DEFAULT 7.77 ; ELLER ENDRE TABELL nases ENDRE KOLONNE sone SET DEFAULT "voip" ;

    Merk at kjøring av denne kommandoen ikke påvirker eksisterende rader i tabellen; kommandoen vil bare endre standardverdien for fremtidige INSERT-kommandoer. For å fjerne enhver standardverdi, bruk

    ALTER TABLE produkter ALTER COLUMN price DROP DEFAULT ;

    Kommandoen gjør det samme som å sette standardverdien til null. Siden sletting av en standardverdi implisitt setter den til null, vil ingen feil rapporteres hvis en eksisterende standardverdi slettes.

    Fungerer som standardverdi for kolonnen. I dette tilfellet har tidssporingskolonnen en tidsstempeldatatype, som betyr at standardverdien kan settes til den innebygde now()-funksjonen, dvs. når du legger til en ny rad i kolonnen, vil gjeldende dato og klokkeslett bli registrert ALTER TABLE timetracking ALTER COLUMN date_wd SET DEFAULT now();

    Legger til en begrensning. For å legge til en begrensning, brukes tabellsyntaksen for å definere den begrensningen. For eksempel: ALTER TABLE-produkter ADD CHECK (navn ""); ALTER TABLE produkter LEGG TIL BEGRENSNING noen_navn UNIK (produktnr); ALTER TABLE-produkter LEGG TIL UTENLANDSKE NØKKEL (product_group_id) REFERANSER product_groups;

    For å legge til en ikke-null-begrensning som ikke kan skrives som en tabellbegrensning, bruk syntaksen:

    ALTER TABLE products ALTER COLUMN product_no SET NOT NULL;

    Den angitte begrensningen vil bli håndhevet umiddelbart, så dataene i tabellen må tilfredsstille den før begrensningen legges til.

Aggregasjonsfunksjoner

Det er 5 aggregerte funksjoner i standard SQL:

    COUNT - funksjonen returnerer antall rader som oppfyller visse kriterier.,

    SUM - returnerer summen (totalt) av verdiene i en bestemt kolonne. Kolonnerader med NULL-verdier ignoreres av SUM-funksjonen.

    AVG - gjennomsnittsverdi i kolonnen,

Aggregasjonsfunksjoner brukes som feltnavn i en SELECT-spørringsledd, med ett unntak: feltnavn brukes som argumenter. SUM- og AVG-funksjonene kan bare fungere med numeriske felt. COUNT, MAX, MIN funksjonene fungerer med både numeriske felt og tegnfelt. Når de brukes på tegnfelt, kan MAX- og MIN-funksjonene fungere med ASCII-ekvivalentene til tegnene.

SELECT Count(Books.ID) AS [Antall bøker] FROM Books;

Ved å bruke CROUP BY kan du bruke aggregerte funksjoner på grupper av poster.

VELG Count(Books.ID) AS [Antall bøker] FRA Books GROUP BY [Writer];

Visninger (VIEW)

En VIEW er et dataobjekt som ikke inneholder noen data om eieren. Det er en type tabell hvis innhold hentes fra andre tabeller ved å kjøre en spørring.

Basistabeller er tabeller som inneholder data. Det finnes imidlertid en annen type tabell: - visninger (VISNING). Visninger er tabeller hvis innhold er valgt eller hentet fra andre tabeller. De fungerer i spørringer og DML-setninger akkurat som hovedtabeller, men inneholder ingen egne data. Visninger er som vinduer der du viser informasjon som faktisk er lagret i den underliggende tabellen.

    CREATE VIEW-kommandoen. Visningen opprettes med CREATE VIEW-kommandoen. Den består av ordene CREATE VIEW, navnet på visningen som må opprettes, ordet AS (HVORDAN), og deretter spørringen. La oss lage Londonstaff-visningen: CREATE VIEW Londonstaff AS SELECT * FRA selgere WHERE city = "London";

    Denne visningen brukes akkurat som alle andre tabeller. Det kan søkes etter, endres, settes inn i, slettes fra og kobles til andre tabeller og visninger. Forespørsel om innsending.

    Dette vedlegget inneholder forkortede beskrivelser av ulike SQL-kommandoer. Målet er å gi deg rask og nøyaktig referanse og definisjon av SQL.

    Den første delen av denne applikasjonen definerer elementene som brukes til å lage SQL-kommandoer; den andre er detaljer om syntaks og setninger med en kort beskrivelse av selve kommandoene.

    Her er standardkonvensjonene (kalt BNF-betingelser):

  • Nøkkelord skrives med store bokstaver.
  • SQL og andre spesielle forhold er omsluttet av vinkelparenteser og skrevet i kursiv.()
  • Valgfrie deler av kommandoer er omsluttet av firkantede parenteser ([ og ]).
  • En ellipse (....) indikerer at den foregående delen av kommandoen kan gjentas et hvilket som helst antall ganger.
  • En vertikal strek (|) betyr at det som går foran den kan erstattes av det som følger etter det.
  • Krøllete parenteser (( og )) indikerer at alt inne i dem må behandles som en helhet for å kunne evaluere andre tegn (som vertikale streker eller ellipser).
  • Dobbeltkolonet og likhetstegnet (:: =) betyr at det som følger er en definisjon av det som går foran.

    I tillegg vil vi bruke følgende sekvens (.,..) for å indikere at det som går foran det kan gjentas et hvilket som helst antall ganger, med individuelle hendelser atskilt med komma. Attributter som ikke er en del av den offisielle standarden vil merkes i beskrivelsen som (*ikke-standard*).

    MERK: Terminologien vi bruker her er ikke offisiell ANSI-terminologi. Den offisielle terminologien kan være veldig forvirrende, så vi har forenklet den noe. Av denne grunn bruker vi noen ganger forhold som skiller seg fra ANSI, eller bruker de samme betingelsene, men på en litt annen måte. For eksempel skiller vår definisjon av C seg fra ANSI-kombinasjonen av standarddefinisjonen av C. SQL-ELEMENTER

    Denne delen definerer elementene i SQL-kommandoer.

    De er delt inn i to kategorier: Grunnleggende elementer i språk og funksjonelle elementer i språk.

    Grunnleggende elementer er skapte blokker av språk; Når SQL undersøker en kommando, evaluerer den først hvert tegn i kommandoteksten i forhold til disse elementene. En separator skiller en del av en kommando fra en annen; alt mellom skilletegn behandles som en modul. Basert på denne inndelingen tolker SQL kommandoen.

    Funksjonelle elementer er en rekke andre elementer enn nøkkelord som kan tolkes som moduler. Dette er deler av en kommando, atskilt med skilletegn, som har en spesiell betydning i SQL. Noen av dem er spesielle for visse kommandoer og vil bli beskrevet sammen med disse kommandoene senere i dette vedlegget.

    Elementene som er oppført her er felles for alle kommandoene som er beskrevet.

    Funksjonelle elementer kan defineres i forhold til hverandre eller til og med i sine egne termer. For eksempel inneholder predikatet Vår siste og mest komplekse kasus et predikat inne i sin egen definisjon. Dette er fordi et predikat som bruker AND eller OR kan inneholde et hvilket som helst antall predikater som kan fungere uavhengig. Vi har presentert predikat B for deg i et eget avsnitt i dette vedlegget på grunn av variasjonen og kompleksiteten til dette funksjonelle elementet i språket. Han vil hele tiden være tilstede når han diskuterer andre funksjonelle deler av teamene.

    GRUNNLEGGENDE ELEMENTER I SPRÅK

    ELEMENTDEFINISJON | | -- space implementeringsdefinert slutten av tegnstrengen [( | = B AND


    En verden av gratis programmer og nyttige tips
    2024 whatsappss.ru