Complete gids en gedetailleerde voorbeelden van SQL-opdrachten: van basis tot geavanceerde query's

Laatste update: 16/06/2025
Auteur: Isaac
  • Ontdek de commando's Essentiële SQL en praktische voorbeelden voor query's, beheer en beveiliging in databanken.
  • Leer hoe u SELECT, WHERE, JOIN, GROUP BY, aggregatiefuncties en weergaven kunt gebruiken, met behulp van syntaxis en praktijkvoorbeelden.
  • ontmoeten Tricks Geavanceerd, machtigingsbeheer en veelgestelde vragen om SQL in professionele omgevingen onder de knie te krijgen.

SQL-opdrachten in databases

De gestructureerde querytaal (SQL) is een van die tools die, zodra je het onder de knie hebt, je beste bondgenoot wordt bij het werken met elke relationele database. Als je je ooit hebt afgevraagd hoe je grote hoeveelheden data eenvoudig en efficiënt kunt openen, wijzigen, verwijderen of analyseren, dan is SQL het antwoord waar je naar op zoek was. Leer SQL-opdrachten correct te gebruiken maakt het verschil tussen een basisgebruiker en een echte expert op het gebied van gegevensbeheer en -analyse.

In dit artikel breng ik je een uitgebreide compilatie van de belangrijkste SQL-opdrachten Vergezeld van duidelijke uitleg en praktische voorbeelden, die alles behandelen, van de basis tot meer geavanceerde query's. Ik laat je ook trucs en details zien die vaak over het hoofd worden gezien in meer oppervlakkige artikelen, zodat je het maximale uit je databases kunt halen, of je nu net begint of je kennis wilt vergroten. Maak je klaar om in het SQL-universum te duiken en ontdek hoe deze taal de manier waarop je met informatie werkt, kan transformeren.

Wat is SQL en waarom is het nog steeds essentieel?

SQL, of Structured Query Language, is een querytaal programmering Speciaal ontworpen voor het beheren en manipuleren van relationele databases. Hoewel het in de jaren 70 werd ontwikkeld, blijft het de standaardoplossing voor communicatie met databases zoals MySQL, PostgreSQL, SQL Server, MariaDB en Oracle Database.

De reden voor zijn lange levensduur is simpel: SQL maakt alles mogelijk, van basistaken zoals het opvragen van gegevens tot geavanceerde bewerkingen zoals het samenvoegen van complexe tabellen, het maken van structuren, het in bulk bijwerken van records of het definiëren van machtigingen.Bovendien is de syntaxis eenvoudig genoeg om snel door iedereen onder de knie te krijgen, maar toch krachtig genoeg om complexe bedrijfsproblemen op te lossen.

Professionals uit uiteenlopende vakgebieden, van ontwikkelaars, analisten en databasebeheerders tot datawetenschappers, vertrouwen op SQL om cruciale gegevens voor hun projecten en organisaties te verwerken, op te schonen en te analyseren.

SQL-opdrachtcategorieën: DQL, DML, DDL en DCL

Voordat we in de voorbeelden duiken, is het de moeite waard om te onthouden dat SQL-opdrachten kunnen worden gegroepeerd in verschillende categorieën, afhankelijk van hun functie:

  • DQL (Data Query Language): Dit zijn de zinnen om gegevens op te vragen, zoals SELECT.
  • DML (Data Manipulatie Taal): Ze manipuleren gegevens met commando's als INSERT, UPDATE y VERWIJDEREN.
  • DDL (Data Definition Language): Zij beheren de structuur van de database, bijvoorbeeld: CREATE, ALTER, DROP y AFKNOPEN.
  • DCL (Data Control Language): Zij beheren de rechten en toegang met behulp van Grant y INTREKKEN.

Elk type commando vervult een essentiële functie in het dagelijkse databasebeheer. Het is belangrijk om te weten welk commando u in elke situatie moet gebruiken om fouten of zelfs rampen in het gegevensbeheer te voorkomen.

Belangrijkste SQL-opdrachten: basisprincipes en praktische voorbeelden

Het beheersen van basis SQL-opdrachten opent de deur naar vrijwel elke taak op het gebied van gegevensbeheer of -analyse. Hieronder leg ik de meest relevante uit, hoe ze werken en geef ik gebruiksvoorbeelden om je te helpen ze te leren.

SELECT: De koning van de query's

