Hieronder vind je de hoofdstukken en lessen voor de cursus. Maak gebruik van de balken om lessen te tonen en verbergen


VOORBEELD - Databases en structuur
Een database bestaat uit een aantal concepten. Zoals:
  • Schema, is een beetje te vergelijken met een directory op een schijf daarin kun je o.a. tabellen en views plaatsen
  • Tabellen zijn de plek waar de data worden opgeslagen. Kenmerkend is dat een tabel uit rijen en kolommen bestaat
  • Views zijn een bijzonder soort weergave van data uit een of meer tabellen
Kijk eens naar het select statement en zie hoeveel tabellen en views er in een schema kunnen zitten.
OPDRACHT - Creer een SCHEMA met jouw voornaam
Schema's zijn belangrijk om elkaar niet in de weg te zitten. Maak dus als eerste een schema aan met jouw naam. Pas dit schema aan naar je eigen naam en kijk of dit werkt. Mogelijk staat je naam al in de database. Als je je eigen schema hebt gemaakt, zul je dat de komende dagen gebruiken. Na de cursus blijft je schema een maand staan. We laten een schema met C_ beginnen dan kunnen we zien dat het een schema van een cursist is.
Je kunt op de homepage van deze cursus jouwnaam instellen als cookie dan wordt dat automatisch ingevuld bij de vervolgopdrachten. Makkelijk omdat je het dan niet steeds hoeft in te vullen.
VOORBEELD - Haal gegevens op uit tabellen
In een database wordt data opgeslagen in tabellen. Tabellen bestaan uit kolommen en rijen. Met name de kolommen zijn heel belangrijk. Zij bepalen wat je kunt vastleggen. Wij werken hier met een database van een bedrijf dat northwind heet. Bekijk hier het datamodel van Northwind Northwind datamodel
VOORBEELD - Toevoegen van een rij met INSERT aan de products tabel.
Toevoegen van een rij aan een tabel waarbij er een aantal validaties worden uitgevoerd. Om meerdere validatieregels lukt dat niet. Dat is kenmerkend aan een relationele databases en is een krachtige functie als je de kwaliteit van data wilt verhogen. Kijk vervolgens onderaan via de log buttonwat er gebeurt. Dit is gelukkig niet gelukt want anders hadden we onjuiste data toegevoegd aan de tabel
VOORBEELD - Muteren van data in tabellen met validatie regels
Daarnaast kun je allerlei validatie regels aan de kolommen toevoegen. Daarmee kun je de kwaliteit van de data verhogen. Als je data gaat toevoegen dan zul je zien dat de database allerlei controles gaat toevoegen. Probeer bijvoorbeeld het Update statement hiernaast. Kijk vervolgens onderaan via de log buttonwat er gebeurt.
VOORBEELD - Verwijderen van data uit tabellen met validatieregels
Gelukkig lukt dit niet, de database voert een aantal controles uit en ziet dat er voor de product data nog orders zijn. Dan geeft de database netjes een waarschuwing en verwijdert de rijen niet uit de tabel.

VOORBEELD - Voorbeeld van een basis SELECT query
Dit is de basisvorm van een selectiequery. * betekent dat je alle kolommen in een tabel gebruikt.
In dit voorbeeld halen we alle rijen uit één tabel op
VOORBEELD - Voorbeeld met een SELECT aquery met specifieke kolommen en volgorde van de kolommen.
Dit is een selectiequery waarbij je de kolomnamen invoert na het selectiewoord. Je moet de namen exact invoeren zoals ze in een tabel bekend zijn. De volgorde van de kolomnamen bepaalt het resultaat.
In dit voorbeeld halen we alle rijen uit één tabel op.
VOORBEELD - Voorbeeld van een SELECT query met de volgorde van de reselutaten met ORDER BY
Dit is een selectiequery waarbij je de kolomnamen na het selectiewoord invoert. je moet de namen hier exact invoeren zoals ze in een tabel bekend zijn. Vervolgens specificeren we de volgorde achter het onderdeel ORDER BY.
Met ASC stel je de volgorde oplopend in en met DESC aflopend. De volgorde van de kolomnamen bepaalt het resultaat en de volgorde.
In dit voorbeeld halen we alle rijen uit één tabel op.
VOORBEELD - Voorbeeld van een query met SELECT waar WHERE gebruikt wordt voor filteren.
In deze selectiequery voer je eerst drie kolommen in binnen de SELECT-sectie. Vervolgens gebruikt je de WHERE-sectie om de rijen te filteren. je filtert altijd door eerst de naam van de kolom op te geven en vervolgens de waarde waarop je wilt filteren. Let op: voor alfanumerieke en kalenderdatum kolommen plaatst je de waarden tussen enkele aanhalingstekens.
OPDRACHT - EXTRA Maak een SELECT query voor de leveranciers in Frankrijk en Duitsland. We willen het bedrijf en de contactnaam zien.
Voltooi deze EXTRA opdracht door in de vorige opdrachten te zoeken naar een combinatie van de onderdelen. Je krijgt een heel eenvoudige query die je kunt aanpassen.

