Gegroepeerd verzoek in toegang. Gegevens tellen met behulp van een query. Referentie voor geaggregeerde functies

Gegroepeerd verzoek in toegang. Gegevens tellen met behulp van een query. Referentie voor geaggregeerde functies

04.10.2021

Groepsbewerkingen toewijzen

Met groepsbewerkingen kunt u groepen records met dezelfde waarden in de opgegeven velden selecteren en een van de aggregatiefuncties voor deze groepen gebruiken.

Access biedt negen statistische functies:

  • som - de som van de waarden van een bepaald veld voor de groep;
  • Avg - gemiddelde van alle veldwaarden in de groep;
  • max, Min - maximale, minimale waarde van het veld in de groep;
  • count - het aantal veldwaarden in de groep, exclusief lege waarden;
  • StDev - standaarddeviatie van de gemiddelde waarde van het veld in de groep;
  • var - variantie van veldwaarden in de groep;
  • Eerste en laatste - de waarde van het veld van de eerste of laatste record in de groep.

Het resultaat van een query met groepsbewerkingen bevat één record voor elke groep.

Een query maken met groepsbewerkingen

Om een ​​query te maken met behulp van groepsbewerkingen, wordt een selectiequery gegenereerd. Het aanvraagformulier bevat velden waarvoor u | groeperen en de velden waarop statistische berekeningen moeten worden uitgevoerd.

De opdracht wordt uitgevoerd Bekijk | Groepsbewerkingen(Bekijken | Totalen) of klik op de knop op de Query Designer-werkbalk Groepsbewerkingen(Totalen). U kunt ook met de rechtermuisknop klikken en selecteren in het contextmenu Groepsbewerking(Totaal) (de muiscursor moet in het aanvraagformulier staan). De regel verschijnt in het aanvraagformulier Groepsbewerking (totaal), waarin de groepering is vastgelegd voor alle velden (Groeperen op).

Om berekeningen in een groep op een bepaald veld uit te voeren, moet je het woord groepering (croup By) erin vervangen door een statistische functie. U kunt de gewenste functie selecteren via de vervolgkeuzelijst in het veld.

Laten we eens kijken naar de constructie van een query met een groepsbewerking met als voorbeeld de tabel DELIVERY_PLAN.

Som-query

Bepaal wat het totale bedrag van elk van de goederen op grond van contracten aan kopers moet worden verstrekt. Alle gegevens over de hoeveelheid goederen die voor Levering zijn gepland, worden aangegeven in de tabel DELIVERY_PLAN.

Laten we een selectiequery maken voor de tabel DELIVERY_PLAN. Sleep vanuit de lijst van de tabel het veld item_code - productcode naar het aanvraagformulier. We zullen dit veld maken om het verder te groeperen. Sleep het veld aantal_post naar het aanvraagformulier, waarmee de somfunctie wordt berekend om de totale hoeveelheid van een bepaald artikel te berekenen dat in alle contracten is besteld.

druk op de knop Groepsbewerkingen(Totalen). Vervang de woordgroepering

(croup By) in kolom count_post per functie Som. Laten we hiervoor de lijst oproepen en deze functie selecteren. Het aanvraagformulier zal de vorm aannemen die wordt getoond in Fig. 4.13.

Het veld item_code geeft niet de productcode weer die is opgeslagen in de tabel DELIVERY_PLAN, maar de naam ervan. Dit wordt bepaald doordat in de tabel een lijst wordt gebouwd voor de field_codes op basis van de producttabel. Als uw database het veld tod_code niet converteert naar een keuzelijst met invoervak, zoals weergegeven in Hoofdstuk 3, de productcode wordt weergegeven in de querytabel.


Veldhandtekening Som- COL_POST kan worden vervangen door Bestelde goederen... Om deze handtekening in te voeren, schakelen we over naar de ontwerpmodus, plaats in het aanvraagformulier de muiscursor op het veld count_post en druk op de rechterknop. Selecteer in het contextmenu Eigendommen(Eigendommen). In het raam Veldeigenschappen(Veldeigenschappen) typ de regel in Handtekening(Bijschrift) - bestelde goederen.

De resultatentabel na het verfijnen van de query wordt getoond in Fig. 4A5.

Rijst. 4.15. Resultatentabel met gewijzigde veldhandtekening

Laten we de selectievraag opslaan onder de naam "Goederen besteld".

Verzoek met functie Graaf

Laten we voor elk van de contracten bepalen hoe vaak de goederen zijn verzonden. Het feit van verzending wordt vastgelegd met het document "Factuur".

Laten we een selectiequery maken op basis van de factuurtabel. Sleep vanuit de lijst van de factuurtabel het veld no_dog - het contractnummer naar het aanvraagformulier. Dit veld moet worden gebruikt om te groeperen. In feite komt de betekenis van het probleem neer op het tellen van het aantal rijen in de tabel met hetzelfde contractnummer, dus het maakt niet uit op welk veld de telfunctie wordt berekend. Laten we een willekeurig veld naar het aanvraagformulier slepen, bijvoorbeeld opnieuw no_dog.