Het commando SELECT Het is de basis waarop de meeste bewerkingen in SQL zijn gebaseerd. Het stelt u in staat gegevens op te halen die in een of meer tabellen zijn opgeslagen.

Algemene syntaxis:

SELECT kolom1, kolom2, ... FROM tabelnaam;

Om alle kolommen in een tabel te krijgen, gebruikt u eenvoudigweg de asterisk:

SELECT * FROM werknemers;

Als u specifieke gegevens wilt filteren, kunt u voorwaarden toevoegen:

SELECT naam, leeftijd FROM werknemers WHERE leeftijd > 30;

Gracias a SELECT U kunt alles ophalen, van een enkele waarde tot complexe datasets, geaggregeerde functies toepassen, afgeleide kolommen berekenen en gegevens voorbereiden voor rapporten of visualisaties.

  Wat is Recuva? Gebruikt, kenmerken, meningen, prijzen

WAAR: Resultaten nauwkeurig filteren

De clausule WAAR Hiermee kunt u voorwaarden opgeven om alleen die rijen te selecteren die aan bepaalde criteria voldoen. Het is een fundamenteel filter voor elke query.

Basissyntaxis:

SELECT * FROM producten WAAR prijs < 100;

U kunt voorwaarden combineren met behulp van logische operatoren zoals EN, OR y NIET, evenals vergelijkingsoperatoren (=, <, >, <=, >=, <>).

Om bijvoorbeeld verkoopmedewerkers jonger dan 30 jaar te werven:

SELECT * FROM werknemers WHERE afdeling = 'Verkoop' AND leeftijd < 30;

Voorbeelden van SQL-query's

INSERT: Nieuwe records toevoegen

met INSERT Je kunt nieuwe rijen aan een tabel toevoegen. Dit is essentieel om je databases te voorzien van nieuwe informatie.

Algemene syntaxis:

VOEG IN producten (naam, prijs) WAARDEN IN ('Toetsenbord', 29.99);

Als u meerdere records in één query wilt toevoegen, kunt u dit ook als volgt doen:

VOEG IN producten (naam, prijs) WAARDEN IN ('Muis', 15.50), ('Monitor', 120.00);

Houd er rekening mee dat als u de kolomlijst weglaat, u voor elk veld in de tabel een waarde moet opgeven, waarbij u de volgorde van de velden moet respecteren.

UPDATE: Bestaande gegevens aanpassen

Het commando UPDATE Hiermee kunt u de waarde van een of meer velden in records wijzigen die aan een specifieke voorwaarde voldoen. Dit is handig om fouten te corrigeren of informatie bij te werken.

Syntaxis:

UPDATE medewerkers SET salaris = salaris * 1.05 WHERE afdeling = 'Marketing';

In dit voorbeeld krijgen alle marketingmedewerkers een salarisverhoging van 5%. Dit is cruciaal. Gebruik WHERE wanneer u een update uitvoert, tenzij u echt de hele tabel wilt wijzigen.

VERWIJDEREN: Gegevens verwijderen

Om records te verwijderen, gebruikt u: VERWIJDEREN naast een voorwaarde, waardoor wordt voorkomen dat per ongeluk alle gegevens uit de tabel worden verwijderd.

voorbeeld:

VERWIJDEREN UIT producten WAAR id_producto = 10;

Als u de WHERE-clausule weglaat, worden alle rijen in de tabel verwijderd. Let op!

ORDER BY: Resultaten ordenen

De clausule BESTELLING DOOR wordt gebruikt om de resultaten van een query te sorteren op een of meer kolommen. Standaard is de volgorde oplopend, maar u kunt aangeven ASC o DESC zoals je nodig hebt.

SELECT * FROM werknemers ORDEREN OP salaris OMSCHRIJVING;

U kunt meerdere kolommen combineren bij het sorteren:

SELECT * VAN producten ORDER BY categorie ASC, prijs DESC;

GROEPEREN OP en aggregatiefuncties: SOM, AVG, MIN, MAX, AANTAL

GROEP DOOR Hiermee kunt u resultaten groeperen volgens een of meer kolommen, wat erg handig is in combinatie met functies zoals SOM() (toevoeging), AVG () (gemiddeld), MIN (minimum), MAX (maximaal) en COUNT (tellen).

Om bijvoorbeeld te weten hoeveel producten er in elke categorie zijn:

