SQL
description
Transcript of SQL
SQLSAMENVATTING
SELECT Weergeven van alle gegevens uit een tabel:
SELECT *FROM tlbPersonen;
Weergeven van alle personen die uit Aruba komen:SELECT *FROM tlbPersonenWHERE land = ‘Aruba’;
Weergeven van personen met de achternaam Hernandis en die op Aruba wonen:
SELECT * FROM tlbPersonenWHERE naam = ‘Hernandis’ AND land = ‘Aruba’;
ID Naam Land Plaats01
Koomen Nederland
Wormer
02
Ruys Nederland
Diemen
03
Kazan Nederland
Zaandam
04
Hernandis
Nederland
Wormer
05
Koomen Nederland
Wormer
06
Hernandis
Aruba Piedra Plat
07
Dumfries
Aruba Wayacca
08
Korff Nederland
Wormer
09
Ras Aruba Piedra Plat
10
Taherian Nederland
Zaandijk
SELECT | vervolg Weergeven van alle personen die uit Wormer of Diemen komen:
SELECT *FROM tlbPersonenWHERE plaats = ‘Wormer’ OR plaats = ‘Diemen’;
Weergeven van kolom naam en land”SELECT naam, landFROM tlbPersonen;
Weergeven van alle plaatsen die beginnen met een “W”SELECT plaatsFROM tlbPersonenWHERE plaats = ‘W%’;
ID Naam Land Plaats01
Koomen Nederland
Wormer
02
Ruys Nederland
Diemen
03
Kazan Nederland
Zaandam
04
Hernandis
Nederland
Wormer
05
Koomen Nederland
Wormer
06
Hernandis
Aruba Piedra Plat
07
Dumfries
Aruba Wayacca
08
Korff Nederland
Wormer
09
Ras Aruba Piedra Plat
10
Taherian Nederland
Zaandijk
SELECT DISTINCT Weergeven van unieke landen:
SELECT DISTINCT landFROM tblPersonen;
ID Naam Land Plaats01
Koomen Nederland
Wormer
02
Ruys Nederland
Diemen
03
Kazan Nederland
Zaandam
04
Hernandis
Nederland
Wormer
05
Koomen Nederland
Wormer
06
Hernandis
Aruba Piedra Plat
07
Dumfries
Aruba Wayacca
08
Korff Nederland
Wormer
09
Ras Aruba Piedra Plat
10
Taherian Nederland
Zaandijk
LIKE Het LIKE statement kan worden gebruikt om op een bepaalde gedeelte Van een kolom te zoeken:
SELECT naam, plaatsFROM tblPersonenWHERE plaats LIKE ‘Zaan’;
of
SELECT naam, plaats FROM tblPersonen WHERE land LIKE ‘_____land’;
ID Naam Land Plaats01
Koomen Nederland
Wormer
02
Ruys Nederland
Diemen
03
Kazan Nederland
Zaandam
04
Hernandis
Nederland
Wormer
05
Koomen Nederland
Wormer
06
Hernandis
Aruba Piedra Plat
07
Dumfries
Aruba Wayacca
08
Korff Nederland
Wormer
09
Ras Aruba Piedra Plat
10
Taherian Nederland
Zaandijk
ORDER BY Laat alle gegevens zien gesorteerd op plaats;SELECT naam, plaatsFROM tblPersonenORDER BY plaats;
Sorteer de plaatsnaam van A > ZSELECT naam, plaatsFROM tblPersonenORDER BY plaats ASC(ending);
Sorteer de plaatsnaam van Z > ASELECT naam, plaatsFROM tblPersonenORDER BY plaats DESC(ending);
ID Naam Land Plaats01
Koomen Nederland
Wormer
02
Ruys Nederland
Diemen
03
Kazan Nederland
Zaandam
04
Hernandis
Nederland
Wormer
05
Koomen Nederland
Wormer
06
Hernandis
Aruba Piedra Plat
07
Dumfries
Aruba Wayacca
08
Korff Nederland
Wormer
09
Ras Aruba Piedra Plat
10
Taherian Nederland
Zaandijk
Werken met data Laat alle namen zien van personen welke in 2006 indienst zijn gekomen:
SELECT *FROM tblPersonenWHERE year(datum) = ‘2006’;
Laat alle namen zien van personen welke in oktober indienst zijn gekomen:
SELECT *FROM tblPersonenWHERE month(datum) = ‘10’;
ID Naam Datum01 Koomen 16-09-200102 Ruys 08-08-200603 Kazan 01-06-200604 Hernand
is31-10-2010
Samenvattende functies Een hulpmiddel om overzicht te houden op de data in de database. Veel gebruikte samenvattende functies: AVG COUNT COUNT(*) MIN MAX SUM
AVG Om het gemiddelde binnen een groep te berekenen. Werkt alleen met numerieke datatypen.
SELECT AVG(prijs) gemiddeldeFROM tblBoekenWHERE Genre='Literaire thriller';
ID Auteur Titel Genre Prijs
1 Stieg Larsson
Mannen die vrouwen haten
Literaire thriller
26,95
2 Karin Slaughter
Genesis Literaire thriller
19,90
3 Steve Brown Drugsbaron in spijkerbroek
True crime 16,95
4 Dan Brown Het verloren symbool Thriller 22,905 Jeroen
KoomenSQL for Dummies Computer 10,00
COUNT Om te tellen hoe vaak een expressie in een groep voorkomt.
SELECT COUNT (genre) genre_lit_thrillerFROM tblBoekenWHERE Genre='Literaire thriller';
ID Auteur Titel Genre Prijs
1 Stieg Larsson
Mannen die vrouwen haten
Literaire thriller
26,95
2 Karin Slaughter
Genesis Literaire thriller
19,90
3 Steve Brown Drugsbaron in spijkerbroek
True crime 16,95
4 Dan Brown Het verloren symbool Thriller 22,905 Jeroen
KoomenSQL for Dummies Computer 10,00
COUNT (*) Om te tellen hoeveel rijen er zich in de groep bevinden.
SELECT COUNT(*) tel_allesFROM tblBoeken;
ID Auteur Titel Genre Prijs
1 Stieg Larsson
Mannen die vrouwen haten
Literaire thriller
26,95
2 Karin Slaughter
Genesis Literaire thriller
19,90
3 Steve Brown Drugsbaron in spijkerbroek
True crime 16,95
4 Dan Brown Het verloren symbool Thriller 22,905 Jeroen
KoomenSQL for Dummies Computer 10,00
MIN Om te bepalen welke expressie de laagste waarde heeft binnen een groep.
SELECT MIN(prijs) min_prijsFROM tblBoekenWHERE='Literaire thriller';
ID Auteur Titel Genre Prijs
1 Stieg Larsson
Mannen die vrouwen haten
Literaire thriller
26,95
2 Karin Slaughter
Genesis Literaire thriller
19,90
3 Steve Brown Drugsbaron in spijkerbroek
True crime 16,95
4 Dan Brown Het verloren symbool Thriller 22,905 Jeroen
KoomenSQL for Dummies Computer 10,00
MAX Om te bepalen welke expressie de hoogste waarde heeft binnen een groep.
SELECT MAX(prijs) max_prijsFROM tblBoekenWHERE Genre='Literaire thriller';
ID Auteur Titel Genre Prijs
1 Stieg Larsson
Mannen die vrouwen haten
Literaire thriller
26,95
2 Karin Slaughter
Genesis Literaire thriller
19,90
3 Steve Brown Drugsbaron in spijkerbroek
True crime 16,95
4 Dan Brown Het verloren symbool Thriller 22,905 Jeroen
KoomenSQL for Dummies Computer 10,00
SUM Om het totaal te bepalen van alle waarden van een expressie binnen een groep. Werkt alleen met numerieke datatypen.
SELECT SUM(prijs) totale_prijsFROM tblBoeken;
ID Auteur Titel Genre Prijs
1 Stieg Larsson
Mannen die vrouwen haten
Literaire thriller
26,95
2 Karin Slaughter
Genesis Literaire thriller
19,90
3 Steve Brown Drugsbaron in spijkerbroek
True crime 16,95
4 Dan Brown Het verloren symbool Thriller 22,905 Jeroen
KoomenSQL for Dummies Computer 10,00
Subquery Query in een query; te gebruiken om extra gegevens op te halen uit dezelfde of een andere tabel.
SELECT *FROM boekenWHERE Prijs > (SELECT AVG(Prijs)
FROM boeken);
ID Auteur Titel Genre Prijs
1 Stieg Larsson
Mannen die vrouwen haten
Literaire thriller
26,95
2 Karin Slaughter
Genesis Literaire thriller
19,90
3 Steve Brown Drugsbaron in spijkerbroek
True crime 16,95
4 Dan Brown Het verloren symbool Thriller 22,905 Jeroen
KoomenSQL for Dummies Computer 10,00
Datamanipulatie (DML) SQL statements die gegevens bewerken (invoeren, wijzigen en verwijderen) worden DML statements genoemd. INSERT UPDATE DELETE
INSERT I Gegevens kunnen op meerdere manieren in een tabel worden ingevoerd: invoeren per record; invoeren van meerdere records tegelijk; overhevelen van records uit een bestaande tabel naar een andere
tabel;
INSERT II Voor alle INSERT-commando’s geldt: de waarden moeten voldoen aan de constraints, bijvoorbeeld NOT
NULL kolommen moeten worden ingevuld; de waarden, ingevuld achter VALUES, moeten dezelfde datatype
hebben als de kolom waarin ze geplaatst worden; de alfanumerieke gegevens moeten tussen quotes.
INSERT III Invoeren per record:INSERT INTO tblBoeken
VALUES ('6', 'Shoren Hernandis', 'Aruba', 'Reizen','29.99');
Invoeren van meerdere records tegelijk:INSERT tblBoeken (ID, Auteur, Titel, Genre, Prijs)VALUES ('7', 'Jeroen Koomen', 'SQL de antwoorden', 'Computer','19.99'),('8', 'Adnan Kazan', 'Windows Server 2008', 'Computer','29.99');
INSERT IVOverhevelen van records uit een bestaande tabel naar een andere tabel:
INSERT tblBoekenImport (ID, Auteur, Titel, Genre, Prijs)SELECT ID, Auteur, Titel, Genre, PrijsFROM tblBoekenWhere ID IN (1, 5, 6, 7);
UPDATE Als de bestaande inhoud van een tabel moet worden gewijzigd.UPDATE tblBoekenSET prijs = Prijs + 5WHERE prijs < 15;
UPDATE tblBoekenSET auteur = ‘Shoren Koomen-Hernandis’WHERE auteur = ‘Shoren Hernandis’;
DELETE Wanneer complete rijen uit een tabel moeten worden verwijderd:
DELETE FROM tblBoeken;
Een specifieke rij verwijderen:
DELETE FROM BoekenWHERE Auteur = 'Adnan Kazan';
Views I Een virtuele tabel
Voordelen views:-afschermen van vertrouwelijke gegevens;-in een view kunnen zelfgemaakte kolommen afgedrukt worden of vaste berekeningen worden uitgevoerd;-Wanneer een combinatie van bepaalde gegevens uit bepaalde tabellen nodig zijn is het gemakkelijk om een view te creëren.
Views II De basissyntax van een view is:CREATE VIEW <viewnaam> [kolomnaam1, kolomnaam2, …..]AS SELECT kolomnaam1, kolomnaam2, ….FROM <tabelnaam>WHERE <voorwaarde(n)>;
LET OP!Een viewnaam mag niet hetzelfde zijn als een tabelnaam!
Views IIICREATE VIEW genre_thriller (titel, genre, prijs)AS SELECT titel, genre, prijsFROM boekenWHERE Genre='thriller';
View tonen:SELECT *FROM genre_thriller;
View verwijderen:DROP VIEW genre_thriller;
SELECT…INTO I Met deze functie is het mogelijk om tijdelijke tabellen aan te maken, die een resultaat van een bewerking kunnen opslaan.
Maar ook is het mogelijk om permanente tabellen aan te maken.
SELECT…INTO IISELECT auteur, titel, genreINTO tblBackup_boekenFROM tblBoeken;
Als we de tabelnaam achter INTO door #tblBoekenTemp vervangen, wordt er een tijdelijke tabel aangemaakt. We kunnen dan uit beide Tabellen selecteren:
SELECT * FROM #tblBoekenTemp;SELECT * FROM tblBackup_boeken;
Beheren van tabellen Voor het aanmaken, aanpassen en verwijderen van databaseobjecten zijn de volgende opdrachten bedoeld: CREATE; ALTER; DROP.
CREATE Met deze functie kunnen we een tabel aanmaken.
CREATE TABLE tblBoeken(boek_id int NOT NULL, boektitel varchar(100) NULL,isbn char(17),Auteur varchar(50) NULL);
ALTER I Met deze functie kunnen we de tabellen in de database aanpassen.
Toevoegen van een nieuwe kolom IALTER TABLE tblBoekenADD Inkoopprijs MONEY;
Toevoegen van een nieuwe kolom IIALTER TABLE tblBoekenADD Inkoopprijs MONEY DEFAULT 10.00 NOT NULL;
ALTER II Verwijderen van een kolom: ALTER TABLE tblBoekenDROP COLUMN Inkoopprijs;
Aanpassen van een datatype in een kolom:ALTER TABLE tblBoekenALTER COLUMN BoekenID INT;
DROP Met deze functie kunnen we een tabel verwijderen.
DROP TABLE tblBoeken;