druk op de knop Groepsbewerkingen(Totalen). Vervang de woordgroepering (Group By) in een van de kolommen met de naam num_dog door de functie count. Het aanvraagformulier zal de vorm aannemen die wordt getoond in Fig. 4.20.

Laten we de zoekopdracht opslaan onder de naam "Aantal zendingen onder contracten". Het resultaat van het uitvoeren van de query wordt getoond in Fig. 4.21.

Met query's kunt u niet alleen records uit Access-tabellen selecteren, maar ook verschillende statistische parameters berekenen. U kunt bijvoorbeeld het totale aantal contacten tellen en de datums van het eerste en laatste contact met elk van de mensen in de tabel Contacten weergeven. Volg deze stappen om een ​​dergelijke query in de ontwerpmodus te bouwen.

1. Klik in het databasevenster op de knop Vragen.

2. Dubbelklik op het pictogram Een query maken in ontwerpmodus.

3. Selecteer in het dialoogvenster dat wordt geopend (Fig. 17.6) de regel Contactpersonen.

4. Klikken op de knop Toevoegen voeg de geselecteerde tabel toe aan het bovenste deelvenster van het queryontwerp.

5. Markeer het item Lijst en klik nogmaals op de knop Toevoegen.

6. Door op de knop . te klikken Dichtbij sluit het dialoogvenster. De veldlijsten van de twee tabellen, verbonden door een linklijn, verschijnen in het ontwerpvenster.

7. Klik op de knop Groepsbewerkingen werkbalken. Er verschijnt een extra regel in het aanvraagformulier Groepsbewerking waarmee u statistische bewerkingen kunt uitvoeren op de waarden van specifieke velden.

Rijst. 17.6. Een tafel toevoegen

8. Sleep het veld Achternaam naar de cel Veld de eerste kolom van de constructor.

9. Sleep het veld naar dezelfde cel in de tweede kolom Naam tabellen Contacten.

10. Sleep in de derde, vierde en vijfde kolom van het queryontwerp het veld datum Lijst tabellen (fig. 17.7).

11. In de vervolgkeuzelijst met cellen Groepsbewerking in de derde kolom van het aanvraagformulier, selecteer Min.

12. Selecteer in dezelfde cel in de vierde kolom Macho.

13. Stel in de vijfde kolom het aantal bulkbewerkingen in. Groepsbewerkingen van de geconstrueerde query verwerken alle records van de lijsttabel die overeenkomen met een specifieke persoon uit de tabel met contactpersonen, en in plaats van de gegevens van de lijsttabel zelf, zullen ze alleen de waarde weergeven van de waarde berekend door een bepaalde formule in het overeenkomstige veld van het queryresultaat. De beschikbare groepsbewerkingen staan ​​vermeld in de tabel. 17.1.

TABEL 17.1. Groepsbewerkingen

Naam Functie
VoorwaardeDe modus voor het instellen van een selectievoorwaarde voor een veld, maar dat niet is gegroepeerd. Access verbergt zo'n veld automatisch.
UitdrukkingEen berekend veld waarvan de waarde wordt berekend met een complexe formule
Groeperen opEen veld dat een groep records definieert waarmee statistische parameters worden berekend. Eén groep omvat alle records waarvoor de veldwaarden Groeperen op hetzelfde zijn.
LaatsteLaatste waarde in de groep
EerstEerste waarde in de groep
VarVariatie van veldwaarden
StDevStandaarddeviatie van nulwaarden van het gemiddelde
GraafHet aantal records dat overeenkomt met een nul waarvan geen Null-waarde bevat
MachoMaximale waarde
MinMinimale waarde
GemGemiddelde veldwaarde
SomSom van veldwaarden over alle records

Opmerking Aangezien het vijfde veld van de query het aantal records berekent, kan elk veld van de tabel Lijst in de cel Veld van deze kolom worden geplaatst.

14. Klik op de knop Weergave om het verzoek te voltooien. Er verschijnt een tabel met vijf kolommen. De eerste twee kolommen bevatten de namen en achternamen van personen. Door hen wordt groepering uitgevoerd, dat wil zeggen, de berekening van de waarden van de rest van de queryvelden wordt uitgevoerd voor de records van de Lijst-tabel, die zijn gekoppeld aan één persoon. Zoals hierboven vermeld, wordt de correspondentie tussen een contactpersoon uit de tabel Lijst en een persoon uit de tabel Contactpersonen bepaald door de velden Contact_code, die worden gebruikt om deze twee tabellen te koppelen. De derde en vierde kolom van de vraag tonen respectievelijk de datum van het eerste (Min-functie) en laatste (Max-functie) contact met deze persoon. De vijfde kolom bevat het aantal records in de Lijsttabel (Count-functie) dat overeenkomt. deze persoon, dat wil zeggen het aantal contacten met hem. Het enige nadeel van de ingebouwde query zijn de onbegrijpelijke kolomnamen. Laten we ze aanpassen.