SELECTEER categorie, COUNT(*) VAN producten GROEPEER OP categorie;

Of om de totale rekening voor elke klant te berekenen:

SELECT customer_id, SUM(bedrag) FROM sales GROUP BY customer_id;

U kunt de resulterende groepen filteren met behulp van de clausule HEBBEN:

SELECT afdeling, AVG(salaris) VAN werknemers GROEPEER OP afdeling MET AVG(salaris) > 2000;

LIMIET en OFFSET: Het aantal resultaten beperken

Als uw tabellen duizenden records bevatten, LIMIT Het is belangrijk om slechts een deel van de resultaten weer te geven, omdat dit de prestaties en leesbaarheid ten goede komt.

SELECT * FROM producten LIMIET 10;

met OFFSET U kunt een aantal rijen overslaan, wat handig is voor de paginering:

SELECT * FROM producten LIMIET 10 OFFSET 20;

TUSSEN, IN en ZOALS: Geavanceerde WHERE-voorwaarden

Deze trefwoorden breiden de filtermogelijkheden uit:

  • TUSSEN: Selecteer waarden binnen een bereik.
    SELECT * FROM werknemers WAAR salaris TUSSEN 1000 EN 3000;
  • VAN: Zoeken naar meerdere waarden.
    SELECT * FROM producten WAAR categorie IN ('Computers', 'Elektronica');
  • LEUK VINDEN: Zoek naar patronen in de tekst.
    SELECT * FROM klanten WHERE naam LIKE 'A%';

Er kunnen ook jokertekens worden gebruikt, zoals: % (een willekeurig aantal tekens) en _ (een enkel teken) om zoekopdrachten verder te personaliseren met LIKE.

JOIN: Informatie tussen tabellen overbrengen

Een van de grote krachten van SQL is de mogelijkheid om gegevens uit verschillende tabellen te combineren met behulp van AANMELDEN. De meest voorkomende zijn:

  • INNERLIJKE JOIN: Retourneert overeenkomende rijen in beide tabellen.
  • LINKER AANMELDEN: Retourneert alle rijen uit de linkertabel en alle overeenkomsten uit de rechtertabel (opvullend met NULL als er geen overeenkomst is).
  • RECHTS AANMELDEN: Retourneert alle rijen uit de rechtertabel en de bijpassende rijen uit de linkertabel.
  • VOLLEDIGE BUITENVOER: Retourneert alle rijen uit beide tabellen (aangevuld met NULL waar geen overeenkomst is).
  Soorten beschrijvende, administratieve en structurele metadata

INNER JOIN voorbeeld:

SELECT orders.id, klanten.naam FROM orders INNER JOIN klanten ON orders.customer_id = klanten.id;

LINKER AANMELDEN:

SELECT medewerkers.naam, omzet.bedrag FROM medewerkers LEFT JOIN omzet ON medewerkers.id = omzet.medewerker_id;

ALTER, CREATE en DROP: de databasestructuur wijzigen

Naast het manipuleren van gegevens kunt u met SQL ook de structuur van tabellen en andere databaseobjecten definiëren en wijzigen:

  • CREËREN: Om nieuwe objecten te creëren (tabellen, weergaven, indexen, gebruikers…).
    MAAK TABELproducten (id INT PRIMAIRE SLEUTEL, naam VARCHAR(100), prijs DECIMAL(8,2));
  • WIJZIGEN: De structuur van een bestaand object wijzigen.
    ALTER TABLE producten ADD beschrijving VARCHAR(255);
    ALTER TABLE producten ALTER COLUMN prijs SET NOT NULL;
  • LATEN VALLEN: Om objecten uit de database te verwijderen.
    DROP TABLE producten;
    DROP USER voorbeeld_gebruiker CASCADE;

Weergaven (VIEW): Herbruikbare query's en geavanceerde filtering

De vistas Het zijn virtuele objecten die een opgeslagen query vertegenwoordigen. Ze functioneren als een tabel, maar slaan geen gegevens op; ze verwijzen alleen naar informatie in andere tabellen. Ze zijn handig om complexe query's te vereenvoudigen, filters te centraliseren en toegang tot specifieke informatie te vergemakkelijken.

CREATE VIEW actieve_werknemers AS SELECT * FROM werknemers WHERE actief = 1;

U kunt de weergave net als een tabel bevragen:

SELECT * FROM actieve_werknemers;

