Wat is SQL?

wat is sql

Wat is SQL?

De aanwezigheid van dynamische websites op het World Wide Web is tegenwoordig grotendeels te danken aan de mogelijkheid om hun inhoud via databases te beheren. Het beheer van databases is een ingewikkeld proces, dat aanzienlijk is gestructureerd door de programmeertaal SQL. Zoals de volledige naam (Structured Query Language) al aangeeft, is SQL verantwoordelijk voor het bevragen en bewerken van informatie die in een bepaald databasemanagementsysteem is opgeslagen.

[toc]

SQL Geschiedenis

De oorsprong van SQL gaat terug tot de jaren 70, toen IBM nieuwe database software werd ontwikkeld met de naam System R. En om de in System R opgeslagen gegevens te beheren, werd de vraagtaal SQL taal ontwikkeld. Aanvankelijk heette die SEQUEL, een naam die nog steeds wordt gebruikt als alternatieve uitspraak voor SQL maar die later werd hernoemd tot gewoon SQL.

In 1979 zag een bedrijf genaamd Relational Software, dat later Oracle werd, het commerciële potentieel van SQL en bracht het zijn eigen aangepaste versie uit, genaamd Oracle V2.

Nu in het derde decennium van zijn bestaan, biedt SQL grote flexibiliteit aan gebruikers door gedistribueerde databases te ondersteunen, d.w.z. databases die kunnen worden uitgevoerd op meerdere computernetwerken tegelijk. Gecertificeerd door ANSI en ISO, is SQL de standaard querytaal geworden, die aan de basis ligt van een verscheidenheid van gevestigde database toepassingen op het Internet. Het voorziet in zowel industriële als academische behoeften en wordt gebruikt op zowel individuele computers als bedrijfsservers. Met de vooruitgang in databasetechnologie zijn SQL-gebaseerde toepassingen steeds betaalbaarder geworden voor de gewone gebruiker. Dit is te danken aan de introductie van verschillende open-source SQL database oplossingen zoals MySQL, PostgreSQL, SQLite, Firebird, en nog veel meer.

SQL Standaard

De SQL Standaard heeft in de loop der jaren een groot aantal veranderingen ondergaan, die een groot aantal nieuwe functionaliteiten aan de standaard hebben toegevoegd, zoals ondersteuning voor XML, triggers, reguliere expressie matching, recursieve queries en nog veel meer. Door de enorme omvang van de SQL Standaard implementeren veel daarop gebaseerde database oplossingen, zoals MySQL of PostgreSQL, niet de gehele standaard. In veel gevallen is het gedrag van de database voor bestandsopslag of indexereingen niet goed gedefinieerd en is het aan de verkopers van de verschillende SQL implementaties om te beslissen hoe de database zich zal gedragen. Dit is de reden waarom, ook al hebben alle SQL-implementaties dezelfde basis, ze zelden compatibel zijn.

SQL dialecten

De community vraagt voortdurend om nieuwe functies en mogelijkheden die nog niet bestaan in de SQL-standaard, daarom zijn er, zelfs met de SQL-standaard veel verschillende SQL-dialecten in verschillende database-producten.

Omdat ANSI en ISO deze belangrijke functies nog niet hebben ontwikkeld, zijn RDBMS-leveranciers (of gemeenschappen) vrij om hun eigen nieuwe syntaxstructuur uit te vinden.

Hieronder volgen de meest populaire dialecten van SQL:

  • PL/SQL staat voor procedurele taal/SQL. Het is ontwikkeld door Oracle voor de Oracle Database.
  • Transact-SQL of T-SQL is ontwikkeld door Microsoft voor Microsoft SQL Server.
  • PL/pgSQL staat voor Procedural Language/PostgreSQL die bestaat uit SQL-dialect en extensies geïmplementeerd in PostgreSQL
  • MySQL heeft haar eigen procedurele taal sinds versie 5. Merk op dat MySQL werd overgenomen door Oracle.