15. Klikken op de knop Weergave keer terug naar de queryconstructor.

16. Vervang in het veld in de derde kolom de naam Datum door de tekst Datum eerste contact: Datum. De rechterkant van deze expressie, die zich rechts van de dubbele punt bevindt, specificeert nog steeds de veldnaam en de linkerkant specificeert de kolomnaam van het queryresultaat. Zo kan aan elke kolom in de query een willekeurige naam worden toegewezen.

17. Voer in het veld in de vierde kolom Laatste contactdatum: Datum in.

18. Voer in de eerste rij van de vijfde kolom van het queryontwerp het aantal contacten: datum in.

Opmerking Helaas is deze techniek niet geschikt voor het wijzigen van de naam van een veld, waarvan de waarde niet wordt berekend, maar uit de tabel wordt verzonden. Dat wil zeggen, het is niet mogelijk om het veld Naam op deze manier te hernoemen.

19. Klik nogmaals op de knop. Weergave.

20. Sluit de aanvraag.

21. Om wijzigingen in de structuur op te slaan, klikt u op de knop Ja.

22. In het dialoogvenster Behoud voer de naam Final Query in en klik op de knop Oke.

Microsoft® Office Access 2007. Hoe de database te gebruiken. Wat is de basis van de structuur van de tape. Affiniteit met sjablonen. Het doel van deze cursus. Laden van de database. De opdracht OPSLAAN ALS kan worden gebruikt om een ​​kopie te maken. Welke van de volgende situaties geldt voor de bestandsindeling Access 200. Microsoft Office-knop. Drie tabbladen rapport lay-out opties. Maak een databank aan. Snelle beheersing van het programma.

"Toegang" - Soorten zoekopdrachten. Aanmaken van aanvragen. Maken van tabellen. Opstellen van rapportages. Maak een nieuwe Access-database. Bewerken van zoekopdrachten. Gegevens structureren. Een voorbeeld van een informatielogicadiagram. Database onderhoud en bescherming. Stadia van het bouwen van een database. Maken en bewerken van formulieren. Geautomatiseerd werkstation (AWP) in Microsoft Access. Maken van gegevensschema's. Databases: concept, basiselementen.

"Formulieren in Access" - Het veld in het formulier dat moet worden gefilterd. Hoe formulieren te maken in ACCESS. Overgangen door records. Selectie van records in het formulier. Ga naar het opgegeven item. Honden die van de eigenaar zijn. Uitvoeren van macro's. Schrijf de mcFilter-macro. Snelle weergave van het rapport. Records sorteren. Schrijf een macro. Overgang door ondergeschikte vormen. Selecteer een macro. Kies een macro. Bekijk gedetailleerde gegevens.

"Access 2007 Database" - Rapportweergavemodi. Elementeigenschappen. Door te groeperen. Maken van tabellen (sjablonen). Soorten verzoeken. Tafel. Formulieren. Macro-constructeur. Groepen macro's. Een macro is een verzameling macro's. SQL-modus. Een wachtwoord instellen / verwijderen. Werken met tabellen. Tafels ontwerpen. Rapporten. Maak een query die alle gegevens bevat. Macro's. Nieuwe velden toevoegen. Complexe filtering. Eigenschappen van de vorm en zijn elementen.

"MS Access-database" - Groepsnotitie. Monster verzoek. Delen van het rapport. Ingesloten macro's. Stadia van het maken van een interface. Query's met meerdere tabellen. Vertegenwoordiging. Doel en soorten verzoeken. Macro-constructie. Berekende velden. Vraag Wizard. MS-Access. Doel van elk van de secties. Groepsbewerkingen in query's. Indeling. Rapporten. Soorten gegevensverwerking. Vraag constructor. Samenhangende integriteit. Het formulier. Updateverzoeken.

Access 2010 - Voeg een opzoekveld toe aan een tabel. Gegevens toevoegen en opslaan. Doelstellingen van de cursus. Tabellen maken voor een nieuwe database. Maak een tabel in de tabelmodus. Methoden voor het maken van tabellen. Bespaar tijd met de Quick Start-velden. Kies de syntactisch correcte lijst met waarden uit de onderstaande suggesties. Tabellen maken voor de database. Verwerk in tafelmodus. Algemene informatie.

Vandaag gaan we query's in Access nader bekijken.


Zoals u al weet, zijn query's nodig om met gegevens in tabellen te werken.
Een aanvraag maken...
1) ... in het databasevenster, open Verzoeken
2) ... en maak een query met behulp van de constructor.



Gelieve NIET te gebruiken om vragen te stellen! Door de meester, omdat het je in staat stelt om alleen de eenvoudigste queries te maken, en ze vervolgens om te vormen tot meer geavanceerde is nog moeilijker dan het maken van een query in de constructor vanuit het niets.