Weergaven zijn ideaal voor het beheren van machtigingen en het alleen weergeven van relevante gegevens aan bepaalde gebruikers.

Geaggregeerde functies en berekeningen op kolommen

Met SQL kunt u werken met geaggregeerde functies en rekenkundige operatoren om berekeningen op de data uit te voeren:

  • SOM(): Totale som van een kolom.
  • AVG(): Rekenkundig gemiddelde.
  • MIN() en MAX(): Minimaal en maximaal.
  • GRAAF(): Aantal records.

Als u bijvoorbeeld het aantal werknemers per afdeling wilt weten:

SELECT afdeling, COUNT(*) VAN werknemers GROEPEER OP afdeling;

Of het hoogste salaris per afdeling:

SELECTEER afdeling, MAX(salaris) VAN werknemers GROEPEER OP afdeling;

U kunt berekende kolommen zelfs rechtstreeks in de query maken:

SELECT naam, salaris * 0.95 ALS netto_salaris VAN werknemers;

Aliassen (AS) gebruiken voor tabellen en kolommen

In query's kunt u tijdelijke namen aan kolommen en tabellen toewijzen met behulp van de opdracht ASHierdoor kunt u de resultaten gemakkelijker lezen en complexe zoekopdrachten opstellen.

Bijvoorbeeld:

SELECT e.name AS werknemer, d.name AS afdeling VAN werknemers AS e JOIN afdelingen AS d OP e.department_id = d.id;

Op deze manier toont het resultaat kolommen met aangepaste namen. Het gebruik van aliassen is vooral handig bij het uitvoeren van JOIN's of wanneer kolommen lange of onopvallende namen hebben.

Geavanceerde SQL-queryvoorbeelden: los praktijkgevallen op

Om zelfvoorzienend te worden in SQL, moet je echte uitdagingen aangaan. Hier zijn een paar tips: uitgebreide voorbeelden afgeleid van praktijkgevallen die helpen bij het consolideren van kennis.

Vraag alle medewerkers in een afdeling op en bekijk hun totale omzet

SELECT e.id, e.naam, SUM(v.bedrag) AS totale_omzet FROM werknemers e JOIN verkopen v ON e.id = v.werknemer_id WHERE e.afdeling = 'Verkoop' GROUP BY e.id, e.naam;

In dit voorbeeld ziet u hoe u tabellen samenvoegt, aggregatiefuncties toepast en resultaten filtert.

Berekening van het gemiddelde en maximum salaris per afdeling

SELECT afdeling, AVG(salaris) ALS gemiddeld_salaris, MAX(salaris) ALS maximum_salaris VAN werknemers GROUP BY afdeling;

Op deze manier kunt u de salarisverdeling analyseren en ongelijkheden of gebieden met grotere prikkels identificeren.

Producten tellen op prijsklasse met behulp van CASE

SELECTEER CASUS WANNEER prijs < 50 DAN 'Goedkoop' WANNEER prijs < 150 DAN 'Medium' ANDERS 'Duur' EINDE ALS prijsbereik, COUNT(*) ALS hoeveelheid VAN producten GROEPEER OP prijsbereik;

Gebruiksgeval Hiermee kunt u aangepaste categorieën binnen de query maken.

Voorbeeldquery om dubbele records te vinden

SELECT naam, COUNT(*) VAN klanten GROUP BY naam HAVING COUNT(*) > 1;

Zo blijft uw database schoon en vrij van overbodige gegevens.

Identificeer het n-de hoogste salaris (subvragen)

SELECTEER TOP 1 salaris VAN (SELECTEER DISTINCT TOP N salaris VAN werknemers ORDEREN OP salaris OMSCHRIJVING) ORDEREN OP salaris OPL;

Ideaal voor het beantwoorden van vragen tijdens technische interviews of het opstellen van geavanceerde rapporten.

  Hoe u lege swapruimte (SWAP) vrijmaakt op Linux

Oude gegevens automatisch verwijderen

VERWIJDEREN UIT logs WAAR datum < NU() - INTERVAL 6 MAAND;

Ideaal voor productiedatabases waarbij u de tabelgroottes moet beheren.

Nuttige tips en trucs in SQL