Elementen van de SQL-taal

De SQL-taal is gebaseerd op verschillende elementen. Voor het gemak van SQL-ontwikkelaars worden alle noodzakelijke taalcommando’s in de overeenkomstige databasemanagementsystemen meestal uitgevoerd via een specifieke SQL command-line interface (CLI).

Clauses – de clauses zijn onderdelen van de statements en de query’s

Expressies – de expressies kunnen scalaire waarden of tabellen opleveren, die bestaan uit kolommen en rijen met gegevens

Predicates – zij specificeren voorwaarden, die worden gebruikt om de effecten van de statements en de query’s te beperken, of om het proces te wijzigen

Query’s – met een query worden gegevens opgehaald, gebaseerd op een bepaald criterium

Statements – met de statements kan men transacties, het programmaverloop, verbindingen, sessies of diagnostiek regelen. In databasesystemen worden de SQL-statements gebruikt om query’s van een client programma naar een server te sturen waar de databases zijn opgeslagen. Als antwoord verwerkt de server de SQL-statements en stuurt antwoorden terug naar de client. Dit stelt gebruikers in staat een breed scala van verbluffend snelle gegevensmanipulaties uit te voeren, van eenvoudige gegevensinvoer tot gecompliceerde query’s.

SQL-query’s

De SQL-query’s is de meest voorkomende en essentiële SQL-operaties. Via een SQL-query kan men de database doorzoeken naar de benodigde informatie. SQL queries worden uitgevoerd met het “SELECT” statement. Een SQL query kan specifieker zijn, met behulp van een aantal clausules:

FROM – hiermee wordt de tabel aangegeven waar gezocht zal worden.
WHERE – het wordt gebruikt om de rijen te definiëren, waarin gezocht zal worden. Alle rijen waarvoor de WHERE clausule niet waar is, zullen worden uitgesloten.
ORDER BY – dit is de enige manier om de resultaten in SQL te sorteren. Anders worden ze in een willekeurige volgorde geretourneerd.

Een SQL query voorbeeld
SELECT *
FROM persoon
WHERE achternaam = “Pietersen”
ORDER BY achternaam, voornaam

Hoe SQL werkt bij het samenvoegen van tabellen

Een SQL join clausule is als een join operatie in relationele algebra. Het combineert de kolommen van een of meer tabellen in een relationele database om een set te maken die kan worden opgeslagen als een tabel of kan worden gebruikt zoals het is. Een JOIN is een middel om kolommen uit een of meer tabellen te combineren door waarden te gebruiken die elke tabel gemeenschappelijk heeft.

JOINS zijn een kritische vaardigheid en helpen je om veel werk te verzetten met complexe databases. Het vermogen om JOIN queries nauwkeurig te manipuleren zal je een extra voordeel geven.

Er zijn 4 grote JOINS om gegevens of rijen uit twee of meer tabellen te combineren op basis van een gemeenschappelijk veld tussen beide. Verschillende types van Joins zijn:

INNER JOIN
LEFT JOIN
RIGHT JOIN
FULL JOIN

Een JOIN is een SQL instructie in de FROM clausule van je query die wordt gebruikt om de tabellen te identificeren die je bevraagt en hoe ze moeten worden gecombineerd. Maar voor we echt tabellen gaan samenvoegen, leren we eerst meer over primary key & foreign key.

Primaire sleutels

Een primaire sleutel is een kolom (of soms een set van kolommen) in een tabel die een unieke identifier is voor elke rij. Het is heel gebruikelijk voor databases om een kolom met de naam id (KLantID, Medewerker) te hebben als een primaire sleutel voor elke tabel.

Verwijzende sleutels

Foreign keys zijn kolommen in een tabel die een link geven naar een primaire sleutel in een andere tabel.

SQL gegevenscontrole, -definitie en -manipulatie

