SQL-instructies bewerken om queryresultaten te verfijnen

Van toepassing op
Access voor Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Als uw query's niet hard genoeg werken, kunt u de resultaten beter richten door enkele eenvoudige SQL-instructies toe te voegen. Laten we eens kijken naar een paar typen SQL-instructies en de componenten of onderdelen die u kunt bewerken om de gewenste resultaten te verkrijgen.

In dit artikel

Een Select-instructie maken

Een SQL-selectie-instructie heeft twee tot drie componenten. Met de SELECT-component wordt aangegeven waar de database moet zoeken naar de gegevens en wordt gevraagd een specifiek resultaat te retourneren.

Opmerking

SELECT-instructies eindigen altijd op een puntkomma (;) aan het einde van de laatste component of op een afzonderlijke regel aan het einde van de SQL-instructie.

In de volgende select-instructie wordt in Access gevraagd om informatie op te halen uit de kolommen E-mailadres en Bedrijf, uit de tabel Contactpersonen, met name waar 'Seattle' wordt gevonden in de kolom Stad.

SQL-objecttabblad met een SELECT-instructie

De bovenstaande query bevat drie componenten: SELECT, FROM en WHERE.

1. okt. De SELECT-component bevat de kolommen die de gegevens bevatten die u wilt gebruiken, en heeft een operator (SELECT), gevolgd door twee aanduidingen (E-mail Address en Company). Als een aanduiding spaties of speciale tekens bevat (zoals 'E-mailadres'), plaatst u de aanduiding tussen vierkante haken.

2. okt. De FROM-component identificeert de brontabel. In dit voorbeeld heeft het een operator (FROM), gevolgd door een aanduiding (Contacts).

3. okt. De WHERE-component is een optionele component. Het voorbeeld bevat een operator (WHERE), gevolgd door een expressie (City="Seattle").

Zie Een eenvoudige selectiequery maken voor meer informatie over selectiequery's.

Hier volgt een lijst met algemene SQL-componenten:

SQL-component Wat gebeurt er Vereist ?
SELECT Vermelding van de velden die de gewenste gegevens bevatten. Ja
FROM Vermelding van de tabellen met de velden die in de SELECT-component worden vermeld. Ja
WHERE Aanduiding van veldcriteria waaraan moet worden voldaan door elke record die in de resultaten moet worden opgenomen. Nee
ORDER BY Aanduiding hoe de resultaten worden gesorteerd. Nee
GROUP BY In een SQL-instructie met statistische functies vermelding van de velden die niet in de SELECT-component worden samengevat. Alleen als er sprake is van dergelijke velden
HAVING In een SQL-instructie met statistische functies vermelding van de voorwaarden die gelden voor velden die in de SELECT-component worden samengevat. Nee

Elke SQL-component bestaat uit termen. Hier volgt een lijst met enkele veelvoorkomende SQL-termen.

SQL-term Definitie Voorbeeld
id Een naam waarmee een databaseobject wordt aangeduid, zoals de kolomnaam. [E-mail Address] en bedrijf
operator Een sleutelwoord waarmee een actie wordt aangeduid of gewijzigd. AS
constante Een waarde die niet wordt gewijzigd, zoals een getal of NULL. 42
expressie Een combinatie van aanduidingen, operators, constanten en functies die leidt tot één enkele waarde. >= Producten. [Prijs per stuk]

Naar boven

De SELECT-component aanpassen

Aanpassen Voorbeeld
Om alleen de unieke waarden weer te geven.
Gebruik het sleutelwoord DISTINCT in uw SELECT-component.
Als uw klanten bijvoorbeeld verschillende filialen hebben en sommigen hetzelfde telefoonnummer hebben, en u een telefoonnummer slechts eenmaal wilt zien, ziet uw SELECT-component er ongeveer als volgt uit:SELECT DISTINCT [txtCustomerPhone]
De manier wijzigen waarop een id in de gegevensbladweergave wordt weergegeven, ter verbetering van de leesbaarheid.
Gebruik de operator AS (een sleutelwoord waarmee een actie wordt aangeduid of gewijzigd) met een veldalias in uw SELECT-component. Een veldalias is een naam die u aan een veld toewijst, zodat de resultaten leesbaarder worden.
SELECT [txtCustPhone] AS [Telefoon klant]

De FROM-component aanpassen