SQL beheersen betekent niet alleen weten hoe je eenvoudige query's schrijft. Hier zijn enkele Tips om taal optimaal te benutten:

  • Gebruik altijd WHERE in UPDATE en DELETE om onbedoelde massawijzigingen of verwijderingen te voorkomen.
  • Plaats indexen op de meest geraadpleegde kolommen om zoekopdrachten en deelnames te versnellen.
  • Geef de voorkeur aan expliciete JOIN's boven WHERE om tabellen te koppelen: vergemakkelijkt het onderhoud en de leesbaarheid.
  • Gebruik geaggregeerde functies en GROUP BY voor automatische rapportage en analyse zonder afhankelijk te zijn van externe spreadsheets.
  • Testen op een testdatabase voordat u grote veranderingen doorvoert.
  • Beheer machtigingen met GRANT en REVOKE om de veiligheid van uw gegevens te garanderen.
  • Profiteer van het uitzicht (VIEW) om de toegang tot complexe informatie te vereenvoudigen en de bedrijfslogica te centraliseren.
  • Gebruik SELECT * niet te vaak, omdat u dan meer gegevens invoert dan nodig is en het systeem daardoor trager wordt.
  • Reageer op complexe vragen om toekomstig onderhoud te vergemakkelijken.

Veelgestelde vragen over SQL-opdrachten in interviews en praktijkgevallen

Het beheersen van SQL is essentieel om uit te blinken in technische interviews en het oplossen van alledaagse problemen. Hier zijn enkele veelvoorkomende vragen en antwoorden om je voor te bereiden:

  • Wat is een INNER JOIN?
    Dit is de standaardjoin in SQL; deze retourneert rijen die overeenkomen met beide tabellen. Voorbeeld:

    SELECT * FROM A INNER JOIN B OP A.id = B.a_id;
  • Waarvoor wordt LEFT JOIN gebruikt?
    Retourneert alle rijen uit de linkertabel en alle overeenkomsten uit de rechtertabel. Voorbeeld:

    SELECT * FROM medewerkers LEFT JOIN sales ON medewerkers.id = sales.medewerker_id;
  • Wat is het verschil tussen DROP en DELETE?
    VERWIJDEREN verwijdert rijen uit een tabel, terwijl DROP verwijdert het object (tabel, weergave, gebruiker) volledig uit de database.
  • Kun je terugdraaien na een ALTER?
    Nee, want ALTER is DDL en veel systemen committen automatisch. Het is belangrijk om dit te controleren voordat u het gebruikt.
  • Wat zijn pseudokolommen?
    Het zijn virtuele kolommen die door het systeem worden gegenereerd, zoals ROWID, USER of CURRVAL in Oracle.
  • Hoe maak ik een weergave?
    MAAK WEERGAVE view_employees ALS SELECT naam, salaris VAN werknemers;
  • Hoe verleen ik rechten?
    GRANT SELECT OP inventaris AAN ana, rita;
  • Hoe verwijder ik een gebruiker en zijn gegevens?
    DROP USER gebruiker CASCADE;

Reguliere expressies en speciale operatoren in SQL

Een minder bekend maar zeer krachtig onderdeel van SQL is de mogelijkheid om patronen te zoeken met behulp van reguliere expressies en geavanceerde operatoren. Bijvoorbeeld:

  • %: Representeert een tekenreeks van elke lengte (gebruikt in LIKE).
  • _ : Vertegenwoordigt een enkel teken (ook in LIKE).
  • | : Afwisseling, zoeken naar het een of het ander.
  • *: Herhaling van een teken nul of meer keer.

Geavanceerd beheer: rollen, machtigingen en beveiliging

Het beheren van een database beperkt zich niet tot het raadplegen en wijzigen van gegevens. Het is cruciaal om te bepalen wie toegang heeft tot informatie, deze kan wijzigen of verwijderen met behulp van commando's zoals Grant, INTREKKEN, of geavanceerd beheer van ROLLEN:

ROL manager AANMAKEN;
VERLEEN SELECTIE, INVOEGEN EN UPDATES VAN MEDEWERKERS AAN MANAGER;
GRANT-manager AAN juan, maria;

Zo kunt u de beveiliging centraliseren en het beheer van rechten in grote omgevingen vergemakkelijken. Wilt u dieper ingaan op rechtenbeheer? Bekijk dan ons artikel over automatisering en administratie.

Wat zijn .ETL-bestanden in Windows 2?
Gerelateerd artikel:
.ETL-bestanden in Windows: wat ze zijn, waarvoor ze worden gebruikt en hoe u ze kunt analyseren