SQL is een taal die is ontworpen om gegevens op te slaan, maar de gegevens die in een SQL-database zijn opgeslagen, zijn niet statisch. Ze kunnen op elk moment worden gewijzigd met behulp van een aantal zeer eenvoudige commando’s. De SQL-syntaxis spreekt voor zich, waardoor deze veel gemakkelijker te lezen en te begrijpen is.

SQL gegevens manipulatie

Datamanipulatie is essentieel voor SQL tabellen. Het stelt u in staat een reeds aangemaakte tabel te wijzigen met nieuwe informatie, de reeds bestaande waarden bij te werken of ze te verwijderen.

Met het INSERT statement kunt u nieuwe rijen toevoegen aan een reeds bestaande tabel. Nieuwe rijen kunnen informatie bevatten vanaf het begin, of kunnen met een NULL waarde zijn.

Een voorbeeld van een SQL INSERT
INSERT INTO persoon (voornaam, achternaam, adres, postcode, plaats)
VALUES(‘Rob’, Pietersen, Spoorstraat 12, ‘1122 AA’, ‘Amsterdam’);

Met het UPDATE statement kan je gemakkelijk de reeds bestaande informatie in een SQL tabel wijzigen.

Een voorbeeld van een SQL UPDATE
UPDATE Persoon SET adres = ‘Spoorstaat 14’, Postcode = ‘1111 AA’ WHERE voornaam = ‘Rob’ AND achternaam = ‘Pietersen’;

Met het DELETE statement kun je onnodige rijen uit een tabel verwijderen.

Een voorbeeld van een SQL DELETE
DELETE FROM Persoon WHERE voornaam = ‘Rob’ AND achternaam = ‘Pietersen’;

SQL Data definitie

Met een data definitie kan de gebruiker nieuwe tabellen en elementen definiëren.

CREATE: met het CREATE statement kan je een nieuwe tabel aanmaken in een bestaande database.

Een voorbeeld van een SQL CREATE
CREATE TABLE Persoon
(voornaam VARCHAR(30), achternaam VARCHAR(30), adres VARCHAR(50), postcode VARCHAR(6), Plaats VARCHAR(30));

DROP – met het DROP statement in SQL kan je tabellen verwijderen, die je niet langer nodig hebt.

Een voorbeeld van een SQL DROP
DROP TABLE Persoon;

TRUNCATE – met het TRUNCATE statement kan je alle inhoud van de tabel verwijderen, maar de tabel zelf intact houden en klaar voor verder gebruik

Een voorbeeld van een SQL TRUNCATE
TRUNCATE TABLE Persoon;

Het ALTER statement staat de gebruiker toe een bestaand object op verschillende manieren te wijzigen — bijvoorbeeld door een kolom aan een bestaande tabel toe te voegen.

Een voorbeeld van een ALTER
ALTER TABLE Persoon RENAME TO Personen

SQL gegevenscontrole

Met SQL kan de gebruiker bepalen welke toegang elke gebruiker tot de eigenlijke tabel mag hebben.

GRANT – met het GRANT statement, kunt u gebruikers machtigen om de geselecteerde tabel te wijzigen

Een voorbeeld van een SQL GRANT
GRANT ALL PRIVILEGES ON database_naam AAN database_gebruiker;

REVOKE – met het REVOKE statement kun je alle rechten verwijderen die eerder aan een gebruiker zijn toegekend.

Een voorbeeld van een SQL REVOKE
REVOKE ALLE PRIVILEGES ON database_naam AAN database_gebruiker ;

Wat zijn Database Constraints?

In SQL is een constraint een regel die wordt toegepast op een kolom of tabel die beperkt welke gegevens erin kunnen worden ingevoerd. Elke keer dat je probeert een bewerking uit te voeren die de gegevens wijzigt, zoals een INSERT, UPDATE, of DELETE statement, zal het RDBMS testen of die gegevens in strijd zijn met bestaande constraints en, zo ja, een foutmelding teruggeven.

