Les 11 : Basis SQL (deel2).
Wat is SQL? SQL gaan we gebruiken voor het raadplegen van de database. We gaan gegevens invoegen in de database, selecteren, aanpassen en verwijderen van de database. Om dit uit te voeren gaan we gebruik maken van SQL. SQL wordt gebruikt voor elke database. Werk je met een MY_SQL, ORACLE, of andere databases werkt, dit blijft altijd hetzelfde. Er bestaan enkele kleine verschillen in versies van SQL maar in grote lijnen spreken we hier toch over een grote gelijkheid.
Het SQL SELECT Statement Het select statement gebruiken we om data te selecteren in een database. Het resultaat is opgeslagen in een record set. Dit wordt zo genoemd, de data die we terugkrijgen van de database. SQL SELECT Syntax SELECT column_name(s) FROM tabel_naam
en SELECT * FROM tabel_naam
Een SQL SELECT voorbeeld. Persoon tabel: persoon_id
naam
voornaam
adres
gemeente
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
3
Pettersen
Kari
Storgt 20
Stavanger
Vervolgens gaan we de “naam” en “voornaam” selecteren van de bovenstaande tabel.
We use the following SELECT statement: SELECT Naam,Voornaam FROM Persoon
Resultaat: naam
voornaam
Hansen
Ola
Svendson
Tove
Pettersen
Kari
SELECT * voorbeeld We willen alle kolommen selecteren. We gebruiken het volgende SELECT statement: SELECT * FROM Persoon
Tip: Het asterisk (*) is een verkorte notatie om alles te selecteren.! Resultaat: Persoon_id
naam
voornaam
adres
gemeente
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
3
Pettersen
Kari
Storgt 20
Stavanger
De WHERE clausule is gebruikt om data te filteren.
The WHERE clausule De WHERE clausule is gebruikt om enkel deze resultaten op te vragen die voldoen aan een welbepaald criterium. SQL WHERE Syntax SELECT column_name(s) FROM tabel_naam WHERE kolom_naamoperator value
WHERE clausule voorbeeld "persoon" tabel: Persoon_id
naam
voornaam
adres
gemeente
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
3
Pettersen
Kari
Storgt 20
Stavanger
We willen enkel de mensen selecteren die wonen in "Sandnes".
SELECT * FROM Persoon WHERE Gemeente='Sandnes'
Het resultaat: Persoon_id
naam
voornaam
adres
gemeente
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
Enkele quotes gebruiken bij SQL! SQL gebruikt altijd enkele quotes bij tekst waarden, let op. Een fout hiertegen resulteert onmiddellijk in meldingen en je query zal niet uitgevoerd worden. Numeriek gegevens worden NIET tussen enkele quotes (‘’) genoteerd. Tekst waarden: correct: SELECT * FROM Persoon WHERE Voornaam='Tove' FOUT: SELECT * FROM Persoon WHERE Voornaam=Tove
For numeric values: correct: SELECT * FROM Persoon WHERE Year=1965 FOUT: SELECT * FROM Persoon WHERE Year='1965'
Operatoren zijn toegelaten bij het opmaken van je query. Bij de WHERE clausule kunnen volgende operatoren gebruikt worden: Operator
Omschrijving
=
gelijk
<>
Verschillend van
>
Groter dan
<
Kleiner dan
>=
Groter dan of gelijk aan
<=
Kleiner dan of gelijk aan
BETWEEN Tussen een bepaalde range (meestal gebruikt voor numerieke waarden) LIKE
Een welbepaald zoekpatroon
IN
Als je het exacte resultaat kent, dat je minstens 1 maal wilt terug geven in je record set.
De AND en OR operatoren zijn gebruikt om resultaten te filteren binnen een bepaald criterium.
De AND & OR operatoren De AND operator zal de gegevens terug geven in een recordset wanneer deze gegevens voldoen aan beide voorwaarden van het criterium. De OR operator zal gegevens teruggeven in een recordset wanneer deze voldoen minstens 1 van de voorwaarden binnen het criterium.
AND voorbeeld De persoon tabel: Persoon_id
naam
voornaam
adres
gemeente
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
3
Pettersen
Kari
Storgt 20
Stavanger
We willen de persoon selecteren waarvan de voornaam ‘Tove’ is en de naam ‘Svendson’. We use the following SELECT statement: SELECT * FROM Persoon WHERE Voornaam='Tove' AND Naam='Svendson'
Resultaat: Persoon_id
naam
voornaam
adres
gemeente
2
Svendson
Tove
Borgvn 23
Sandnes
OR operator We willen de personen selecteren waar de naam ‘Tove’ is, of de voornaam ‘Ola’ is. We use the following SELECT statement: SELECT * FROM Persoon WHERE naam='Tove' OR Voornaam='Ola'
Persoon_id
Naam
Voornaam
Adres
Gemeente
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
INSERT INTO statement is gebruikt om gegevens toe te voegen aan de database.
INSERT INTO Statement SQL INSERT INTO
We kunnen deze schrijven op 2 manieren. In de eerste methode gaan we niet de velden definiëren waar de waarden weggeschreven moeten worden: INSERT INTO tabel_naam VALUES (value1, value2, value3,...)
De tweede methode vermeld de velden specifiek waar de waarden in weggeschreven moeten worden: INSERT INTO tabel_naam (column1, column2, column3,...) VALUES (value1, value2, value3,...) Persoon_id
Naam
Voornaam
Adres
Gemeente
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
3
Pettersen
Kari
Storgt 20
Stavanger
We willen een nieuwe rij invoeren in deze tabel. We use the following SQL statement: INSERT INTO Persoon VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger')
Persoon_id
Naam
Voornaam
Adres
Gemeente
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
3
Pettersen
Kari
Storgt 20
Stavanger
4
Nilsen
Johan
Bakken 2
Stavanger
Insert Data enkel in specifieke kolommen Data wordt enkel toegevoegd in "Persoon_id", "Naam" en de "Voornaam" kolommen: INSERT INTO Persoon (Persoon_id, Naam, Voornaam) VALUES (5, 'Tjessem', 'Jakob')
Persoon tabel will now look like this: Persoon_id
Naam
Voornaam
Adres
Gemeente
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
3
Pettersen
Kari
Storgt 20
Stavanger
4
Nilsen
Johan
Bakken 2
Stavanger
5
Tjessem
Jakob
SQL UPDATE Statement
Het UPDATE statement is gebruikt om gegevens aan te passen (te updaten) in onze database. SQL UPDATE syntax UPDATE tabel_naam SET column1=value, column2=value2,... WHERE bepaalde_kolom=bepaalde_waarde
SQL UPDATE Example Persoon tabel: Persoon_id
Naam
Voornaam
Adres
Gemeente
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
3
Pettersen
Kari
Storgt 20
Stavanger
4
Nilsen
Johan
Bakken 2
Stavanger
5
Tjessem
Jakob
We willen de persoon aanpassen "Tjessem, Jakob" in persoon tabel. We use the following SQL statement: UPDATE Persoon SET Adres='Nissestien 67', Gemeente='Sandnes' WHERE Naam='Tjessem' AND Voornaam='Jakob'
Resultaat: Persoon_id
Naam
Voornaam
Adres
Gemeente
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
3
Pettersen
Kari
Storgt 20
Stavanger
4
Nilsen
Johan
Bakken 2
Stavanger
5
Tjessem
Jakob
Nissestien 67
Sandnes
SQL UPDATE waarschuwing Gebruik steeds de WHERE clausule voor een update van gegevens. Doen we dit niet, kan het wel gebeuren dat je alle gegevens in een tabel gaat aanpassen! UPDATE Persoon SET Adres='Nissestien 67', Gemeente='Sandnes'
Persoon tabel zou dan worden als: Persoon_id
Naam
Voornaam
Adres
Gemeente
1
Hansen
Ola
Nissestien 67
Sandnes
2
Svendson
Tove
Nissestien 67
Sandnes
3
Pettersen
Kari
Nissestien 67
Sandnes
4
Nilsen
Johan
Nissestien 67
Sandnes
5
Tjessem
Jakob
Nissestien 67
Sandnes
Het DELETE statement is gebruikt om gegevens te verwijderen. SQL DELETE syntax DELETE FROM tabel_naam WHERE bepaalde_kolom=bepaalde_waarde Gebruik steeds de WHERE clausule voor het verwijderen van specifieke gegevens in een database. Doe je dit niet, dan kan het gebeuren dat je alle gegevens zult verwijderen uit de database!
SQL DELETE voorbeeld Persoon tabel: Persoon_id
Naam
Voornaam
Adres
Gemeente
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
3
Pettersen
Kari
Storgt 20
Stavanger
4
Nilsen
Johan
Bakken 2
Stavanger
5
Tjessem
Jakob
Nissestien 67
Sandnes
We willen de persoon verwijderen met als naam en voornaam "Tjessem, Jakob" in persoon tabel. DELETE FROM Persoon WHERE Naam='Tjessem' AND Voornaam='Jakob'
Resultaat: Persoon_id
Naam
Voornaam
Adres
Gemeente
1
Hansen
Ola
Timoteivn 10
Sandnes
2
Svendson
Tove
Borgvn 23
Sandnes
3
Pettersen
Kari
Storgt 20
Stavanger
4
Nilsen
Johan
Bakken 2
Stavanger
Delete alle records. Het is mogelijk om alle gegevens in een tabel te verwijderen. De tabel echter in je database blijft intact. DELETE FROM tabel_naam of DELETE * FROM tabel_naam Weer voorzichtig, eens alle gegevens verwijderd zijn kan je ze niet meer recupereren. Dit is onherroepelijk. Vaak worden in allerlei systemen steeds een bevestiging gevraagd voor het verwijderen van een record. Bevestig je deze , dan wordt de record eerst nog een verplaatst naar een bin, in de bin moet je nog eens de record gaan verwijderen, daarna is het pas definitief.