Lege regels uitfilteren

Wanneer meerdere tabellen zijn gekoppeld, kunnen er lege rijen optreden.



Waarom gebeurt dit?
Het feit is dat in onze tabel tbPerson, samen met de eigenaren van de honden, ook de keurmeesters (Petrovskaya, Yelets, Tereshchuk) zijn opgenomen. Keurmeesters hebben niet het recht om hun honden mee te nemen naar de show, daarom zijn er in de regels met hun namen lege cellen met de namen van de honden.
Er zijn twee manieren om lege regels te verwijderen.
1. Stel een voorwaarde voor de betekenis van de naam van de hond Is niet nul, d.w.z. NIET LEEG MAKEN.



2. Of verander het type verbinding tussen tabellen in het tabelgebied: op een communicatielijn die een onnauwkeurig resultaat geeft, roep het contextmenu op en verander Combineer opties.



De vraag is: welke instellingen moet u wijzigen in het dialoogvenster met opties voor samenvoegen?

Berekende zoekopdrachten

Tot nu toe hebben we alleen records geselecteerd voor verschillende aandoeningen. Maar met Access kunt u niet alleen de gegevens in de tabellen bekijken, maar ook BEREKENINGEN maken: op de geboortedatum om de leeftijd te bepalen; van de naam, achternaam en patroniem om een ​​achternaam met initialen te maken; de totale aankoopprijs bepalen op basis van de eenheidsprijs van een product en de hoeveelheid ervan; op de datum van uitgifte van het boek in de bibliotheek om het bedrag van de boete voor schulden te bepalen en nog veel meer. Voor berekeningen worden ingebouwde functies gebruikt (vergelijkbaar met die in Excel).


De eenvoudigste handeling is: toevoeging van lijnen... Laten we in een cel een uitdrukking schrijven om zo'n zin weer te geven: eigenaar uit de stad dorp .
Schrijf hiervoor in de bovenste regel van de nieuwe kolom van het voorwaardengebied: + “van de stad” +.



Veldnamen staan ​​tussen vierkante haken, regelfragmenten staan ​​tussen aanhalingstekens en er staan ​​toevoegingstekens tussen.


Uitdrukkingen voor berekeningen worden op de bovenste regel geschreven ( Veld) gebied van voorwaarden. Tot nu toe hebben we voorwaarden in de onderste regels geschreven ( Selectievoorwaarden).


Om niet in de war te raken: op de bovenste regel schrijven we WAT op het scherm moet worden weergegeven, en dan (onderaan) - onder WELKE VOORWAARDEN.


Oefening: schrijf een uitdrukking om de achternaam van de eigenaar in één cel weer te geven en de stad waarin hij woont tussen haakjes. Zoals dit: Ivanov (Moskou)... Plaats en achternaam moeten in de tabel worden vervangen.

Expressiebouwer

Om het gemakkelijker te maken om uitdrukkingen te bewerken, is er een speciale editor - "Expression Builder". Het ziet er zo uit:



En het wordt aangeroepen met behulp van het contextmenu: u moet de cursor op de cel plaatsen waar u de uitdrukking wilt schrijven:



In de expressiebuilder kunt u functies uit de bibliotheek selecteren:



en gegevens uit tabellen (u kunt ALLEEN de tabellen gebruiken die in deze query worden gebruikt en in het gegevensgebied worden weergegeven):



Wanneer u dubbelklikt op een veldnaam of functie in de lijst, voegt Access vaak het woord "expressie" in om aan te geven dat u op DEZE PLAATS andere functies en veldnamen kunt invoegen. Vergeet niet de extra woorden "expressie" te verwijderen!


We maken kennis met tekst en tijdelijke functies, evenals de voorwaardelijke operator Iif (voorwaarde; indien-waar; indien-onwaar).


Tekst functies maken het converteren van stringvariabelen mogelijk:
Links ("Ivanov"; 2) = "Yves" laat n linker tekens achter
LCase ("Ivanov") = Ivanov maakt alle letters in kleine letters
InStr (1; "Ivanov"; "maar") = 4 vindt een subtekenreeks (derde argument) in een tekenreeks (tweede argument) en is gelijk aan de positie (vanaf het begin) van een subtekenreeks in een tekenreeks
Len ("Ivanov") = 6 geeft het aantal tekens in een regel weer
StrComp ("Ivanov"; "Petrov") = -1 vergelijkt twee strings: als ze gelijk zijn, retourneert het 0
ander…


