Samenvatting Databases2
Week 1:
INSERT:
INSERT INTO tabelnaam (kolom1, kolom2 , etc)
VALUES (waarde1, waarde2, etc)
INSERT INTO Werknemers
(Voornaam, tussenvoegsel, achternaam, salaris)
VALUES
(‘Pietje’, NULL, ‘Puk’, 25000)
INSERT INTO tabelnaam
VALUES (waarde1, waarde2, etc)
Dus zonder kolomnamen mag ook.
Waardes schrijven in volgorde van de kolommen in de tabel.
Je moet nu wel alles invullen, dus ook het AI veld. Je kan hier gewoon NULL of 0 invullen.
Auto Increment velden hoef je niet in te vullen, zoals bijv ID.
Je kunt een waarde geven voor een AI veld alleen als die waarde nog niet bestaat.
Auto Increment veld moet een index hebben (een PK heeft dat).
Maar 1 AI veld per tabel.
INSERT … SELECT
Je mag ook SELECT gebruiken ipv VALUES, dan wordt het resultaat van je SELECT je
VALUES.
INSERT INTO werknemers
(voornaam, tussenvoegsel, achternaam, salaris)
SELECT voornaam, tussenvoegsel, achternaam, 0
FROM studenten;
,INSERT … SELECT … Subquery
Je kunt ook een subquery eraan toevoegen.
INSERT INTO werknemers
(voornaam, tussenvoegsel, achternaam, salaris)
SELECT voornaam, tussenvoegsel, achternaam, salaris
FROM studenten
WHERE studenten.salaris > (SELECT AVG(salaris) FROM werknemers);
UPDATE
Om data in een database te wijzigen.
UPDATE tabelnaam UPDATE werknemers
SET kolomnaam = waarde SET salaris = 30000
WHERE … WHERE voornaam = ‘Pietje’ AND achternaam = ‘Puk’
Uniek veld (PK) gebruiken bij WHERE is beter, dus:
UPDATE werknemers
SET salaris = 30000
WHERE werknemerID = 1;
Je kan ook meerdere kolommen tegelijk updaten dmv een komma:
UPDATE studenten
SET geboortedatum = ’10-10-1999’, opleiding = ‘Informatica’
WHERE studentnr = 1234;
, UPDATE … SUBQUERY
UPDATE werknemers
SET salaris = salaris * 1.1
WHERE werknemerID IN
(
SELECT werknemerID
FROM adressen
WHERE woonplaats = ‘Amsterdan’
);
DELETE
Om rijen uit een tabel te verwijderen.
Bijvoorbeeld: Verwijder werknemer met ID 123
DELETE FROM tabelnaam DELETE FROM Werknemer
WHERE …. WHERE werknemerID = 123;
INDEXEN
Je kunt een index zetten op een kolom, waardoor je sneller op die kolom kan zoeken.
Een PK heeft altijd automatisch een index.
In Workbench aparte tab voor indexes.
Voor elke index die gezet wordt op een tabel, wordt er nog een tabel bijgehouden met alleen
het index veld, maar dan gesorteerd.
De nieuwe tabel en zijn inhoud is niet te zien in je database, maar wordt helemaal
bijgehouden door de database server zelf.
SELECT * FROM werknemers WHERE achternaam = 'Tomeloos';
Zal sneller gaan, omdat er makkelijker gezocht kan worden in de achternaam index, omdat
deze alfabetisch gerangschikt is.
Week 1:
INSERT:
INSERT INTO tabelnaam (kolom1, kolom2 , etc)
VALUES (waarde1, waarde2, etc)
INSERT INTO Werknemers
(Voornaam, tussenvoegsel, achternaam, salaris)
VALUES
(‘Pietje’, NULL, ‘Puk’, 25000)
INSERT INTO tabelnaam
VALUES (waarde1, waarde2, etc)
Dus zonder kolomnamen mag ook.
Waardes schrijven in volgorde van de kolommen in de tabel.
Je moet nu wel alles invullen, dus ook het AI veld. Je kan hier gewoon NULL of 0 invullen.
Auto Increment velden hoef je niet in te vullen, zoals bijv ID.
Je kunt een waarde geven voor een AI veld alleen als die waarde nog niet bestaat.
Auto Increment veld moet een index hebben (een PK heeft dat).
Maar 1 AI veld per tabel.
INSERT … SELECT
Je mag ook SELECT gebruiken ipv VALUES, dan wordt het resultaat van je SELECT je
VALUES.
INSERT INTO werknemers
(voornaam, tussenvoegsel, achternaam, salaris)
SELECT voornaam, tussenvoegsel, achternaam, 0
FROM studenten;
,INSERT … SELECT … Subquery
Je kunt ook een subquery eraan toevoegen.
INSERT INTO werknemers
(voornaam, tussenvoegsel, achternaam, salaris)
SELECT voornaam, tussenvoegsel, achternaam, salaris
FROM studenten
WHERE studenten.salaris > (SELECT AVG(salaris) FROM werknemers);
UPDATE
Om data in een database te wijzigen.
UPDATE tabelnaam UPDATE werknemers
SET kolomnaam = waarde SET salaris = 30000
WHERE … WHERE voornaam = ‘Pietje’ AND achternaam = ‘Puk’
Uniek veld (PK) gebruiken bij WHERE is beter, dus:
UPDATE werknemers
SET salaris = 30000
WHERE werknemerID = 1;
Je kan ook meerdere kolommen tegelijk updaten dmv een komma:
UPDATE studenten
SET geboortedatum = ’10-10-1999’, opleiding = ‘Informatica’
WHERE studentnr = 1234;
, UPDATE … SUBQUERY
UPDATE werknemers
SET salaris = salaris * 1.1
WHERE werknemerID IN
(
SELECT werknemerID
FROM adressen
WHERE woonplaats = ‘Amsterdan’
);
DELETE
Om rijen uit een tabel te verwijderen.
Bijvoorbeeld: Verwijder werknemer met ID 123
DELETE FROM tabelnaam DELETE FROM Werknemer
WHERE …. WHERE werknemerID = 123;
INDEXEN
Je kunt een index zetten op een kolom, waardoor je sneller op die kolom kan zoeken.
Een PK heeft altijd automatisch een index.
In Workbench aparte tab voor indexes.
Voor elke index die gezet wordt op een tabel, wordt er nog een tabel bijgehouden met alleen
het index veld, maar dan gesorteerd.
De nieuwe tabel en zijn inhoud is niet te zien in je database, maar wordt helemaal
bijgehouden door de database server zelf.
SELECT * FROM werknemers WHERE achternaam = 'Tomeloos';
Zal sneller gaan, omdat er makkelijker gezocht kan worden in de achternaam index, omdat
deze alfabetisch gerangschikt is.