Bruker sql i tilgang. SQL spørringsspråk. Grunnleggende SQL-kommandoer for endring av data

Tidligere artikler diskuterte problemene. Teknologien for å lage strukturen til databasetabeller "sql_training_st.mdb" basert på SQL-spørringer vurderes. I tillegg, ved bruk av SQL-spørringer, ble ACCESS DBMS-tabellene "sql_training_st.mdb" fylt ut.

Det er kjent at i relasjonsdatabaser er SQL-språket designet for å manipulere data, definere strukturen til databasen og dens komponenter, kontrollere brukertilgang til databasen og administrere transaksjoner eller administrere endringer i databasen.

SQL-språket består av fire grupper:

  • datamanipulasjonsspråk DML;
  • DDL Data Definition Language;
  • databehandling språk DCL;
  • TCL transaksjonskontrollspråk.

DML-gruppen inkluderer fire hovedtyper SQL-spørringer:

  • INSERT - designet for å legge til en eller flere poster på slutten av tabellen;
  • OPPDATERING - ment å endres allerede eksisterende poster i tabellkolonner eller modifikasjoner av data i tabellen;
  • DELETE - designet for å slette poster fra tabellen;
  • SELECT - designet for å velge data fra tabeller.

De tre første typene SQL-spørringer (INSERT, UPDATE, DELETE), som er relatert til korrigerende spørringer til databasen, ble diskutert på siden

I denne artikkelen skal vi se på spørringer for å hente data fra Access-databasetabeller.

For å hente informasjon som er lagret i en Access 2003- eller 2007-database, kan du bruke en SELECT-spørring til å velge data fra tabeller.

La oss komponere følgende SQL-spørring (SQL-setning) for sampling; for å gjøre dette, velg SQL-modus ved å utføre kommandoen Vis/SQL-modus. Skriv inn følgende SQL-setning fra tastaturet:

PLUKKE UT *
FRA Studenter;

Denne setningen består av to klausuler "SELECT *" og "FROM Students". Den første klausulen inneholder en SELECT-setning og en identifikator * ("identifikator *" betyr en liste over alle kolonnene i tabellen). Den andre klausulen inneholder FROM-setningen og identifikatoren "Studenter".

FROM - Definerer tabellen Studenter, som inneholder feltene spesifisert i SELECT-leddet. Det skal bemerkes at en utvalgsspørring alltid inneholder to setninger: SELECT og FROM. Avhengig av valgbetingelsene kan andre operatører være tilstede i utvelgelsesforespørselen. Figur 1 viser et skjermbilde av en forespørsel om å hente data.


Ris. 1. SQL SELECT-spørring for å velge data

I dette eksemplet genereres et dataeksempel fra alle kolonnene i Studenter-tabellen.

Lagre forespørselen med navnet "Student-query1". Som et resultat av å utføre "Lagre"-kommandoen, vil objektet "Requests: Students-request1" vises i "Navigasjonsområde".

Etter å ha lagret valgforespørselen, må du utføre denne forespørselen ved å klikke på "Kjør"-ikonet. Resultatene av "Kjør"-kommandoen er vist i fig. 2.



Ris. 2. Velge data fra alle kolonnene i tabellen Studenter

SQL-språket har ikke funksjonene til et fullverdig utviklingsspråk, men er fokusert på datatilgang, så det er inkludert i programutviklingsverktøy. I dette tilfellet kalles det innebygd SQL. SQL-språkstandarden støttes av moderne implementeringer av følgende programmeringsspråk: PL/1, Ada, C, COBOL, Fortran, MUMPS og Pascal.

I spesialiserte applikasjonsutviklingssystemer av klient-server-typen er programmeringsmiljøet i tillegg vanligvis supplert med kommunikasjonsverktøy (etablere og frakoble forbindelser med databaseservere, oppdage og behandle feil som oppstår på nettverket, etc.), utviklingsverktøy brukergrensesnitt, design og feilsøkingsverktøy.

Det er to hovedmetoder for å bruke innebygd SQL: statisk og dynamisk.

statisk språkbruk (statisk SQL) Programteksten inneholder kall til SQL-språkfunksjoner, som er rigid inkludert i den kjørbare modulen etter kompilering. Endringer i kalte funksjoner kan være på nivået til individuelle anropsparametere ved bruk av programmeringsspråkvariabler.

dynamisk språkbruk (dynamisk SQL) det antas at kall til SQL-funksjoner er dynamisk konstruert og tolkning av disse kallene, for eksempel tilgang til data fra en ekstern database, under programkjøring. Den dynamiske metoden brukes vanligvis i tilfeller der applikasjonen ikke kjenner typen SQL-kall på forhånd og den bygges i dialog med brukeren.

Hovedformålet med SQL-språket (så vel som andre språk for å jobbe med databaser) er å forberede og utføre spørringer. Som et resultat av sampling av data fra en eller flere tabeller, kan et sett med poster oppnås, kalt presentasjon.

Opptreden er egentlig en tabell dannet som et resultat av å utføre en spørring. Vi kan si at det er en type lagret spørring. Du kan bygge flere visninger ved å bruke de samme tabellene. Selve visningen beskrives ved å spesifisere visningsidentifikatoren og forespørselen som må gjøres for å få den.



For å gjøre det enklere å jobbe med visninger, ble konseptet med en markør introdusert i SQL-språket. Markør er en slags peker som brukes til å bevege seg gjennom sett med poster når de behandles.