Tijdelijk kunt u werken met tijdelijke variabelen:
Maand (# 12.04.2007 #) = 4
Jaar (# 12.04.2007 #) = 2007
Dag (# 12.04.2007 #) = 12.
Nu () = 28-4-2008 14:15:42 (huidige datum en tijd)
Datum () = 28.04.2008 (de datum van vandaag)
DateDiff ("d"; # 12.04.2007 #; # 28.04.2007 #) = 16 vindt het verschil tussen twee datums ("d" - in dagen, "ww" - in weken, "m" - in maanden, "jjjj " - in jaren, enz.)
ander…


denkspelletje proces voorwaardelijke expressies:
als (<=1; «щенок»; «взрослый») аналог функции ЕСЛИ из Ecxel.
ander…


Oefening: schrijf een uitdrukking die een achternaam maakt met initialen van de achternaam, voornaam en patroniem. Ivanov Ivan Ivanovitsj -> Ivanov I.I.
Oefening
Oefening
Toevoeging: Er zijn twee manieren om de leeftijd van een hond te berekenen, de ene nauwkeuriger, de andere minder:
1) trek het geboortejaar van de hond af van het lopende jaar;
2) Bereken met behulp van de DateDiff-functie hoeveel dagen er zijn verstreken vanaf de geboorte tot vandaag. Pas de ene methode toe in een van de taken en de andere in de andere.

Parameterquery's

Wanneer je rent verzoek met parameter, wordt het, in tegenstelling tot een gewone zoekopdracht voor een selectie, niet onmiddellijk uitgevoerd, maar vraagt ​​het u eerst in een dialoogvenster om enkele selectievoorwaarden te verduidelijken. Wij willen bijvoorbeeld volledige informatie ontvangen over een hond met een bepaald toernooinummer.



Dit verzoek is als volgt ingedeeld:



Op de plaats waar de selectievoorwaarde normaal staat, staat nu een vraag (tussen vierkante haken) die aan de gebruiker wordt gesteld. En het antwoord van de gebruiker, je raadt het al, wordt als selectiecriterium in deze cel geplaatst.


Oefening: maak een query die alle honden op achternaam van de eigenaar weergeeft, wat een vrije parameter is.

Gegroepeerde zoekopdrachten

Met behulp van expressiebuilders kunnen we bewerkingen op één rij uitvoeren: waarden in cellen toevoegen, gegevens transformeren.
Maar wat als we meerdere lijnen tegelijk moeten verwerken: bereken de som van de punten, vind het aantal lijnen met dezelfde waarde van een bepaald veld?
Hiervoor wordt groepering gebruikt (het lijkt erg op samenvatten in Excel).


Laten we tellen hoeveel honden van elk ras naar de show kwamen. Om dit te doen, verplaatsen we slechts twee velden naar het gebied met voorwaarden: bijnaam en ras - en noemen we een extra regel groepsoperaties(via het contextmenu in het voorwaardengebied):



Laten we nu de honden per ras groeperen en het aantal verschillende bijnamen in elke groep tellen:



Laten we de resultaten van de tentoonstelling samenvatten en de gemiddelde score voor het exterieur, de gemiddelde score voor training en hun som berekenen.


Voeg een tabel met scores (tbMarks) toe aan het tabelgebied. We groeperen de scores op het toernooinummer van de hond en kiezen onder de groepsoperaties de gemiddelde waarde Avg (uit het Engels. gemiddeld- het gemiddelde).


Voer uw query uit en merk in de weergavemodus op dat de kolommen met groepsbewerkingen een dubbele naam hebben (bewerking + veldnaam). Dit is voor ons handig bij het berekenen van het aantal punten.





U kunt waarden ook afronden op één decimaal: Rond (+; 1)


Oefening: Ontdek welke hond de meest controversiële meningen van de keurmeesters veroorzaakte. Om dit te doen, trekt u het minimum van de maximumscore af.

Wijzigingsverzoeken, verwijderingen, toevoegingen

In de eerste les hebben we het al gehad over het feit dat met query's niet alleen gegevens uit tabellen kunnen worden bekeken, maar ook records kunnen worden bewerkt: nieuwe toevoegen, verwijderen, wijzigen. U kunt het type verzoek wijzigen met behulp van de lijst met verzoeken op de werkbalk.



De databankbeheerder ontving aan de vooravond van de beurs nieuwe informatie:
1) Desi's hond is ziek en kan niet deelnemen aan de tentoonstelling;
2) per ongeluk werd de Guardian, die eigenlijk een Engelse setter is, vermeld als een Ierse setter;
3) de eigenaar van Migunova heeft een aanvraag ingediend voor deelname aan de tentoonstelling van een van haar andere honden (bijnaam: Harry, ras: Gordon Setter, geslacht: m, geboortedatum: 15.09.07).


Laten we beginnen met het bewerken van de database.
1) Verwijder het record uit Desi.
Maak een quDelDog-verzoek. Het type verzoek is voor verwijdering. Met een wijziging in het type verzoek verandert ook de reikwijdte van de voorwaarden enigszins. Er is een nieuwe cel verschenen Verwijderen... Daaronder geeft u de voorwaarde aan waaronder u de te verwijderen records wilt selecteren. Zelfs als u een selectievoorwaarde opgeeft voor één veld, wordt het ALL-record verwijderd.