VOORBEELD - Een query met een berekende kolom in het SELECT statement.
In de SELECT-sectie kun je berekeningen uitvoeren en kolommen samenvoegen tot nieuwe kolommen in de resultatenset.
In dit voorbeeld gaan we een berekening tussen haakjes uitvoeren voor enkele numerieke kolommen in de tabel. Daarnaast combineren we twee alfanumerieke kolommen tot een samengevoegde kolom.
VOORBEELD - Een query met filter op nbsp; en zoeken naar woorden in een alfanumerieke kolom
nbsp; is een speciale waarde in een database. Het betekent GEEN WAARDE en is duidelijk iets anders dan 0 (nul), omdat dat een waarde is.
nbsp; wordt gebruikt om aan te geven dat de waarde onbekend is en kan in alle gegevenstypen worden gebruikt. De opdracht is gebaseerd op IS en niet op = om te benadrukken dat het geen waarde is. In deze query is er ook de mogelijkheid om in alfanumerieke kolommen te zoeken naar delen van de tekst met LIKE en %
VOORBEELD - Een DISTINCT query in SELECT om duplicaten te onderdrukken
Geef de unieke waarden op in uw SELECT-sectie, zodat alleen de unieke combinaties worden weergegeven en niet worden herhaald in de resultatenset.
VOORBEELD - Een select-statement die het aantal resultaten met TOP in combinatie met ORDER BY beperkt
Met Top voor de kolomnamen in het SELECT-gedeelte van de kolomnamen kun je met TOP een aantal kolommen opgeven die moeten worden weergegeven. Let op de volgorde binnen ORDER BY en eventueel ASC (oplopend) en DESC (aflopend).
OPDRACHT - Maak een lijst met producten met een prijs tussen 10 en 30 en sorteer deze op naam
Voltooi deze opdracht door in de vorige opdrachten te zoeken naar een combinatie van de onderdelen. Je krijgt een heel eenvoudige query die je kunt aanpassen.
OPDRACHT - EXTRA Maak een lijst met producten met een prijs tussen de 10 en 30 en sorteer deze op naam En met een naam die begint met een B of een P
Voltooi deze opdracht door in de vorige opdrachten te zoeken naar een combinatie van de onderdelen. Je krijgt een heel eenvoudige query die je kunt aanpassen. Denk aan de ()-sets.
VOORBEELD - Voorbeeld van een INNER JOIN voor het verbinden van twee tabellen
Dit voorbeeld toont een inner join tussen twee tabellen. De primaire en verwijzende sleutels worden gebruikt om de tabellen met elkaar te verbinden. Alleen de rijen waarvan de sleutels in beide tabellen gelijk zijn, worden weergegeven.
VOORBEELD - Voorbeeld van een LEFT JOIN voor het verbinden van twee tabellen
Dit voorbeeld toont een left join tussen twee tabellen. De primaire en verwijzende sleutels worden gebruikt om de tabellen met elkaar te verbinden. Alleen de rijen waarvan de sleutels in beide tabellen hetzelfde zijn, worden weergegeven, evenals de rijen die in de linkertabel voorkomen, maar niet de rijen uit de rechtertabel.
VOORBEELD - Voorbeeld van een RIGHT JOIN voor het verbinden van twee tabellen
Dit voorbeeld toont een right join tussen twee tabellen. De primaire en verwijzende sleutels worden gebruikt om de tabellen met elkaar te verbinden. Alleen de rijen waarvan de sleutels in beide tabellen hetzelfde zijn, worden weergegeven, evenals de rijen die in de rechtertabel voorkomen, maar niet de rijen uit de linkertabel.
VOORBEELD - Voorbeeld van een FULL JOIN voor het verbinden van twee tabellen
Dit voorbeeld toont een volledige join tussen twee tabellen. De primaire en verwijzende sleutel worden gebruikt om de tabellen met elkaar te verbinden. Alleen de rijen waarvan de sleutels in beide tabellen hetzelfde zijn, worden weergegeven, evenals de rijen die in de linkertabel staan, maar niet de rijen uit de rechtertabel. Evenals de rijen die in de rechtertabel staan en niet in de linkertabel.
VOORBEELD - Voorbeeld van een LUIE JOIN op basis van WHERE
Dit voorbeeld toont een luie join op basis van de WHERE-filtering.
VOORBEELD - Voorbeeld van een SELF-JOIN in de tabel Employees
Kijk wat hier gebeurt en onderzoek wat er gebeurt als je het met de andere join-typen probeert.
VOORBEELD - Voorbeeld van een UNION om twee tabellen in rijen met elkaar te verbinden
Gebruik UNION om twee tabellen te combineren op basis van rijen. Houd er rekening mee dat de resultsets hetzelfde aantal kolommen en datatype moeten hebben.
OPDRACHT - Maak een overzicht van producten in de categorieen beverages or dairy products.
Deze opdracht begint met een eenvoudige join tussen twee tabellen. je moet deze echter uitbreiden met een filter. Daarnaast moet je in het SELECT-gedeelte bekijken welke kolommen je op basis van de vraag wilt selecteren. Toon de product- en de categorienaam.