Beskrivelsen og bruken av en markør i SQL er som følger. I den beskrivende delen av programmet er en variabel av typen markør (CURSOR) knyttet til SQL-setning(vanligvis med SELECT-setning). I den utførende delen av programmet åpnes markøren (OPEN<имя курсора», перемещение курсора по записям (FETCI-1 <имя курсора>...), etterfulgt av passende behandling, og til slutt lukking av markøren (CLOSE<имя курсора>).

I relasjonelle DBMS-er, for å utføre operasjoner på relasjoner, brukes to grupper av språk, som har som matematisk grunnlag teoretiske spørrespråk foreslått av E. Codd:

Relasjonsalgebra;

Relasjonsregning.

I relasjonsalgebra Operandene og resultatene av alle handlinger er relasjoner. Relasjonelle algebraspråk er prosedyremessige fordi relasjonen som er et resultat av en spørring på en relasjonsdatabase, evalueres ved å utføre en sekvens av relasjonsoperatorer brukt på relasjonene. Operatører består av operander, som er relasjoner, og relasjonsoperasjoner.

Codd relasjonsalgebraoperasjoner kan deles inn i to grupper: grunnleggende settteoretisk og spesialrelasjonell. Den første gruppen av operasjoner inkluderer de klassiske operasjonene til settteori: forening, forskjell, skjæringspunkt og produkt. Den andre gruppen representerer utviklingen av vanlige settteoretiske operasjoner mot reelle problemer med datamanipulering; den inkluderer operasjonene: projeksjon, seleksjon, divisjon og forbindelse.

Kalkulusspråk er ikke-prosessuelle (beskrivende eller deklarative) og lar spørringer uttrykkes ved å bruke et førsteordens predikat (funksjonssetninger) som tupler eller relasjonsdomener må tilfredsstille. En databasespørring utført med et slikt språk inneholder kun informasjon om ønsket resultat. Disse språkene er preget av tilstedeværelsen av sett med regler for å skrive spørringer. Spesielt hører SQL til språkene i denne gruppen.

Funksjoner av applikasjonen SQL-spørringer

En SQL-spørring er en spørring opprettet ved hjelp av en SQL-setning. Eksempler på SQL-spørringer er join-spørringer, serverspørringer, kontrollspørringer og underordnede spørringer.

En sammenføyningsspørring er en spørring som kombinerer felt (kolonner) fra én eller flere tabeller eller spørringer til ett enkelt felt eller kolonne i resultatsettet med poster. For eksempel gir seks selgere ledelsen en beholdning av beholdningen deres hver måned. Ved å opprette en sammenføyningsspørring kan du kombinere disse beholdningene til et resultatsett med poster, og deretter utvikle en opprettingstabellspørring basert på sammenføyningsspørringen.

En forespørsel til serveren overfører SQL-kommandoer via ODBC til en server, for eksempel Microsoft SQL Server. Serverspørringer lar deg jobbe direkte med tabeller på serveren i stedet for å bli med dem. Resultatet av en forespørsel til serveren kan være lasting av poster eller endring av data.

En kontrollspørring oppretter eller endrer databaseobjekter, for eksempel Access- eller SQL Server-tabeller.

En underspørring består av en SQL SELECT-setning i en annen valg- eller endringsspørring. Disse instruksjonene legges inn i "Felt"-linjen i forespørselsskjemaet for å definere et nytt felt eller i "Utvalgsbetingelse"-linjen for å definere feltvalgbetingelsen. Underspørringer brukes til å gjøre følgende:

Sjekke inn en underspørring for å se om det finnes noen resultater ved å bruke de reserverte ordene EXISTS eller NO EXISTS;

Søker i hovedspørringen etter alle verdier som er lik, større enn eller mindre enn verdiene som returneres i underspørringen (ved å bruke ALLE, IN eller ALLE reserverte ord);

Opprette underspørringer i underspørringer (nestede underspørringer).

SQL-språket i Access kan brukes til å utvikle skjermskjemaer, rapporter, samt til å lage makroer og VBA-programmer.

Forholdet mellom QBE og SQL språk

I Access er det et nært forhold mellom QBE- og SQL-språkene. Spørringstabeller (skjemaer) på QBE-språket, fylt ut av brukeren, konverteres til SQL-uttrykk før umiddelbar kjøring. Det vil si at SQL-språket er en intern standard for å utføre spørringer. Denne mekanismen har fordelen av å la Access-systemet forene forberedelsen av spørringer for kjøring på lokale og eksterne datamaskiner. I sistnevnte tilfelle blir SQL-meldingen faktisk overført til datamaskinen - forespørselsserveren.

I Access kan en spørring være i en av tre moduser (tilstander): Design, SQL og Table. Designmodus brukes til å utvikle en ny spørring fra bunnen av (uten å bruke veivisere eller andre verktøy) eller til å endre oppsettet til en eksisterende spørring. SQL-modus brukes til å angi eller vise SQL-setninger. Tabellmodus brukes til å arbeide med søkeresultater.

SQL i skjemaer og rapporter

Hovedkildene til poster i visninger og rapporter er tabeller og spørringer. I det andre tilfellet kan forespørselen være en ferdig databasespørring eller en opprettet ved utvikling av et skjema eller rapport.

SQL i makroer

Makrokommandoer er en del av makroer som brukes til å automatisere utførelsen av ofte gjentatte handlinger i arbeid med en database. En makro er én eller flere makrokommandoer med argumenter.

Makroer kalles opp fra databasevinduet eller automatisk når visse hendelser inntreffer. Hendelsen som makroen kalles på kan for eksempel være et klikk på en knapp i skjemaområdet eller åpningen av et databasevindu. Sammen med å utføre visse handlinger på databaseobjekter, kan makroer kalle andre makroer, Visual Basic-programmer og eksterne applikasjoner.

Av de mange makrokommandoer er to makrokommandoer direkte relatert til SQL: Kjør SQL Query (Kjør SQL) og Open Query (OpenQuery)

Makrokommando Kjør SQL Query kjører en Access-endring eller kontrollspørring ved å bruke den riktige SQL-setningen. Denne makroen gjør det mulig å utføre handlinger i en makro uten først å lagre spørringer. Du kan også utføre lagrede spørringer ved å bruke makroen.

Endre forespørsler er SQL-setninger som implementerer følgende funksjoner: legge til (INSERT INTO), slette (DELETE), lage en tabell (SELECT...INTO) og oppdatere (UPDATE)

Kontrollforespørsler er SQL-setninger som utfører følgende funksjoner: opprette en tabell (CREATE TABLE), endre en tabell (ALTER TABLE), slipp en tabell (DROP TABLE), opprett en indeks (CREATE INDEX), og slipp en indeks (DROP INDEX)

Det eneste og nødvendige argumentet for makrokommandoen Kjøre en SQL-spørring er en SQL-setning. Makroargument som SQL-tekst - instruksjoner legges inn manuelt i makroinndatavinduet eller kopieres fra SQL-vinduet, som ofte er mer praktisk.

Makro kommando OpenRequest lar deg åpne et utvalg eller kryssspørring (i tabell-, design- og forhåndsvisningsmodus), kjøre en spørring for å endre eller legge inn data.

Makroen spesifiserer tre argumenter: forespørselsnavn, modus og datamodus. Det første argumentet spesifiserer navnet på forespørselen som skal åpnes og er obligatorisk. Det andre argumentet spesifiserer spørringsåpningsmodusen (tabell, design og visning). Det tredje argumentet beskriver modusen for dataregistrering i forespørselen ("Legg til", "Endre" og "Skrivebeskyttet")

SQL i VBA-programmer

VBA, som makroer, er designet for å automatisere repeterende operasjoner på Access-databaseobjekter.

I Access er det følgende måter å kjøre VBA-programmer på:

Inkludere et program i hendelsesbehandlingsprosedyren;

Å kalle en funksjon i et uttrykk;

Kalle opp en underprosedyre i en annen prosedyre eller i et feilsøkingsvindu;

Utføre makrokommandoen RunCode (RunCode) i en makro.

Funksjoner brukes i uttrykk som definerer beregnede felt i skjemaer, rapporter eller spørringer. Uttrykk brukes til å spesifisere betingelser i spørringer og filtre, så vel som i makroer, VBA-setninger og metoder, og SQL-setninger. En underprosedyre kan inkludere offentlige VBA-underrutiner som kalles opp fra andre prosedyrer.

La oss se på å kjøre en databasespørring ved hjelp av SQL-setninger i et Visual Basic for Applications-program.

Forespørselen velger poster fra databasen som tilfredsstiller visse betingelser (seleksjonsforespørsel), eller gir instruksjoner for å utføre spesifiserte handlinger med poster som tilfredsstiller visse betingelser (endringsforespørsel).

Det er følgende måter å utføre spørringer på:

Kalle opp Execute-metoden (for å utføre SQL-spørringer for endringer);

Oppretting og utførelse av et spesielt QueryDef-objekt;

Bruke en SQL-setning som argument for OpenRecordset-metoden;

Kjør OpenRecordset-metoden på et eksisterende QueryDef-objekt;

Kaller RunSQL- og OpenQuery-metoder.

Utfør metode brukes hvis du trenger å gjøre en endring i databasen som ikke returnerer poster. For eksempel operasjoner for å sette inn eller slette poster.

QueryDef-objekt representerer en lagret spørringsdefinisjon i databasen. Det kan tenkes på som en kompilert SQL-setning.

OpenRecordset-metoden brukes til å åpne et objekt av typen Recordset for å utføre påfølgende operasjoner på det.

KjørSQL-metoden kjører en makro Kjøre en SQL-spørring i VBA-programmet

OpenQuery-metoden utfører OpenQuery-makrokommandoen i et VBA-program. Med den kan du åpne en spørring i dataark-, design- eller visningsmodus. Dette angir en av følgende moduser for arbeid med data: legge til, endre eller kun lese.

Valget av søkeutførelsesalternativet bestemmes av programmereren, under hensyntagen til egenskapene til problemet som skal løses.

Hver webutvikler trenger å kunne SQL for å skrive databasespørringer. Og selv om phpMyAdmin ikke har blitt kansellert, er det ofte nødvendig å gjøre hendene skitne for å skrive SQL på lavt nivå.

Derfor har vi laget en kort omvisning i det grunnleggende om SQL. La oss komme i gang!

1. Lag en tabell

CREATE TABLE-setningen brukes til å lage tabeller. Argumentene må være navnene på kolonnene, samt deres datatyper.

La oss lage en enkel tabell med navn måned. Den består av 3 kolonner:

  • id– Månedsnummer i kalenderåret (heltall).
  • Navn– Månedsnavn (streng, maksimalt 10 tegn).
  • dager– Antall dager i denne måneden (heltall).

Slik vil den tilsvarende SQL-spørringen se ut:

CREATE TABLE måneder (id int, navn varchar(10), days int);

Når du oppretter tabeller, er det også tilrådelig å legge til en primærnøkkel for en av kolonnene. Dette vil holde postene unike og fremskynde hentingsforespørsler. I vårt tilfelle, la månedens navn være unikt (kolonne Navn)

CREATE TABLE months (id int, navn varchar(10), days int, PRIMÆR NØKKEL (navn));

dato og tid
Data-typeBeskrivelse
DATODatoverdier
DATO TIDDato- og tidsverdier er nøyaktige til minuttet
TIDTidsverdier

2. Sette inn rader

La oss nå fylle ut tabellen måneder nyttig informasjon. Å legge til poster i en tabell gjøres ved å bruke INSERT-setningen. Det er to måter å skrive denne instruksjonen på.

Den første metoden er ikke å spesifisere navnene på kolonnene der dataene skal settes inn, men kun å spesifisere verdiene.

Denne opptaksmetoden er enkel, men usikker, siden det ikke er noen garanti for at når prosjektet utvides og tabellen redigeres, vil kolonnene være i samme rekkefølge som før. En sikker (og samtidig mer tungvint) måte å skrive en INSERT-setning på krever spesifisering av både verdiene og rekkefølgen på kolonnene:

Her er den første verdien i listen VERDIER samsvarer med det første angitte kolonnenavnet osv.

3. Trekke ut data fra tabeller

SELECT-setningen er vår beste venn når vi ønsker å hente data fra en database. Den brukes veldig ofte, så vær veldig oppmerksom på denne delen.

Den enkleste bruken av SELECT-setningen er en spørring som returnerer alle kolonner og rader fra en tabell (for eksempel tabeller etter navn tegn):

VELG * FRA "tegn"

Stjerne (*)-symbolet betyr at vi ønsker å hente data fra alle kolonner. Siden SQL-databaser vanligvis består av mer enn én tabell, er det nødvendig å spesifisere FROM-nøkkelordet, etterfulgt av tabellnavnet, atskilt med et mellomrom.

Noen ganger ønsker vi ikke å hente data fra ikke alle kolonnene i en tabell. For å gjøre dette, i stedet for en stjerne (*), må vi skrive ned navnene på de ønskede kolonnene, atskilt med komma.

SELECT id, navn FRA måned

I tillegg ønsker vi i mange tilfeller at de resulterende resultatene skal sorteres i en bestemt rekkefølge. I SQL gjør vi dette ved å bruke ORDER BY. Den kan godta en valgfri modifikator - ASC (standard) sortering i stigende rekkefølge eller DESC, sortering i synkende rekkefølge:

VELG ID, navn FRA måned BESTILL ETTER navn DESK

Når du bruker ORDER BY, sørg for at den kommer sist i SELECT-setningen. Ellers vil en feilmelding vises.

4. Datafiltrering

Du har lært hvordan du velger spesifikke kolonner fra en database ved hjelp av en SQL-spørring, men hva om vi også trenger å hente spesifikke rader? WHERE-klausulen kommer til unnsetning her, og lar oss filtrere dataene avhengig av tilstanden.

I denne spørringen velger vi bare disse månedene fra tabellen måned, der det er mer enn 30 dager ved bruk av større enn (>)-operatoren.

VELG ID, navn FRA måned WHERE dager > 30

5. Avansert datafiltrering. OG- og OR-operatører

Tidligere brukte vi datafiltrering ved å bruke ett enkelt kriterium. For mer kompleks datafiltrering kan du bruke AND- og OR-operatorene og sammenligningsoperatorene (=,<,>,<=,>=,<>).

Her har vi en tabell som inneholder de fire bestselgende albumene gjennom tidene. La oss velge de som er klassifisert som rock og har solgt mindre enn 50 millioner eksemplarer. Dette kan enkelt gjøres ved å plassere en OG-operator mellom disse to betingelsene.


VELG * FRA album WHERE sjanger = "rock" OG salg_i_millioner<= 50 ORDER BY released

6. I/Mellom/Liker

WHERE støtter også flere spesialkommandoer, slik at du raskt kan sjekke de mest brukte spørringene. Her er de:

  • IN – tjener til å indikere en rekke betingelser, som alle kan oppfylles
  • MELLOM – kontrollerer om en verdi er innenfor det angitte området
  • LIKE – søker etter spesifikke mønstre

For eksempel hvis vi ønsker å velge album med pop Og sjel musikk, kan vi bruke IN("verdi1","verdi2") .

VELG * FRA album WHERE sjanger IN ("pop","soul");

Hvis vi ønsker å få alle albumene utgitt mellom 1975 og 1985, må vi skrive:

VELG * FRA album WHERE utgitt MELLOM 1975 OG 1985;

7. Funksjoner

SQL er fullpakket med funksjoner som gjør alle mulige nyttige ting. Her er noen av de mest brukte:

  • COUNT() – returnerer antall rader
  • SUM() - returnerer den totale summen av en numerisk kolonne
  • AVG() - returnerer gjennomsnittet av et sett med verdier
  • MIN() / MAX() – Henter minimums-/maksimumsverdien fra en kolonne

For å få det siste året i tabellen vår, må vi skrive følgende SQL-spørring:

SELECT MAX(utgitt) FRA album;

8. Undersøk

I forrige avsnitt lærte vi å gjøre enkle beregninger med data. Hvis vi ønsker å bruke resultatet fra disse beregningene, kan vi ikke klare oss uten nestede spørringer. La oss si at vi ønsker å produsere kunstner, album Og utgivelsesår for det eldste albumet i tabellen.

Vi vet hvordan du får disse spesifikke kolonnene:

VELG artist, album, utgitt FRA album;

Vi vet også hvordan du får det tidligste året:

VELG MIN(utgitt) FRA album;

Alt som trengs nå er å kombinere de to spørringene ved å bruke WHERE:

VELG artist,album,utgitt FRA album WHERE utgitt = (VELG MIN(utgitt) FRA album);

9. Sammenføyning av tabeller

I mer komplekse databaser er det flere tabeller relatert til hverandre. Nedenfor er for eksempel to tabeller om videospill ( videospill) og videospillutviklere ( spillutviklere).


I bordet videospill det er en utviklerkolonne ( developer_id), men den inneholder et heltall, ikke navnet på utvikleren. Dette nummeret representerer identifikatoren ( id) til den tilsvarende utvikleren fra tabellen over spillutviklere ( spillutviklere), logisk koble sammen to lister, slik at vi kan bruke informasjonen som er lagret i dem begge samtidig.

Hvis vi ønsker å lage en spørring som returnerer alt vi trenger å vite om spill, kan vi bruke en INNER JOIN for å koble sammen kolonner fra begge tabellene.

VELG video_games.name, video_games.genre, game_developers.name, game_developers.country FRA video_games INNRE BLI MEDLEM game_developers PÅ video_games.developer_id = game_developers.id;

Dette er den enkleste og vanligste JOIN-typen. Det finnes flere andre alternativer, men disse gjelder mindre vanlige tilfeller.

10. Aliaser

Hvis du ser på det forrige eksemplet, vil du legge merke til at det er to kolonner som kalles Navn. Dette er forvirrende, så la oss sette et alias til en av de gjentatte kolonnene, slik som dette Navn fra bordet spillutviklere vil bli kalt utvikler.

Vi kan også forkorte spørringen ved å kalle tabellnavnene: videospill la oss ringe spill, spillutviklere - devs:

SELECT games.name, games.genre, devs.name AS utvikler, devs.country FROM video_games AS spill INNRE BLI MED game_developers AS devs ON games.developer_id = devs.id;

11. Dataoppdatering

Ofte må vi endre dataene i noen rader. I SQL gjøres dette ved å bruke UPDATE-setningen. UPDATE-erklæringen består av:

  • Tabellen der erstatningsverdien er plassert;
  • Kolonnenavn og deres nye verdier;
  • Radene valgt med WHERE som vi ønsker å oppdatere. Hvis dette ikke gjøres, vil alle rader i tabellen endres.

Nedenfor er tabellen TV-serier med TV-serier og deres rangeringer. En liten feil snek seg imidlertid inn i tabellen: selv om serien Game of Thrones og beskrives som en komedie, det er den virkelig ikke. La oss fikse dette!

Tabelldata tv_series OPPDATERING tv_series SET sjanger = "drama" WHERE id = 2;

12. Sletting av data

Å slette en tabellrad ved hjelp av SQL er en veldig enkel prosess. Alt du trenger å gjøre er å velge tabellen og raden du vil slette. La oss slette den siste raden i tabellen fra forrige eksempel TV-serier. Dette gjøres ved å bruke >DELETE-instruksjonen.

SLETT FRA tv_series WHERE id = 4

Vær forsiktig når du skriver DELETE-setningen og sørg for at WHERE-setningen er til stede, ellers vil alle rader i tabellen bli slettet!

13. Slett en tabell

Hvis vi vil slette alle rader, men forlate selve tabellen, bruker du TRUNCATE-kommandoen:

TRUNCATE TABLE tabellnavn;

I tilfellet når vi faktisk ønsker å slette både dataene og selve tabellen, vil DROP-kommandoen være nyttig for oss:

DROP TABLE tabellnavn;

Vær veldig forsiktig med disse kommandoene. De kan ikke kanselleres!/p>

Dette avslutter vår SQL-opplæring! Det er mye vi ikke har dekket, men det du allerede vet burde være nok til å gi deg noen praktiske ferdigheter for din nettkarriere.

MS Access DBMS-applikasjonen er en fullverdig assistent for å lage og vedlikeholde databaser innesluttet i tabeller og matriser. Hvis databasen er for stor, er det ganske vanskelig å raskt finne de nødvendige verdiene.

Dette er grunnen til at Access har en funksjon som kalles spørringer. La oss se på hva det er, hvordan det fungerer og hvilke funksjoner det har.

Opprette spørringer i Microsoft Access

For å finne ut hvordan du oppretter spørringer i Access, må du vite det grunnleggende om å jobbe med en DBMS.

Det er to måter å gjøre det på denne prosedyren:

  • Spørringsbygger.
  • Spørringsveiviser.

Den første metoden lar deg lage alle tilgjengelige spørringer manuelt, men med det lille forbeholdet at brukeren har erfaring med å jobbe med en Access-applikasjon. Han må også forstå i det minste dens grunnleggende oppgaver. Når det gjelder den andre metoden, må den vurderes mer detaljert.

Enkel måte for nybegynnere

En kunnskapsrik person velger med noen få museklikk de komponentene som brukeren trenger for å fullføre forespørselen, og oppretter deretter raskt et register i samsvar med de innsamlede nøkkelverdiene. Hvis dette er første bekjentskap med DBMS, og brukeren ikke aner hvordan man oppretter spørringer i Access, er veiviserprogrammet valgt.

I denne modusen kan du gjøre deg kjent med og forstå følgende typer forespørsler:

  • Enkel.
  • Kryss.
  • Records uten underordnede.
  • Dupliserte oppføringer.

Dette valget gjøres allerede i den første fasen av arbeidet med Mesteren. Og i fremtiden, etter klare instruksjoner, kan selv en nybegynner enkelt opprette en forespørsel. La oss bli kjent med variantene.

Enkel forespørsel

Dette regnearkverktøyet samler inn nødvendige data fra brukerspesifiserte felt. Navnet alene viser at dette er den mest populære typen forespørsel for nybegynnere. Dens bekvemmelighet ligger i det faktum at denne prosedyren åpnes i en ny fane. Derfor blir svaret på spørsmålet om hvordan du oppretter en spørring i Access 2010 åpenbart etter å ha åpnet den første veivisermenyen.

Kryssforespørsel

Denne typen prøvetaking er mer kompleks. For å finne ut hvordan du oppretter en kryssspørring i Access ved å bruke "Veiviseren" i denne modusen, må du klikke på denne funksjonen i det første vinduet.

En tabell vil vises på skjermen der du kan velge opptil tre kolonner i originalen.

Ett av de gjenværende umarkerte feltene kan brukes som spørretabelloverskrifter. På det tredje trinnet av prosedyren (skjæringspunktet) velges en annen verdi med en variasjonsfunksjon (gjennomsnittsverdi, sum, først, sist).

Bildet viser at kryssforespørselen er opprettet, og det gitte parametere nødvendige tiltak er iverksatt.

Dupliserte oppføringer

Som navnet tilsier, er hovedformålet med denne spørringen å velge alle identiske rader i tabellen i henhold til de angitte parameterne. Det ser slik ut:

I tillegg kan du velge flere felt for å matche flere linjer samtidig.

For å velge dupliserte oppføringer, må du utvide listen over forespørsler og opprette en ny mappe der. Velg deretter linjen "Søk etter dupliserte poster" i vinduet "Ny spørring". Deretter må du følge instruksjonene til Mesteren.

Records uten underordnede

Dette er den siste typen spørring som er tilgjengelig i Master - Records without Slaves-modus.

I dette tilfellet velges bare de verdiene som ikke er involvert i noen felt med tabeller og spørringer, men som allerede er opprettet.

Denne typen er kun relevant i tilfeller der det er flere databaser.

Alle fire av disse spørringstypene er et utgangspunkt for å jobbe med komplekse elementer, men gjør det enkelt å forstå hvordan du oppretter en spørring i databasen Få tilgang til data.

Spørringsfunksjoner i MS Access

La oss finne ut hvorfor du må utføre trinnene beskrevet ovenfor. Oppgaven av alle enkle og komplekse spørsmål V Få tilgang til DBMS er som følgende:

  • Samle de nødvendige dataene i tabeller, for så å vise, redigere, legge til nye verdier.
  • Utmerket kildemateriale for å utarbeide alle typer rapporteringsskjemaer.
  • Gjennomføring av matematiske og statistiske telleprosedyrer på hele datamatriser med resultatene vist på skjermen (gjennomsnittsverdi, sum, avvik, totaler).

Eksempelforespørsel

Denne typen databasearbeid er kompleks fordi den krever deltakelse av flere tabeller.

Det er nødvendig at alle tabeller har felles nøkkelfelt. Ellers vil operasjonen ikke være mulig.

La oss se på hvordan du oppretter en utvalgsspørring i Access. Først må du lage en enkel spørring med valg av de nødvendige feltene. Her kan du redigere dataene for å bringe dem inn i ønsket form. For øvrig vil endringene som gjøres overføres til kildetabellene, så dette punktet må tas i betraktning.

I designervinduet som åpnes, er "Legg til tabeller"-vinduet fylt ut. Her må du legge til de tabellene eller spørringene du må trekke ut de opprinnelige verdiene fra.

Etter å ha lagt til, kan du begynne å fylle ut forespørselsbetingelsene. For dette trenger vi "Field"-strengen. I den må du velge disse verdiene fra tabellene som vil vises under forespørselen.

For å fullføre operasjonen, må du klikke på "Kjør" -knappen.

Forespørsel med parametere

Dette er en annen type kompleks prosedyre som vil kreve at brukeren har visse databaseferdigheter. Et av hovedområdene i denne handlingen er å forberede opprettelsen av rapporter med data i stor skala, samt å oppnå sammendragsresultater. Hvordan lage spørringer i Access 2007 ved hjelp av designeren vil bli diskutert nedenfor.

Du må starte denne dataprøveprosedyren ved å lage en enkel spørring for å velge de nødvendige feltene. Deretter, gjennom Designer-modus, må du fylle ut "Utvalgsbetingelse"-feltet, og basert på den angitte verdien, vil valget bli utført.

På spørsmålet om hvordan du oppretter en spørring med en parameter i Access, er svaret enkelt - skriv inn de første parameterne for utvalget. For å jobbe med designeren må du bruke spørringsveiviseren. Der opprettes primærdata for filtrering, som fungerer som grunnlag for videre arbeid.

Avansert kryssspørring

Vi fortsetter å komplisere situasjonen. Enda vanskeligere å forstå er informasjon om hvordan du oppretter spørringer i Access hvis det er flere tabeller med data. Kryssforespørsel har allerede blitt diskutert ovenfor som et av alternativene for å jobbe med Mesteren. Du kan imidlertid opprette en lignende forespørsel i designmodus.

For å gjøre dette, klikk "Query Builder" - "Cross".

En meny for å legge til kildetabeller åpnes, samt muligheten til å fylle ut valgte felt. De eneste tingene du bør være oppmerksom på er elementene "gruppeoperasjon" og "krysstabulering". De må fylles ut riktig, ellers vil ikke prosedyren bli utført korrekt.

Kryssspørringer er den enkleste måten å søke etter og hente informasjon fra flere datakilder, pluss muligheten til å generere diagrammer og grafer.

Dessuten, når du bruker denne prosedyren, fullføres søket raskere, selv med flere utviklingsalternativer.

Selvfølgelig er det også fallgruver som kan forstyrre arbeidet ditt. For eksempel, når du oppretter en spørring for å sortere en database etter kolonneverdier, genererer systemet en feil. Det vil si at bare sortering etter standardvarer er tilgjengelig - "stigende og synkende".

For å oppsummere må det sies at brukeren må bestemme hvordan man oppretter spørringer i Access - ved hjelp av veiviseren eller designeren. Selv om det første alternativet er mer egnet for de fleste som bruker MS Access DBMS. Tross alt vil veiviseren gjøre alt arbeidet selv, og etterlate bare noen få museklikk for brukeren å velge forespørselsbetingelsene.

For å bruke avanserte innstillinger er det helt klart nødvendig med databaseerfaring på profesjonelt nivå. Hvis store databaser er involvert i arbeidet, er det best å kontakte spesialister for å unngå forstyrrelser av DBMS og mulig tap av data.

Det er ett punkt som kun er tilgjengelig for programmerere. Siden hovedspråket til DBMS er SQL, kan ønsket spørring skrives i form av programkode. For å jobbe i denne modusen klikker du bare på linjen i den allerede opprettede forespørselen, og i den åpnede kontekstmenyen velg "SQL-modus".

I det enkleste tilfellet implementerer spørringen utvalget fra én tabell over de nødvendige feltene, poster som oppfyller de angitte utvalgsbetingelsene, og viser resultatene av spørringen.

Konstruere utvalgsspørringer med utvalgsbetingelser

La oss se på utvalgsspørringer i Access ved å bruke eksemplet med å hente informasjon fra PRODUKT-tabellen i vareforsyningsdatabasen.

Oppgave 1. Anta at du må velge en rekke egenskaper ved et produkt etter navnet.

  1. For å opprette en spørring i databasevinduet, velg båndfanen - Opprettelse(Opprett) og i gruppen Forespørsler(Forespørsler) klikk på knappen Spørringsbygger(Query Design). Et tomt utvalgsforespørselsvindu åpnes i designmodus - ForespørselN(QueryN) og dialogboksen Legger til en tabell(Vis tabell) (Fig. 4.2).
  2. I vinduet Legger til en tabell(Vis tabell) velg PRODUKT-tabellen og klikk på knappen Legg til(Legg til). Den valgte tabellen vil vises i skjemaområdet for spørringsdata. Lukke vinduet Legger til en tabell(Vis tabell) ved å trykke på knappen Lukk(Lukk).

Som et resultat av handlingene utført i spørringsdesignervinduet (fig. 4.1), topppanel Spørringsdataskjemaet vises, som inkluderer tabellene som er valgt for spørringen. I dette tilfellet ett bord PRODUKT. Tabellen er representert av en liste over felt. Den første raden i listen over tabellfelt, merket med en stjerne (*), angir hele settet med tabellfelt. Det nederste panelet er et forespørselsskjema som må fylles ut.

I tillegg vises en ny fane (Spørringsverktøy | Design) på båndet og aktiveres automatisk (en del av denne fanen er vist i Fig. 4.3), hvor typen spørring som er opprettet er uthevet i farger - Prøve(Plukke ut). Derfor opprettes alltid et utvalgsspørring som standard. Kommandoene på denne fanen gir verktøy for å utføre nødvendige handlinger når du oppretter en forespørsel. Denne fanen åpnes når du oppretter en ny forespørsel eller en eksisterende blir redigert.

  1. For å fjerne en hvilken som helst tabell fra spørringsdataskjemaet, plasser musepekeren på den og trykk på en tast. For å legge til - klikk på knappen Vis bord(Vis tabell) i gruppe Spørringsoppsett(Query Setup)-fanen Arbeide med forespørsler | Konstruktør(Spørreverktøy | Design) eller kjør kommandoen Legg til tabell(Vis tabell) i kontekstmenyen kalt forespørselsdatadiagrammet.
  2. I designervinduet (fig. 4.4), dra sekvensielt feltene NAME_IT, PRICE, AVAILABILITY_IT fra listen over felt i PRODUCT-tabellen inn i kolonnene i forespørselsskjemaet inn i raden Felt(Felt).
  3. For å inkludere de ønskede feltene fra tabellen i de tilsvarende spørringskolonnene, kan du bruke følgende teknikker:
    • i første linje i forespørselsskjemaet Felt(Felt) klikk med musen for å få listeknappen til å vises og velg ønsket felt fra listen. Listen inneholder feltene til tabellene som er representert i spørringsdataskjemaet;
    • dobbeltklikk på tabellfeltnavnet i spørringsdataskjemaet;
    • For å inkludere alle tabellfelt kan du dra eller dobbeltklikke på * (stjerne)-symbolet i listen over tabellfelt i spørringsdataskjemaet.
  4. Hvis du ved et uhell dro et unødvendig felt til forespørselsskjemaet, slett det. For å gjøre dette, flytt markøren til kolonneetikettområdet øverst, der den vil vises som en svart pil som peker ned, og klikk på museknappen. Kolonnen vil bli uthevet. Trykk på en tast eller kjør en kommando Fjern kolonner(Slett kolonner) i gruppe Spørringsoppsett(Query Setup).
  5. På linje Utgang på display(Vis) sjekk feltene, ellers vil de ikke bli inkludert i spørringstabellen.
  6. Skriv på linjen Utvalgsbetingelser(Kriterier) navnet på produktet, som vist i forespørselsskjemaet i fig. 4.4. Siden uttrykket i valgbetingelsen ikke inneholder en operator, brukes operatoren = som standard. Brukt i uttrykk tekstverdi angis med doble anførselstegn, som legges til automatisk.
  7. Kjør spørringen ved å klikke på Kjør-knappen eller Vis-knappen i Resultatgruppen. Et spørrevindu vil vises på skjermen i tabellmodus med en oppføring fra PRODUKT-tabellen som oppfyller de angitte valgbetingelsene.

KOMMENTAR
Spørringsvinduet i tabellvisning ligner på databasetabellvisningsvinduet. Gjennom noen spørringstabeller kan det gjøres endringer i dataene i basistabellen som ligger til grunn for spørringen. En spørring vist i dataarkvisning, i motsetning til en Access 2010-databasetabell, har ikke en kolonne Klikk for å legge til(Klikk for å legge til), designet for å endre strukturen til tabellen. I denne modusen, på båndfanen hjem(Hjem) de samme knappene er tilgjengelige som når du åpner en databasetabell.

  1. Hvis du gjorde en unøyaktighet når du skrev inn et komplekst produktnavn, vil ikke produktet bli funnet i tabellen. Bruke jokertegn-operatorene - stjerne (*) og spørsmålstegn (?) (ANSI-89-standard, brukt for standardspørringer) eller prosenttegn (%) og understrek (_) (ANSI-92, anbefalt som standard for SQL Server) , forenkler søket etter de nødvendige strengene og unngår mange feil. Skriv inn Corpus* eller Corpus% i stedet for hele produktnavnet. Fullfør forespørselen. Hvis én verdi i produktnavnfeltet begynner med ordet "Case", vil resultatet av forespørselen være det samme som i forrige tilfelle. Etter å ha utført spørringen, vil det angitte uttrykket bli supplert med operatoren Like "Body*". Denne operatoren lar jokertegn brukes når du søker i tekstfelt.
  2. Hvis du trenger å finne flere produkter, bruk In-operatoren. Den lar deg se etter likhet med en hvilken som helst verdi fra listen, som er spesifisert i parentes. Skriv inn i valgvilkårslinjen ("MiniTower-deksel"; "HDD Maxtor 20GB"; "FDD 3.5"). Spørringstabellen vil vise tre rader. In-setningen tillater ikke jokertegn.
  3. Lagre forespørselen din ved å klikke på fanen Fil(Fil) og kjøre kommandoen Lagre(Lagre). I vinduet Bevaring(Lagre som) skriv inn forespørselsnavnet Eksempel1. Merk at spørringsnavnet ikke skal falle sammen ikke bare med navnene på eksisterende spørringer, men også med navnene på tabeller i databasen.
  4. Lukk gjeldende forespørsel ved å bruke kontekstmenykommandoen Lukk(Lukk) eller ved å klikke på spørringsvindu-knappen Lukk(Lukk).
  5. Utfør en lagret spørring ved å markere spørringen i navigasjonsruten og velge kommandoen fra hurtigmenyen Åpen(Åpen).
  6. For å redigere en forespørsel, velg den i navigasjonsområdet og utfør kommandoen i hurtigmenyen Konstruktør(Design View).

Oppgave 2. Anta at du trenger å velge varer hvis pris ikke er mer enn 1000 rubler, og moms er ikke mer enn 10%, og også velge varer hvis pris er mer enn 2500 rubler. Resultatet må inneholde navnet på produktet (NAIM_TOV), dets pris (PRICE) og MVA (RATE_VAT).

  1. Opprett en ny spørring i designmodus, legg til PRODUKT-tabellen. I designervinduet (fig. 4.5), dra sekvensielt feltene NAME_IT, PRICE, RATE_VAT fra listen over felt i PRODUCT-tabellen til forespørselsskjemaet.
  2. Skriv det ned Utvalgsbetingelser(Kriterier), som vist i forespørselsskjemaet i fig. 4.5. En logisk OG-operasjon utføres mellom betingelser skrevet på samme linje. En logisk ELLER-operasjon utføres mellom betingelser skrevet på forskjellige linjer.
  3. Fullfør forespørselen, klikk på knappen Henrette(Løp) i gruppen resultater(Resultater). Et spørrevindu vil dukke opp på skjermen i tabellmodus med poster fra PRODUKT-tabellen som oppfyller de angitte utvalgsbetingelsene.
  4. Lagre forespørselen ved å utføre den aktuelle kommandoen i forespørselskontekstmenyen, som kalles når du plasserer markøren på forespørselsoverskriften. Gi den et navn Eksempel 2.

Oppgave 3. Anta at vi må velge alle fakturaer for en gitt periode. Resultatet må inneholde fakturanummer (NOM_NAK), lagerkode (CODE_SC), dato for forsendelse (DATE_SHIP) og totalkostnaden for de sendte varene (SUMMA_INKL).

  1. Opprett en ny spørring i designvisning, legg til INVOICE-tabellen. I designervinduet drar du sekvensielt alle nødvendige felt fra listen over felt i FAKTURA-tabellen til forespørselsskjemaet.
  2. For DATE_OTGR-feltet i linjen Utvalgsbetingelser(Kriterier) skriv mellom #01/11/2008# Og #31/03/2008#. Between-operatoren spesifiserer et datointervall (i ANSI-92 brukes #-tegnet i stedet enkelt sitater'). I tillegg lar denne operatoren deg spesifisere et intervall for en numerisk verdi.

For å forsterke dette, se videoopplæringen:

Du kan lage databaser, tabeller, skjemaer og andre rapporter i MS Access. Denne artikkelen vil hjelpe brukeren med å kjøre SQL-spørringer i MS Access. Du kan kjøre de samme spørringene som brukes i SQL for å hente data fra en database. Denne artikkelen er ment for brukere som nettopp har begynt å lære MS Access og ønsker å kjøre SQL-spørringer i MS Access. Den eneste betingelsen som er nødvendig før du begynner er at du har tilgang til databasen som brukes i organisasjonen.

Trinn


Det du trenger

  • Brukeren må ha tilgang til organisasjonens database
  • Brukeren kan kontakte teknologistøtte før du kjører spørringer via MS Access

Artikkelinformasjon

Denne siden har blitt vist 4443 ganger.

Var denne artikkelen til hjelp?

Få tilgang til DBMS

Microsoft Access er en relasjonstype DBMS, der alle verktøyene og egenskapene som er typiske for moderne systemer database ledelse. En relasjonsdatabase gjør det enklere å finne, analysere, vedlikeholde og beskytte data fordi de er lagret på ett sted. Access oversatt fra engelsk betyr "tilgang". MS Access er en av de mest kraftfulle, fleksible og brukervennlige DBMS. Du kan lage de fleste applikasjoner i den uten å skrive en eneste programlinje, men hvis du trenger å lage noe veldig komplekst, gir MS Access et kraftig programmeringsspråk - Visual Basic Application.

Populariteten til Microsoft Access DBMS skyldes følgende årsaker:

Tilgjengelighet og klarhet gjør at Access kan være en av de beste systemer raskt lage;

Mulighet for bruk av OLE-teknologi;

Integrasjon med Microsoft-pakken Kontor;

Full støtte for webteknologier;

Visuell teknologi lar deg hele tiden se resultatene av handlingene dine og korrigere dem;

Tilgjengelighet av et stort sett med "mastere" for å utvikle objekter.

Hovedtypene av objekter som programmet jobber med er: tabell, spørring, skjema, rapport, side, makro, modul.

En tabell er et objekt som brukes til å lagre data. Hver tabell inneholder informasjon om et objekt av en bestemt type. Tabellen inneholder felt (kolonner) som lagrer ulike typer data, og poster (rader). Hver tabell må ha en primærnøkkel definert (ett felt som har en unik verdi for hver post, eller flere felt hvis kombinerte verdi er unik for hver post), som er en unik identifikator for hver post i tabellen.

For å øke hastigheten på datatilgang, kan individuelle tabellfelt (eller et sett av dem) deklareres som indekser. En indeks er et verktøy som gir raskere søk og sortering i en tabell ved å bruke nøkkelverdier for å sikre unikheten til tabellrader. Tabellens primærnøkkel indekseres automatisk. Det er ikke tillatt å lage indekser på felt med enkelte datatyper.

En spørring er et objekt som lar brukeren hente ønsket data fra en eller flere tabeller. Forespørsler kan også opprette nye tabeller ved å bruke data fra én eller flere tabeller som allerede eksisterer. Den vanligste typen spørring er en henting-spørring. En utvalgsspørring velger data fra én eller flere tabeller basert på angitte forhold, og viser dem deretter i ønsket rekkefølge.

Et skjema er et objekt designet primært for å legge inn data, vise det på skjermen eller kontrollere driften av en applikasjon.

En rapport er et objekt designet for å lage et dokument som senere kan skrives ut eller inkluderes i et dokument i en annen applikasjon.

visuell utvikling programmering base

Side – Brukes for å få tilgang til data i gjeldende Access-database.

En makro er et objekt som er en strukturert beskrivelse av én eller flere handlinger som Access skal utføre som svar på en spesifikk hendelse.

En modul er et objekt som inneholder Microsoft Visual Basic-programmer som lar deg dele opp en prosess i mindre handlinger og oppdage feil som ikke ble funnet ved hjelp av makroer.

DBMS startes fra Start - Programmer - Microsoft Access. Utfør kommandoen Fil - Ny.

Grensesnittet for arbeid med databaseobjekter er enhetlig. For hver av dem er standard driftsmoduser gitt: Opprett (opprette en objektstruktur); Konstruktør (endre strukturen til objekter); Åpne (Vis, Kjør - designet for å fungere med databaseobjekter).

SQL Query Language

SQL (Structured Query Language) siden 1986. er et standard relasjonsdatabasespråk. Spesielt brukes den i Access- og Excel-applikasjoner.

SQL er et informasjonslogisk språk designet for å beskrive lagrede data, hente lagrede data og endre data. Opprinnelig var SQL den viktigste måten en bruker jobbet med en database på og var et lite sett med kommandoer (operatører) som tillot å lage tabeller, legge til nye poster i tabeller, hente poster fra tabeller, slette poster og endre tabellstrukturer. Etter hvert som SQL har blitt mer komplekst, har det blitt et mer applikasjonsorientert programmeringsspråk, og brukere kan nå bruke visuelle spørringsbyggere.

SQL-språket er en samling av operatorer:

Data Definition Language (DDL) operatører;

datamanipulasjonsoperatører (Data Manipulation Language, DML);

definisjonsoperatører for datatilgang (Data Control Language, DCL);

Transaction Control Language (TCL) operatører.

Spørringer i MS Access lagres og implementeres ved hjelp av SQL-språket. Selv om de fleste spørringer kan lages grafisk (mønsterspørringer), lagres de som SQL-setninger. I noen tilfeller (for eksempel i underspørringer) kan du bare bruke SQL.

SQL er et ikke-prosedyrespråk. Den erklærer ganske enkelt hva som må gjøres, og utførelsen overlates til DBMS (database management system).

SQL bruker logikk med tre verdier. Sammen med de tradisjonelle boolske verdiene TRUE og FALSE, brukes NULL (UKJENT eller INGEN DATA).

Operasjoner utføres på hele sett med data, i stedet for på individuelle elementer, som i andre programmeringsspråk.

En SQL-spørring består av setninger. Hver instruksjon kan inneholde flere setninger.




Topp