SQL CONTAINS begrijpen
SQL CONTAINS wordt gebruikt voor full-text searches, waarmee je databases kunt bevragen op specifieke woorden, zinnen of patronen binnen tekstgegevens. Het is vooral handig om gerichte informatie te vinden in grote tekstvelden waarvan de exacte locatie niet vooraf bekend is.
Syntaxis en parameters
De basissynthaxis voor SQL CONTAINS is als volgt:
CONTAINS (column_name, 'search_pattern')
Belangrijke onderdelen zijn:
- Kolomnaam: Het veld waarin de zoekopdracht wordt uitgevoerd. Dit moet een full-text geïndexeerde kolom zijn.
- Zoekpatroon: De tekst die je binnen de kolom wilt vinden, tussen enkele aanhalingstekens.
Operatoren en wildcards
Om je zoekopdracht te verfijnen, ondersteunt SQL CONTAINS verschillende operatoren:
AND&OR: Gebruik deze om meerdere zoektermen te combineren.NEAR: Vindt woorden die binnen een bepaalde nabijheid van elkaar staan.- ASTERISK (
*): Werkt als een wildcard voor zoekopdrachten waarbij het exacte woord deel kan uitmaken van een grotere string.
SQL CONTAINS implementeren
Laten we bekijken hoe je SQL CONTAINS toepast met praktische voorbeelden:
Basisgebruik
Om te zoeken naar de termen "apple" en "orange" in een kolom met de naam "fruit", kun je het volgende gebruiken:
CONTAINS (fruit, '"apple" AND "orange"')
Deze query retourneert rijen waarin beide termen voorkomen in de kolom "fruit".
Geavanceerde zoekopdrachten
Voor complexere zoekopdrachten kun je CONTAINS combineren met andere SQL-functies om verfijnde queries te maken, zoals zoeken naar zinnen die dicht bij elkaar staan of wildcards gebruiken om varianten van een woord te vinden.
Geavanceerde zoekopdrachten kunnen bestaan uit het combineren van CONTAINS met logische operatoren, gebruik van nabijheidszoekopdrachten en inzet van wildcard-tekens om patronen of specifieke datapunten in tekstvelden te ontdekken.
CONTAINS combineren met logische operatoren
SQL CONTAINS ondersteunt het gebruik van logische operatoren zoals AND, OR en NOT om zoekopdrachten op basis van meerdere criteria te verfijnen. Om bijvoorbeeld items te vinden die zowel "technology" als "innovation" bevatten in een tekstkolom, kun je je query als volgt opzetten:
SELECT
*
FROM
your_table
WHERE
CONTAINS(
your_column, '"technology" AND "innovation"'
);
Om daarentegen items te vinden die een van beide termen bevatten, gebruik je OR:
SELECT
*
FROM
your_table
WHERE
CONTAINS(
your_column, '"technology" OR "innovation"'
);
Nabijheidszoekopdrachten
De NEAR-operator is vooral nuttig om woorden of zinnen te vinden die dicht bij elkaar in de tekst voorkomen. Deze mogelijkheid is waardevol wanneer de relatie tussen termen hun betekenis beïnvloedt. Bijvoorbeeld, om te zoeken naar "climate" in de buurt van "change" binnen 10 woorden van elkaar:
SELECT
*
FROM
your_table
WHERE
CONTAINS(
your_column, 'NEAR((climate, change), 10)'
);
Deze query geeft prioriteit aan records waar "climate" en "change" nauw met elkaar samenhangen, wat relevantere resultaten oplevert voor specifieke onderzoeksvragen.
Wildcard-zoekopdrachten
Wildcards vergroten de reikwijdte van zoekopdrachten doordat variabele tekens kunnen worden meegenomen. De asterisk (*) fungeert als wildcard in CONTAINS-queries, waarmee je kunt zoeken naar gedeeltelijke overeenkomsten. Om bijvoorbeeld varianten van "compute" te vinden, zoals "computer", "computing" of "computation", kun je gebruiken:
SELECT
*
FROM
your_table
WHERE
CONTAINS(your_column, '"compute*"');
Deze aanpak is vooral handig wanneer je een brede set gegevens rond een stamwoord wilt vastleggen of wanneer je niet zeker weet welke exacte termen in de database zijn gebruikt.
Geavanceerde patroonherkenning
Voor situaties die nog geavanceerdere patroonherkenning vereisen, kun je SQL CONTAINS combineren met de LIKE-operator of reguliere expressies. Hoewel CONTAINS uitblinkt in full-text search, bieden LIKE en regex patroonflexibiliteit, zoals het matchen van specifieke tekenreeksen of formaten (bijv. e-mailadressen of telefoonnummers).
Praktisch voorbeeld: technieken combineren voor uitgebreide zoekopdrachten
Stel, je moet database-items vinden die te maken hebben met milieutechnologie, maar je weet niet precies welke formuleringen in de tekst zijn gebruikt. Je kunt verschillende technieken combineren zoals hieronder:
SELECT
*
FROM
your_table
WHERE
CONTAINS(
your_column, '("environment*" NEAR "technology*", 10) OR "climate change" OR "renewable energy"'
)
AND your_column LIKE '%sustainability%';
Deze query laat zien hoe je CONTAINS kunt gebruiken voor nabijheids- en wildcard-zoekopdrachten, terwijl je ook de LIKE-operator inzet voor extra patroonmatching. Zo krijg je een robuuste strategie voor complexe tekstzoekopdrachten.
Praktisch voorbeeld van SQL CONTAINS in data science
Als data scientist werk ik met allerlei soorten datasets, vaak tekstdatasets over klanttevredenheid en feedback. In dit voorbeeld gaan we op zoek naar specifieke trefwoorden die tevredenheid of ontevredenheid in klantfeedback kunnen aangeven.
|
ID |
FeedbackText |
SatisfactionScore |
|
1 |
I am very happy with the service. |
5 |
|
2 |
Not satisfied with the product quality. |
2 |
|
3 |
The delivery was quick, and the product works great... |
5 |
|
4 |
Customer service was unhelpful and rude. |
1 |
|
5 |
Happy with my purchase. Will recommend! |
4 |
CustomerFeedback-tabel
Om CONTAINS te gebruiken, moet in je database mogelijk Full-Text Search zijn ingeschakeld.
Het trefwoord CONTAINS wordt gebruikt om records te vinden waarin de kolom “FeedbackText” het woord “happy” bevat.
SELECT
*
FROM
CustomerFeedback
WHERE
CONTAINS(FeedbackText, 'happy');
Bovenstaande query retourneert de rijen uit CustomerFeedback waarin de kolom FeedbackText het woord “happy” bevat.
|
ID |
FeedbackText |
SatisfactionScore |
|
1 |
I am very happy with the service. |
5 |
|
3 |
The delivery was quick, and the product works great... |
5 |
|
5 |
Happy with my purchase. Will recommend! |
4 |
Je kunt het CONTAINS-commando niet gebruiken in een SQLite-database. Gebruik in plaats daarvan:
SELECT
*
FROM
CustomerFeedback
WHERE
FeedbackText LIKE '%happy%';
Verder dan CONTAINS: patroonmatching en tekenreeksbewerking
Hoewel CONTAINS krachtig is voor tekstzoekopdrachten, biedt SQL ook andere technieken voor het werken met tekstdata:
LIKE-operator
Net als CONTAINS maakt de LIKE-operator patroonmatching mogelijk, maar met een eenvoudigere syntaxis, waarbij % als wildcard wordt gebruikt. Om bijvoorbeeld elke productnaam te vinden die "apple" bevat:
SELECT
*
FROM
Products
WHERE
productName LIKE '%apple%'
Geavanceerde tekenreeksfuncties
SQL biedt functies zoals LEFT en REVERSE om delen van tekststrings te extraheren of te bewerken, wat uitgebreide mogelijkheden biedt voor tekstanalyse en -bewerking. Je kunt hier meer over leren in onze cursus Cleaning Data in SQL Server Databases.
Conclusie
De SQL-CONTAINS-functie en de bijbehorende mogelijkheden voor tekstbewerking zijn essentiële tools voor dataprofessionals. Door deze technieken te begrijpen en toe te passen, kun je tekstdata in je databases effectief doorzoeken en analyseren, inzichten ontsluiten en je data-analyseprojecten versterken.
Onthoud: de effectiviteit van je queries hangt niet alleen af van het beheersen van de syntaxis, maar ook van je begrip van de context en de structuur van je data. Oefen met datasets uit de praktijk en SQL-projecten en verken verschillende functies om de kracht van SQL bij tekstanalyse volledig te benutten.
Wil je meer leren over SQL-operatoren en de basis van SQL verkennen? Bekijk dan onze SQL Basics Cheat Sheet en de SQL Fundamentals skill track.
Als gecertificeerd data scientist haal ik met passie het maximale uit de nieuwste technologie om innovatieve machinelearning-toepassingen te bouwen. Met een sterke achtergrond in spraakherkenning, data-analyse en -rapportage, MLOps, conversationele AI en NLP heb ik mijn vaardigheden aangescherpt in het ontwikkelen van intelligente systemen die echt impact maken. Naast mijn technische expertise ben ik ook een sterke communicator met een talent om complexe concepten terug te brengen tot heldere, beknopte taal. Daardoor ben ik uitgegroeid tot een veelgelezen blogger over data science, waar ik mijn inzichten en ervaringen deel met een groeiende community van data-professionals. Op dit moment richt ik me op contentcreatie en redactie, waarbij ik met large language models werk aan krachtige en aansprekende content die zowel bedrijven als individuen helpt het beste uit hun data te halen.


De mogelijkheid om tekstgegevens te doorzoeken en te bewerken is onmisbaar voor datawetenschappers of data-engineers. De CONTAINS-functie van SQL is een krachtig hulpmiddel voor geavanceerde tekstzoekopdrachten in je databases, waarmee je data kunt ophalen op basis van specifieke patronen of trefwoorden.
In deze tutorial leer je SQL
CONTAINSeffectief gebruiken, zodat je het volledige potentieel kunt benutten voor jouw data-analyse.