VOORBEELD - Query met numerieke gegevens waarbij u met wiskundige operatoren werkt
Hierbij zoek je op basis van een numerieke waarde en combineer je deze met AND en met >= en <=
VOORBEELD - Maak een SELECT query met het BETWEEN commando in WHERE
Vereenvoudiging van een query met de BETWEEN-instructie.
VOORBEELD - Query met kolommen met kalenderdata. Hier filtert u en moet u de datum in tekstwaarden weergeven.
Met kalenderwaarden kun je een fout maken in de Amerikaanse en Europese datumnotaties. Gebruik daarom bij voorkeur het formaat 'yyyy-MM-dd' tussen enkele aanhalingstekens in een database. De database zet dit altijd om naar het juiste formaat.
VOORBEELD - Gebruik de IN()-instructie om eenvoudig een lijst met waarden op te geven
Met IN() kun je een lijst met waarden retourneren. Handig als BETWEEN niet mogelijk is. Met IN() kun je een willekeurige lijst specificeren, afhankelijk van de gestelde vraag.
VOORBEELD - Combinatie van Booleaanse filters op basis van AND, OR en NOT, inclusief het werken met haakjes
Je zult zien dat je meerdere filtervoorwaarden kunt combineren om complexe vragen te creëren die je aan de database stelt. Experimenteer hier met de haakjes en kijk wat het effect is. Bekijk de slide in de cursus met voorbeelden van het rij voor rij controleren van de combinaties van voorwaarden.
VOORBEELD - Selecteer een query SELECT met een CASE WHEN onderdeel om je eigen classificatie te maken
Maak een classificatie die later gebruikt kan worden om groeperingen te maken zoals in het volgende hoofdstuk.
VOORBEELD - Maak een subquery binnen de IN() instructie in een SELECT query
Gebruik de IN-instructie om een subquery te maken. Dit maakt een instructie vaak gemakkelijker leesbaar. Let op: je kunt subquery's in subquery's gebruiken!
VOORBEELD - Maak gebruik van een subquery in het SELECT deel van een query.
We maken gebruik van een subquery in het SELECT-gedeelte in combinatie met een set-functie. Deze zullen we later bespreken.
OPDRACHT - Een overzicht van producten in de categorie dranken of zuivelproducten en geef de naam van de leverancier en van het product.
Deze opdracht begint met een eenvoudige join tussen twee tabellen. Je moet dit echter uitbreiden naar drie tabellen. Daarnaast moet je in het SELECT-gedeelte bekijken welke kolommen gekozen moeten worden op basis van Alberto's vraag.
OPDRACHT - Maak een lijst van werknemers en klanten Xname en leveranciers Xname die in dezelfde stad wonen. Gebruik een UNION.
Maak een lijst van werknemers en klanten (Xname) en leveranciers (Xname) die in dezelfde stad wonen. Gebruik een UNION (welke stad)? Londen, Berlijn of Parijs.
OPDRACHT - EXTRA: Maak een select statement van de producten waarbij je alleen de producten van leveranciers in het UK toont.
Maak een SELECT-statement van de producten waarbij je alleen de producten van leveranciers in het Verenigd Koninkrijk weergeeft. Gebruik een IN()-subquery.