Databasebeheerders vertrouwen vaak op constraints om ervoor te zorgen dat een database een reeks gedefinieerde bedrijfsregels opvolgt. In de context van een database is een bedrijfsregel procedure die de consistentie van de gegevens bewaakt. Bijvoorbeeld, stel dat je een database hebt die de winkelinventaris van een klant zal beheren. Als de klant specificeert dat elk product een uniek identificatie moet hebben, zou je een kolom kunnen maken met een UNIQUE constraint die ervoor zorgt dat geen twee records in die kolom hetzelfde kunnen zijn.

Constraints zijn ook nuttig bij het handhaven van de gegevensintegriteit. Data integriteit is een brede term die vaak wordt gebruikt om de algemene nauwkeurigheid, consistentie en rationaliteit van gegevens in een database te beschrijven, gebaseerd op het specifieke gebruik ervan. Tabellen in een database zijn vaak nauw met elkaar verbonden, waarbij kolommen in de ene tabel afhankelijk zijn van de waarden in een andere. Omdat het invoeren van gegevens vaak onderhevig is aan menselijke fouten, zijn constraints in dit soort gevallen nuttig, omdat ze ervoor kunnen zorgen dat verkeerd ingevoerde gegevens dergelijke relaties niet kunnen beïnvloeden en zo de gegevensintegriteit van de database kunnen schaden.

Stel je voor dat je een database ontwerpt met twee tabellen: een tabel voor de huidige leerlingen van een school en een andere tabel voor de leden van het voetbalteam van die school. U zou een FOREIGN KEY constraint kunnen toepassen op een kolom in de tabel met het basketbalteam die verwijst naar een kolom in de tabel met de school. Dit zal een relatie leggen tussen de twee tabellen door te vereisen dat elke invoer in de voetbalteam tabel verwijst naar een bestaande invoer in de leerlingen tabel.

Gebruikers definiëren constraints wanneer ze voor het eerst een tabel maken, of ze kunnen ze later toevoegen met een ALTER TABLE statement, zolang het niet conflicteert met gegevens die al in de tabel staan. Wanneer je een constraint aanmaakt, zal het database systeem er automatisch een naam voor genereren, maar in de meeste SQL implementaties kun je een aangepaste naam toevoegen voor elke constraint. Deze namen worden gebruikt om te verwijzen naar constraints in ALTER TABLE statements bij het wijzigen of verwijderen ervan.

De SQL standaard definieert formeel slechts vijf constraints:

PRIMARY KEY
FOREIGN KEY
UNIQUE
CHECK
NOT NULL

Waar wordt SQL voor gebruikt?

Nu we begrijpen wat SQL is en hoe het werkt, laten we eens proberen om te zien wat SQL kan doen. Deze programmeertaal heeft verschillende toepassingen voor data analisten & data science professionals. Het is vooral nuttig omdat het kan:

  • Queries kan uitvoeren tegen een database
  • Gegevens ophalen uit een database
  • Records kan invoegen in een database
  • Records in een database bijwerken
  • Records uit een database verwijderen
  • Nieuwe databases, of nieuwe tabellen in een database maken
  • Opgeslagen procedures en overzichten in een database maken
  • Rechten instellen op tabellen, procedures en viewsStel je voor hoe moeilijk het leven zou zijn als we geen manier hadden om de database in deze vorm te besturen. Nadat we een idee hebben gekregen van waar SQL voor wordt gebruikt, gaan we nu proberen SQL te leren in een echte database.

Trainingen

10977: Upgrading Your SQL Server Skills to Microsoft SQL Server 2014 (MOC10977)

This five-day instructor-led course teaches students how to use the enhancements and new features that have been added to SQL Server and the Microsoft data platform since the release of SQL Server 2008. The course…

10985: Introduction to SQL Databases (MOC10985)