Nadat u op het "uitroepteken" heeft geklikt, verschijnt er een bericht op het scherm dat de invoer is verwijderd. Nu open tbHondentafel en zorg ervoor dat Desi er niet in zit.


2) Verander voor de Guardian de Ierse setter in de Engelse setter.
Maak een quUpdateDog-verzoek. Verzoektype - voor update. We vinden de Guardien en updaten zijn ras.



open doen tbHondentafel en zorg ervoor dat het Guardien-ras een Engelse Setter is.


3) Voeg een item toe met Harry.
Maak een query quAddDog. Verzoektype - toevoegen. Add-query's hebben één bijzonderheid: het tabelgebied toont NIET de tabellen WAAR u het record toevoegt, maar WAAR u de gegevens krijgt (indien nodig). U specificeert de doeltabel (waaraan records worden toegevoegd) in het dialoogvenster dat verschijnt zodra u het querytype instelt (om toe te voegen):



Aangezien we geen gegevens uit andere tabellen halen, maar een nieuw record maken, moet het tabelgebied LEEG zijn! (er mogen geen tabellen zijn). In het conditiegebied in de regel Veld je schrijft WAT toe te voegen (nieuwe waarde voor elk veld), en op de regel Toevoegen WAAR (veldnamen):



open doen tbHondentafel en zorg ervoor dat Harry erin verschijnt!

SQL-querytaal

Wanneer u op het uitroepteken klikt, wordt het verzoek uitgevoerd. Zo ziet het eruit voor een beginner.
Professionals weten dat in feite op dit moment een statement wordt uitgevoerd in een speciale querytaal SQL. Feit is dat Access niet het enige databasebeheersysteem (DBMS) is. Misschien heb je op internet gehoord over DBMS als MySQL, FreeBSD ??? Access biedt gewoon een zeer gebruiksvriendelijke interface om met de database te werken, en in andere SU's is er geen knop met een uitroepteken. Maar er is noodzakelijkerwijs een speciaal venster waarin u SQL-instructies kunt schrijven.
Met Access kunt u ook query's bewerken in de SQL-instructiemodus:



De regels van de SQL-taal zijn niet zo ingewikkeld. U kunt het zelf zien! Maak een eenvoudige zoekopdracht (toon bijvoorbeeld de naam, het ras en de geboortedatum van een hond met de naam Harry). Open nu uw zoekopdracht voor Harry in SQL-modus!
De instructies zijn heel eenvoudig:
SELECTEER veld1, veld2, ...
VAN tafel1, tafel2, ...
WAAR voorwaarde1, voorwaarde2, ...


Open nu de update, wijzig, verwijder query's (quDelDog, quUpdateDog, quAddDog) in SQL-modus en noteer de sjablonen van hun SQL-statements op een stuk papier (zoals het net werd gedaan voor de select-query).


Query's met een parameter, query's om te groeperen, query's met berekeningen zijn dezelfde SQL-query's, maar met iets complexere selectievoorwaarden. De SQL-taal is een onmisbaar hulpmiddel voor wie met databases werkt!

Taken

Dit zijn de onderwerpen die we hebben behandeld:
- enkelvoudige en samengestelde selectievoorwaarden
- LIKE-operator
- keuze uit meerdere tafels
- expressiebouwer
- query's met een parameter
- groeperingsverzoeken
- verzoeken om update, toevoegen, verwijderen
- SQL-querytaal.


Het zijn er veel! Maar als je ze eenmaal onder de knie hebt, kun je alle informatie in de database vinden.


Test je kennis! Voer de volgende query's uit in uw database (of hernoem de query's die al zijn uitgevoerd, zodat hun namen overeenkomen met de namen van de taken):

1.sample

quSelectHond: Vind alle Shar Pei en Gordon Setters uit de regio's (NIET uit Moskou); gebruik de niet-gelijke operator.

2.Like operator

quLike: Vind alle MTS-abonnees (die met een mobiel telefoonnummer beginnend met 8 (916) ...).

3.expressies

quEvalText: Schrijf een uitdrukking die een achternaam maakt met initialen van de achternaam, voornaam en patroniem. Ivanov Ivan Ivanovitsj -> Ivanov I.I.
quEvalDate: schrijf een uitdrukking die berekent hoe oud een hond is op basis van zijn geboortedatum.
quEvalIif: schrijf een uitdrukking die naar leeftijd bepaalt, in welke leeftijdscategorie de hond is: "puppy" - tot een jaar; "Junior" - van één tot twee jaar; "Senior" - meer dan twee jaar oud.
Toevoeging: Pas in de ene taak toe om de leeftijd van de hond te berekenen, in de andere - een andere: 1) trek het geboortejaar van de hond af van het huidige jaar; 2) Bereken met behulp van de DateDiff-functie hoeveel dagen er zijn verstreken vanaf de geboorte tot vandaag.

4.parameter