VOORBEELD - Verschillende geaggregeerde functies op een resultaatset in een SELECT query.
In de database worden een aantal geaggregeerde functies gebruikt voor een aantal kolommen in het verkoopdashboard. Dit wordt vaak gebruikt om de gegevens in een database te verkennen. Ook wel exploratieve analyse genoemd.
VOORBEELD - Verschillende geaggregeerde functies op een resultaatset in een SELECT query uitgebreid met groeperen op voor subtotalen
In de database worden een aantal aggregatiefuncties gebruikt voor een aantal kolommen in het verkoopdashboard. Met GROUP BY in de instructie kun je de gegevens groeperen als subtotalen in combinatie met een aggregatiefunctie. GROUP BY is het voorlaatste deel van een SELECT-query wanneer ook een ORDER BY nodig is.
VOORBEELD - Diverse SQL Server-functies voor alfanumerieke kolommen. Om tekst te transformeren.
Dit zijn SQL-specifieke functies, maar elke relationele database heeft zijn eigen set functies. Dit maakt het gemakkelijk om tekst te bewerken. De definities van deze functies zijn te vinden op de SQL Server-documentatiesite of op W3schools.
VOORBEELD - Converteer de inhoud van datumkolommen naar jaar of maand om gemakkelijker gegevens voor een jaar of maand op te halen
.Met Jaar of Maand ze je de inhoud van een kolom met gegevenstype datum en/of tijd. je kunt dit met een functie omzetten naar een geheel getal. Dit maakt het eenvoudiger om bijvoorbeeld tussen deze waarden te zoeken of ermee te rekenen. je kunt ook dataname gebruiken om de kalenderdatum om te zetten naar een naam voor een deel van de datum, zoals de maand of dag van de week. Maak gebruik van format als je de notatie in het nederlands wil
VOORBEELD - Bereken kalenderdatum kolommen door er eenheden aan toe te voegen
Met DateAdd kun je rekenen met kalenderdatumwaarden door waarden op te tellen. Door een negatieve waarde op te geven, kunt je ook een periode van de datum aftrekken.
VOORBEELD - Berekenen met kalenderdatum door het verschil tussen twee kalenderdata te berekenen naar een specifieke kalendereenheid
Met DateDiff kun je het verschil tussen twee kalenderdata berekenen in een bepaalde eenheid, zoals jaar, maand, dag of zelfs seconde. Bovendien is er een handige functie om de huidige datum in de database te berekenen.
OPDRACHT - Northwind wil graag een verkoopoverzicht, verdeeld per productcategorie en maand van verkoop
Northwind wil graag een overzicht van de totale omzet van de verkoopbedragen. Hiervoor wil hij een indeling in productcategorie en verkoopmaand.
OPDRACHT - EXTRA Berekening van de totale omzet verdeeld in weekdagen of weekenden en in de maand van verkoop
Alberto wil graag een overzicht van de totale omzet van de verkoopbedragen. Hiervoor wil hij een uitsplitsing naar weekdag of weekend en naar de maand van de verkoop.
OPDRACHT - EXTRA Geavanceerde functies uit de SQL Server-database gebruiken
Wij zorgen met string_agg ervoor dat rijen van een kolom worden samengevoegd tot een kolom.