Deze driedaagse cursus is bedoeld voor mensen die op zoek zijn naar een professionele beroepsdatabase of die hun functie uitbreiden om database-elementen te omvatten.

10987: Performance Tuning and Optimizing SQL Databases (MOC10987)

Deze vierdaagse cursus biedt studenten die SQL Server-databases beheren en onderhouden de kennis en vaardigheden om hun databases af te stemmen en te optimaliseren.

10988: Managing SQL Business Intelligence Operations (MOC10988)

Deze driedaagse cursus is bedoeld voor databaseprofessionals die Business Intelligence (BI) -activiteiten beheren. Deze cursus behandelt verschillende opties die zakelijke gebruikers de mogelijkheid bieden om gegevens te analyseren en hun bevindingen te delen, te beginnen…

10990: Analyzing Data with SQL Server Reporting Services (MOC10990)

Deze cursus leert studenten hoe ze een SQL Server 2016 Reporting Services-oplossing voor gegevensanalyse in een organisatie kunnen implementeren. De cursus bespreekt hoe je de ontwikkeltools van Reporting Services kunt gebruiken om rapporten te maken…

20461: Querying Microsoft SQL Server (MOC20461)

This 5-day instructor led course provides students with the technical skills required to write basic Transact-SQL queries for Microsoft SQL Server 2014. This course is the foundation for all SQL Server-related disciplines; namely, Database Administration,…

20463: Implementing a Data Warehouse with Microsoft SQL Server (MOC20463)

This course describes how to implement a data warehouse platform to support a BI solution. Students will learn how to create a data warehouse with Microsoft SQL Server 2014, implement ETL with SQL Server Integration…

20465: Designing Database Solutions for Microsoft SQL Server (MOC20465)

Deze training biedt u alle kennis en vaardigheden die u nodig heeft voor het ontwerpen en implementeren van Database Solutions door gebruik te maken van het Microsoft SQL Server 2012-platform. Verder wordt er uitgebreid aandacht…

20466: Implementing Data Models and Reports with Microsoft SQL Server

The focus of this five-day instructor-led course is on creating managed enterprise BI solutions. It describes how to implement multidimensional and tabular data models, deliver reports with Microsoft SQL Server Reporting Services, create dashboards with…

20467: Designing Self-Service Business Intelligence and Big Data Solutions (MOC20467)

Deze training biedt u alle kennis en vaardigheden die u nodig heeft voor het opzetten en implementeren van Business Intelligence Solutions door gebruik te maken van het Microsoft SQL Server 2012 platform. Verder wordt er…

20761: Querying Data with Transact-SQL (MOC20761)

Het doel van deze 5-daagse cursus is om studenten een goed begrip te geven van de Transact-SQL-taal die door alle SQL Server-gerelateerde disciplines wordt gebruikt; Business intelligence, databasebeheer en databaseontwikkeling.

20762: Developing SQL Database (MOC20762)

Deze vijfdaagse cursus biedt studenten de kennis en vaardigheden om een Microsoft SQL Server 2016-database te ontwikkelen. De cursus is gericht op het leren van individuen om SQL Server 2016-productfuncties en -hulpmiddelen te gebruiken met…

20764: Administering a SQL Database Infrastructure (MOC20764)

Deze vijfdaagse cursus biedt studenten die SQL Server-databases beheren en onderhouden de kennis en vaardigheden om een SQL Server-database-infrastructuur te beheren. Accessoire het zal van nut zijn voor particulieren die applicaties ontwikkelen die inhoud leveren…

20765: Provisioning SQL Databases (MOC20765)

Deze vijfdaagse cursus biedt studenten de kennis en vaardigheden om een Microsoft SQL Server 2016-database aan te bieden. De cursus behandelt SQL Server 2016-voorziening zowel op locatie als in Azure en behandelt de installatie van…