quParameter: maak een query die alle honden op achternaam van de eigenaar weergeeft, wat een vrije parameter is.

5.groeperen

quGroep: Ontdek welke hond de meest controversiële meningen van de keurmeesters veroorzaakte.

6.database bewerken

Kort voor de tentoonstelling vertrok de eigenaar Gorokhovets naar een permanente verblijfplaats (permanente verblijfplaats) in Duitsland en overhandigde hij alle honden aan zijn vriend Mikhail Igorevich Karpov. Verplicht:
1) quAddEigenaar: een record toevoegen over de nieuwe eigenaar;
2) quUpdateEigenaar: verander de eigenaar-ID van de Gorokhovets-honden in Karpov's ID;
3) quDelOwner: verwijder Gorokhovets uit de database.


Ik wacht op uw databases met voltooide taken, evenals sjablonen van SQL-instructies voor query's voor bijwerken, wijzigen, verwijderen.

6.1. Berekende velden.

6.2. Maak expressies met de Expression Builder.

6.3. Een overzicht van de ingebouwde functies van het MS Access DBMS.

6.4. Samenvattende vragen.

6.5. Kruisvragen.

Heel vaak is het bij het vormen van een reeks records vereist om berekeningen uit te voeren op de gegevens (bepaal de leeftijd van de werknemer, de kosten van de bestelling, het percentage van de verkoop, markeer een deel van de artikelcode, enz. is, informatie weergeven die niet in de database is opgeslagen) of bepaalde bewerkingen uitvoeren voor directe verwerking van de geselecteerde gegevens.

In MS Access QBE worden dergelijke mogelijkheden geboden via berekende velden en groepsbewerkingen.

6.1. Berekende velden

Een berekend veld is een uitdrukking die bestaat uit operatoren (rekenkunde, vergelijking, boolean, aaneenschakeling) en operanden. Constanten, ingebouwde of door de gebruiker gedefinieerde functies en identifiers kunnen bijvoorbeeld als operanden worden gebruikt

Kosten: goederen! Prijs * Aantal * (1-korting)

Aantal mannen: som (IIf (geslacht = "m"; 1; 0))

Volledige naam: Achternaam & "" & Links (Voornaam; 1) & "." & Links (Middelste naam; 1) & "."

Kosten, Aantal mannen en Volledige naam zijn de namen van berekende velden en worden weergegeven in tabelmodus in de kolomkop, de dubbele punt fungeert als scheidingsteken tussen de naam van het berekende veld en de uitdrukking.

Als de naam van een tabel of veld spaties bevat, moet de identifier in de uitdrukking bijvoorbeeld tussen vierkante haken staan

Kosten: Prijs * [Artikelhoeveelheid]

Een berekend veld wordt rechtstreeks in het QBE-formulier gemaakt door een uitdrukking in een cel in te voeren Veld elke vrije kolom. Berekeningsresultaten die in het veld worden weergegeven, worden niet opgeslagen in de basistabel. Elke keer dat de query wordt uitgevoerd, worden berekeningen opnieuw uitgevoerd, zodat de resultaten altijd de huidige inhoud van de database vertegenwoordigen.

U kunt de berekende resultaten niet handmatig bijwerken.

Om complexe expressies te bouwen, bevat MS Access een hulpprogramma genaamd Expressie bouwer.

6.2. Uitdrukkingen maken met behulp van de opbouwfunctie voor expressies

De Expression Builder kan worden gestart door te klikken op de toets Bouwen op de werkbalk Query-constructor of door de menuopdracht te selecteren Bouw ....

Figuur 6.2. Dialoogvenster Expression Builder
met een gevormde uitdrukking

6.3. Overzicht van ingebouwde DBMS-functiesMEVROUW Toegang

Het MS Access DBMS bevat meer dan 100 ingebouwde functies (Figuur 6.3) die kunnen worden gebruikt bij het vormen van een berekend veld of bij het instellen van een selectievoorwaarde.

Retourneert de waarde van de dag van de maand van 1 tot 31

Retourneert een maandwaarde van 1 tot 12

MonthName (maand [; vlag])

Retourneert de naam van de maand die overeenkomt met het maandnummer: 1 - januari, 2 - februari, enz. Als de waarde van de argumentvlag Waar is, retourneert de functie de afkorting van de maand: 1 - Jan, 2 - Feb, enz. .

Retourneert een jaarwaarde van 100 tot 9999

Weekdag (datum [; datum])

Als er geen nummer is opgegeven, wordt een dag van de week geretourneerd van 1 (zondag) tot 7 (zaterdag). Als getal 0 is, wordt een dag van de week geretourneerd van 1 (maandag) tot 7 (zondag)

Retourneert een geheel getal van 0 tot 23 dat het uur vertegenwoordigt

DatePart (interval; datum)

Retourneert een numerieke waarde op basis van de waarde van het intervalargument:

"q" - kwart (van 1 tot 4);

"m" - maand (van 1 tot 12);