VOORBEELD - Maak een tabel gerelateerd aan de Northwind-database, maar we maken deze in ons eigen SCHEMA.
We gaan het datamodel van Northwind uitbreiden en maken daarom een extra tabel aan met welke cursussen een medewerker volgt. Maar je maakt de tabel wel aan in je eigen schema.
VOORBEELD - Toevoegen van een kolom aan een eigen tabel.
Gebruik de opdracht toevoegen om een kolom aan de tabel toe te voegen. Deze wordt later gebruikt als primaire sleutel. Je kunt Identity() gebruiken om de kolom bij het toevoegen van rijen automatisch te vullen met een uniek volgnummer.
VOORBEELD - Aanmaken van een PRIMARY KEY aan een tabel
Voeg een primaire sleutel toe aan je eigen training tabel.
VOORBEELD - Aanmaken van een verwijzende sleutel naar een primaire sleutel in een andere tabel
Voeg een verwijzing naar de primaire sleutel van een andere tabel toe om de gegevens consistent te houden.
VOORBEELD - Check beperkingen
Extra beperkingen op basis van een voorwaarde op een of meer kolommen
OPDRACHT - Maak de Evaluation tabel in je eigen schema en voeg een kolom toe voor de primaire sleutelkolom
Wijzig tabel [YYY] in uw eigen schema [SSS} en volg de zojuist besproken naamgevingsconventies. je kunt ook IDENTITY gebruiken als je wilt dat de kolom automatisch door de database wordt genummerd. Je kunt ook gebruik maken van het interactieve create table formulier.
OPDRACHT - Voeg een sleutelbeperkingen toe aan je tabel.
Voeg de primaire sleutel en verwijzende sleutels naar product en customer toe aan de Evaluation tabel in uw eigen SCHEMA Je kunt ook gebruik maken van het interactieve create constraint formulier

VOORBEELD - Voorbeeld van een INSERT-instructie om een rij aan een tabel toe te voegen
De instructie voegt een rij toe met INSERT aan de tabel TRAINING in jouw eigen schema.
VOORBEELD - Voorbeeld van een UPDATE-instructie voor het wijzigen van één of meer rijen
Met UPDATE kun je de set-sectie gebruiken om te specificeren welke kolommen worden bijgewerkt. De where-sectie bepaalt welke rij of rijen worden bijgewerkt. Als je het where-gedeelte niet definieert, worden ALLE rijen bijgewerkt. Dat wil je toch bijna nooit.
VOORBEELD - Voorbeeld van een DELETE-instructie voor het verwijderen van één of meer rijen uit een tabel
DELETE verwijdert rijen uit een tabel. Je hoeft hier alleen een where in te voeren om te bepalen welke rijen worden verwijderd. Je kunt het ook zonder WHERE doen, maar dan verlies je alle rijen. Hier gebruiken we trainingid = 1 om de zojuist aangemaakte rijen te verwijderen.
OPDRACHT - Voeg een aantal rijen toe aan je eigen tabel met invoegen, en werk een aantal rijen bij en verwijder ze
Vul je eigen Evaluation tabel in je eigen schema met gegevens met INSERT. Pas de insert aan naar de opbouw van je eigen kolommen

VOORBEELD - Maak een voorbeeld VIEW op basis van een SELECT instructie
Maak een VIEW die je vervolgens kunt gebruiken als een eenvoudigere selectie-instructie
VOORBEELD - Maak een SELECT query met een inner join waarin je de tabellen Employees en TrainingExtra combineert
Breid de SELECT-instructie uit met een JOIN
VOORBEELD - De VIEW verwijderen uit je eigen SCHEMA
OPDRACHT - Maak een query op basis van de Evaluation tabel
Maak een SELECT waarbij je product en customer met elkaar verbind via de Evaluation tabel in je eigen schema. Maak hier vervolgens een VIEW van in je eigen schema.

Je kunt de hoofdstukken openklappen en sluiten. Klik je op een les dan ga je naar het scherm met de opdracht.

Copyright © Interactory