20767: Implementing a SQL Data Warehouse (MOC20767)

Deze vijfdaagse cursus definieert hoe een datawarehouse-platform kan worden geïmplementeerd om een BI-oplossing te ondersteunen. Tijdens deze cursus leren de studenten hoe ze een datawarehouse maken met Microsoft SQL Server 2016 en met Azure SQL…

20768: Developing SQL Data Models (MOC20768)

Deze driedaagse cursus is gericht op databaseprofessionals die een rol vervullen van Business Intelligence (BI) ontwikkelaar. Deze cursus gaat in op de implementatie van multidimensionale databases met behulp van SQL Server Analysis Services (SSAS) en…

20778: Analyzing Data with PowerBI

Het hoofddoel van deze driedaagse cursus is om studenten een goed begrip te geven van data-analyse met Power BI. De cursus omvat het maken van visualisaties, de Power BI-service en de Power BI Mobile Ap.

Big Data Foundation (BDF)

Big Data zijn dataverzamelingen die, in de regel, niet met standaard databasemanagement systemen verwerkt kunnen worden of onderhouden kunnen worden. Big Data is vaak ongestructureerd en van grote omvang. Tevens is Big Data tegenwoordig een…

Big Data Fundamentals

Men spreekt van Big Data wanneer men werkt met één of meer datasets die te groot zijn om met reguliere databasemanagementsystemen onderhouden te worden. Big Data spelen een steeds grotere rol. De hoeveelheid data die…

Big Data Scientist

Dit is een vervolg op de Big Data Fundamentals (BDF) training en bestaat uit 4 modules. Na elke module kan men het bijgehorende examen doen. Indien alle examens positief worden afgesloten is de deelnemers Certified…

Business Intelligence (BI) met MS Power BI – Basis

De hoeveelheid en verscheidenheid van beschikbare gegevens neemt dagelijks toe. De wil en de noodzaak deze gegevens te gebruiken neemt ook toe. De hulpmiddelen om meerwaarde te creëren, om toepassingsgerichte inzichten te maken met deze…

Business Intelligence (BI) met MS Power BI – Vervolg

De hoeveelheid en verscheidenheid van beschikbare gegevens neemt dagelijks toe. De wil en de noodzaak deze gegevens te gebruiken neemt ook toe. De hulpmiddelen om meerwaarde te creëren, om toepassingsgerichte inzichten te maken met deze…

Data analyse met MS Power BI

De hoeveelheid en verscheidenheid van beschikbare gegevens neemt dagelijks toe. De wil en de noodzaak deze gegevens te gebruiken neemt ook toe. De hulpmiddelen om meerwaarde te creëren, om toepassingsgerichte inzichten te maken met deze…

Databases en SQL Foundation (DBSQLF.NL)

Op dit moment zijn er veel mensen die met SQL en databases werken maar vaak niet de achterliggende concepten weten. Dat is jammer omdat het dan veel meer tijd kost om nieuwe rapportagevragen van het…

Designing and Implementing Cloud Data Platform Solutions (MOC55247)

Voorheen bekend als cursus Designing and Implementing Cloud Data Platform Solutions (MOC40441), is deze driedaagse cursus bedoeld voor data-professionals die database-oplossingen willen ontwerpen en implementeren in SQL Server en op Microsoft Azure. Opties voor beveiliging,…

Rollen beheren in Power BI

In deze 1-daagse training leer je de ins- en outs van het publiceren van Power BI documenten en leer je in de Power BI Service omgeving samen te werken.

Transact-SQL Querying (DP-080)

Deze training leert de basis van het Microsoft dialect van de standaard SQL-taal: Transact-SQL. Onderwerpen zijn onder meer het opvragen en wijzigen van gegevens in relationele databases die worden gehost in op Microsoft SQL Server…

Meer weten over een training of advies? Bel met onze opleidingsadviseurs 085 02 01 070 of gebruik het contactformulier.