"jjjj" - jaar (van 100 tot 9999);

"ww" - week (van 1 tot 53);

enz. (zie de help voor de functie).

Retourneert de huidige systeemdatum

Vervolg van tabel 6.1

Beschrijving

Links (tekst; n)

Retourneert de linker n tekens van de argumenttekst

Rechts (tekst; n)

Retourneert de juiste n tekens van de argumenttekst

Midden (tekst; startpositie [; n])

Retourneert n tekens vanaf de startpositie van het tekstargument. Als n niet is opgegeven, worden alle tekens tot aan het einde van de tekenreeks geretourneerd, te beginnen vanaf de startpositie van het tekstargument.

Retourneert het aantal tekens (tekenreekslengte) in het tekstargument

LTrim (tekst)

Retourneert de tekenreekswaarde van het tekstargument zonder voorloopspaties

RTrim (tekst)

Retourneert de tekenreekswaarde van het tekstargument zonder volgspaties

Trimmen (tekst)

Retourneert de tekenreekswaarde van het tekstargument zonder voorloop- en volgspaties

Retourneert de tekenreekswaarde van het argumentnummer

Formaat (variabel; formaat)

Retourneert de waarde van de argumentvariabele in het formaat dat wordt gegeven door het argumentformaat

6.3. Overzichtsvragen

Bij het analyseren van gegevens zijn vaak niet individuele records van belang, maar de totalen voor groepen gegevens, bijvoorbeeld:

Het aantal transacties met Partners voor een bepaalde periode;

Gemiddelde omzet voor elke maand van het voorgaande jaar.

Antwoorden op dergelijke vragen worden gegeven door de laatste vraag.

Om de totale waarden te berekenen, klikt u op de knop Groepsbewerkingen op de werkbalk Query-constructor zodat de regel op het QBE-formulier verschijnt Groepsbewerking(na de tabelnaam).

Standaard wordt voor elk veld dat in het aanvraagformulier is ingevoerd de waarde ingesteld Groepering(er worden geen resultaten opgesomd).

Om samen te vatten, is het noodzakelijk om de installatie te vervangen Groepering voor een bepaalde eindfunctie. Het MS Access DBMS biedt 9 functies (tabel 6.2), die de uitvoering van groepsbewerkingen verzorgen.

Tabel 6.2

Afspraak

Retourneert de som van een set waarden

Retourneert het rekenkundig gemiddelde van een set waarden

Retourneert de kleinste waarde uit een reeks waarden

Retourneert de grootste waarde uit een reeks waarden

Retourneert het aantal records in een set niet-null-waarden

Retourneert de eerste waarde van een veld in een groep

Retourneert de laatste waarde van een veld in een groep

Retourneert de standaarddeviatie van een reeks waarden

Retourneert de variantie van een set waarden

Groepsbewerking er is een installatie Uitdrukking... Deze instelling wordt toegepast wanneer de uitdrukking (regel Veld) gebruikt verschillende samenvattingsfuncties.

In de vervolgkeuzelijst met strings Groepsbewerking er is een installatie Voorwaarde... Deze instelling wordt toegepast wanneer de selectievoorwaarde is geschreven in de rij Criteria, maar de gegevens van de kolom (velden) mogen niet deelnemen aan de groepsbewerking.

Om complexere statistische problemen in het MS Access DBMS op te lossen, is er een speciaal type query beschikbaar - kruisquery's.

6.4. Kruisvragen

Kruiszoekopdracht Is een speciaal type groepsquery die de resultaten van statistische berekeningen weergeeft op basis van de waarde van één veld in de tabel.

Drie basisbronvelden zijn voldoende om een ​​kruisverwijzingsquery te maken. Door waarden van één veld te herhalen, worden de namen van de koppen van de rijen van de uiteindelijke (draai)tabel gevormd (Figuur 6.4). Door waarden van een ander veld te herhalen, worden de namen van de kolomkoppen van de uiteindelijke (draai)tabel gevormd. De resultaten van de aggregatie voor het derde veld worden weergegeven in de cellen van de draaitabel (waardegebied). Een voorbeeld van een kruisquery in ontwerpmodus wordt getoond in Afbeelding 6.5, en de queryresultaten worden weergegeven in Afbeelding 6.5. 6.6.

Er kunnen meerdere velden in het rijkopgedeelte worden geplaatst, terwijl er slechts één veld in andere gebieden kan worden geplaatst.

Het is toegestaan ​​om de selectievoorwaarden in de kruisaanvraag te specificeren. Sorteren kan alleen worden uitgevoerd op velden in het rijkopgebied.

Figuur 6.4. Indeling kruistabel


Figuur 6.5. Gevormde kruisverwijzingsquery in QBE


Figuur 6.6. Het resultaat van het uitvoeren van een query in de modus Tabellen

© 2021 huhu.ru - Farynx, onderzoek, loopneus, keelaandoeningen, amandelen