Aanpassen Voorbeeld
U kunt een tabelalias of een andere naam die u aan een tabel toewijst, in een select-instructie gebruiken. Een tabelalias is handig als de naam van de tabelnaam lang is, vooral wanneer er meerdere velden met dezelfde naam uit verschillende tabellen zijn. Als u gegevens wilt selecteren uit twee velden met beide de naam ID, komt het ene uit de tabel tblCustomer en het andere uit de tabel tblOrder:
SELECT [tblCustomer]. [ID],
[tblOrder]. [ID]
Gebruik de operator AS om tabelaliassen te definiëren in de FROM-component:
FROM [tblCustomer] AS [C],
[tblOrder] AS [O]
U kunt deze tabelaliassen vervolgens als volgt gebruiken in uw SELECT-component:SELECT [C]. [ID],
[O]. [ID]
Gebruik joins om paren records uit twee gegevensbronnen te combineren tot één resultaat of om op te geven of records uit de tabellen moeten worden opgenomen als er geen overeenkomende record in de gerelateerde tabel voorkomt.
Voeg de tabellen samen, zodat de query de items uit de tabellen combineert en items worden uitgesloten wanneer er geen overeenkomende record in de andere tabel is
De FROM-component ziet er dan bijvoorbeeld als volgt uit:FROM [tblCustomer]
INNER JOIN [tblOrder]
ON [tblCustomer]. [CustomerID]=[tblOrder]. [Klantnummer]

Over het gebruik van joins

Er zijn twee soorten joins: inner joins en outer joins. Inner joins komen vaker voor in query's. Wanneer u een query met een inner join uitvoert, worden alleen die items weergegeven waarvoor in beide samengevoegde tabellen een waarde bestaat.

Met outer joins kunt u opgeven of er gegevens moeten worden opgenomen als er geen gedeelde waarde bestaat. Outer joins zijn directioneel, wat betekent dat u kunt opgeven of alle records uit de eerste tabel die in de join is opgegeven, moeten worden opgenomen (een linker-join), of dat alle records uit de tweede tabel in de join moeten worden opgenomen (een rechter-join). Een outer join heeft de volgende SQL-syntaxis:

FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 = table2.field2

Zie voor meer informatie over het gebruik van joins in een query Tabellen en query's koppelen.

Naar boven

De WHERE-component aanpassen

De WHERE-component bevat criteria waarmee het aantal items dat in een query wordt geretourneerd, wordt beperkt. Voorbeelden bekijken van querycriteria en hoe ze werken.

Een voorbeeld van de manier waarop u de WHERE-basiscomponent kunt aanpassen, is het beperken van de resultaten van een query. Stel dat u het telefoonnummer van een klant wilt vinden en alleen zijn achternaam kunt onthouden als Bagel. In dit voorbeeld worden de achternamen opgeslagen in een LastName-veld, dus de SQL-syntaxis:

WHERE [LastName]='Bagel'

Gebruik de WHERE-component ook om gegevensbronnen te combineren voor kolommen met overeenkomende gegevens, maar verschillende gegevenstypen. Dit is handig omdat u geen join kunt maken tussen velden met verschillende gegevenstypen. Het ene veld als criterium voor het andere veld gebruiken, met het sleutelwoord LIKE . Als u bijvoorbeeld gegevens uit de tabel Activa en de tabel Werknemers alleen wilt gebruiken wanneer het veld Activatype in het veld Activatype van de tabel Activa het getal 3 bevat in het veld Hoeveelheid van de tabel Werknemers, ziet uw WHERE-component er als volgt uit:

WHERE field1 LIKE field2

Belangrijk

U kunt geen criteria opgeven voor een veld dat met een statistische functie in een WHERE-component wordt gebruikt. In plaats daarvan gebruikt u een HAVING-component om criteria voor velden met statistische functies op te geven.

Naar boven

Aanpassen met de operator UNION

Gebruik de operator UNION als u de resultaten van verschillende vergelijkbare selectiequery's gecombineerd wilt bekijken. Stel dat uw database een tabel Producten en een tabel Services bevat en deze beide drie velden hebben: exclusieve aanbieding of product of service, prijs, garantie of garantie. Hoewel de tabel Products waarborginformatie bevat en de tabel Services garantie-informatie, zijn de basisgegevens hetzelfde. U kunt als volgt een samenvoegquery gebruiken om de drie velden uit de twee tabellen te combineren:

SELECT name, price, warranty, exclusive_offer
FROM Products
UNION ALL
SELECT name, price, guarantee, exclusive_offer 
FROM Services;

Wanneer u de query uitvoert, worden gegevens uit elke set corresponderende velden in één uitvoerveld gecombineerd. Gebruik de operator ALL om dubbele rijen in de resultaten op te nemen.

Opmerking

De instructie Select moet hetzelfde aantal uitvoervelden hebben, in dezelfde volgorde en met dezelfde of compatibele gegevenstypen. Voor een samenvoegquery zijn de gegevenstypen Numeriek en Tekst compatibel.

Zie Een samenvoegquery gebruiken om een samengevoegd resultaat uit meerdere query's weer te geven voor meer informatie over samenvoegquery's.

Naar boven