Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdGodelieve de Jonge Laatst gewijzigd meer dan 9 jaar geleden
1
Week 3 BIMAIV03 Les B3 BIMAIV03 Les B3
2
Opdracht 1 Van een artikel mogen maximaal 300 stuks verkocht worden. Verschillende klanten bestellen een aantal van dit artikel. Realiseer deze beperking voor onderstaande tabel. klantnraantal KLNR100370 KLNR211122 KLNR003450...
3
Uitwerking opdracht 1 CREATE TABLE orders (klantnr TEXT(10), aantal INTEGER, CHECK ((SELECT SUM(aantal) FROM orders) <= 300)); klantnraantal klnr1001130 klnr1002160 klnr10037
4
Uitwerking opdracht 1 vervolg INSERT INTO orders VALUES('KLNR1004', 5); klantnraantal klnr1001130 klnr1002160 klnr10037 INSERT INTO orders VALUES('KLNR1004', 3);
5
Uitwerking opdracht 1 vervolg2 UPDATE orders SET aantal = 140 WHERE klantnr = 'klnr1001'; klantnraantal klnr1001130 klnr1002160 klnr10037 UPDATE orders SET aantal = 140 WHERE klantnr = 'klnr1002';
6
Referentiële integriteit 1 datumthuisuitdpvdpt 06 feb 2005RKC WaalwijkFC Groningen30 06 feb 2005FC UtrechtNAC20 06 feb 2005AjaxFC Twente12 06 feb 2005VitesseRoda JC30 30 jan 2005AjaxADO Den Haag00 30 jan 2005NACSC Heerenveen11 30 jan 2005RKC WaalwijkPSV14 29 jan 2005VitesseRBC Roosendaal13 --- WEDSTRIJD club ADO Den Haag Ajax AZ De Graafschap FC Den Bosch FC Groningen FC Twente FC Utrecht --- EREDIVISIE
7
studentnrmodcodedatumcijfer 0700711INFA0117 nov 20038 0700716INFA0117 nov 20035 0700716INFA0102 jul 20046 0700816INFA0117 nov 20036 0700820INFA0117 nov 20034 0700820INFA0130 jan 20046 0700820MM0116 nov 20045 0700839INFA0117 nov 20034 --- Referentiële integriteit 2 CIJFERLIJST STUDENT studentnrnaamrest van de gegevens 0700711Hendriks... 0700716Haringa... 0700816Willemsen... 0700820Gorkom... 0700839Heijtinga... 0700871Dorp... 0700887Klaassen... 0700888Jennings... ---
8
studentnrmodcodedatumcijfer 0700711INFA0117 nov 20038 0700716INFA0117 nov 20035 0700716INFA0102 jul 20046 0700816INFA0117 nov 20036 0700820INFA0117 nov 20034 0700820INFA0130 jan 20046 0700820MM0116 nov 20045 0700839INFA0117 nov 20034 --- Referentiële integriteit 3 CIJFERLIJST ModCodeNaamSpt ARCHArchitectuur1 INFA01Informatiekunde1 INFA02Informatiekunde1 --- MODUUL
9
studentnrmodcodedatumcijfer 0700711INFA0117 nov 20038 0700716INFA0117 nov 20035 0700716INFA0102 jul 20046 0700816INFA0117 nov 20036 0700820INFA0117 nov 20034 0700820INFA0130 jan 20046 0700820MM0116 nov 20045 0700839INFA0117 nov 20034 --- Referentiële integriteit 4 CIJFERLIJST TENTAMEN- PLANNING modcodedatumn_surv ARCH16 nov 200312 INFA0117 nov 20039 INFA0130 jan 20048 ---
10
Referentiële integriteit 5 Cijferlijst Student Moduul
11
Referentiële integriteit 5a Cijferlijst Student Moduul Tentamen- planning
12
Referentiële integriteit 6 Wedstrijd Eredivisie
13
Referentiële integriteit 7 Referentiële integriteit kan worden afgedwongen met behulp van CHECK-constraints. Dat is niet verstandig; het kan anders... CREATE TABLE wedstrijd (datum DATE, thuis TEXT(20) REFERENCES eredivisie(club), uit TEXT(20) REFERENCES eredivisie(club), dpv INTEGER, dpt INTEGER);
14
Referentiële integriteit 8 CREATE TABLE wedstrijd (datum DATE, thuis TEXT(20) CONSTRAINT ach REFERENCES eredivisie(club), uit TEXT(20) CONSTRAINT oei REFERENCES eredivisie(club), dpv INTEGER, dpt INTEGER);
15
Referentiële integriteit 9 CREATE TABLE wedstrijd (datum DATE, thuis TEXT(20), uit TEXT(20), dpv INTEGER, dpt INTEGER, FOREIGN KEY (thuis) REFERENCES eredivisie(club), FOREIGN KEY (uit) REFERENCES eredivisie(club));
16
Referentiële integriteit 10... en een kolom CLUB bevat die daarin óf als PRIMARY KEY óf als UNIQUE gedefinieerd is In alle gevallen geldt dat de tabel EREDIVISIE moet bestaan...
17
Referentiële integriteit 11 We denken ons de tabellen club Ajax PSV NAC AZ datumthuisuitdpvdpt 22 jan 2005PSVNAC40 13 nov 2004NACAZ03 24 okt 2004PSVAjax20 03 okt 2004AZAjax00 28 aug 2004NACPSV22 22 aug 2004AjaxNAC62 21 aug 2004PSVAZ51 EREDIVISIE WEDSTRIJD
18
Referentiële integriteit 11 club Ajax PSV NAC AZ datumthuisuitdpvdpt 22 jan 2005PSVNAC40 13 nov 2004NACAZ03 24 okt 2004PSVAjax20 03 okt 2004AZAjax00 28 aug 2004NACPSV22 22 aug 2004AjaxNAC62 21 aug 2004PSVAZ51 EREDIVISIE WEDSTRIJD UPDATE eredivisie SET club = 'Roda JC' WHERE club = 'Ajax'; DELETE FROM eredivisie WHERE club = 'Ajax';
19
Referentiële integriteit 11 club Ajax PSV NAC AZ datumthuisuitdpvdpt 22 jan 2005PSVNAC40 13 nov 2004NACAZ03 24 okt 2004PSVAjax20 03 okt 2004AZAjax00 28 aug 2004NACPSV22 22 aug 2004AjaxNAC62 21 aug 2004PSVAZ51 EREDIVISIE WEDSTRIJD INSERT INTO wedstrijd VALUES (#14 feb 2005#, 'NEC', 'Ajax', 2, 3);
20
ON UPDATE CASCADE 1 We definiëren WEDSTRIJD als CREATE TABLE wedstrijd (datum DATE, thuis TEXT(20), uit TEXT(20), dpv INTEGER, dpt INTEGER, FOREIGN KEY (thuis) REFERENCES eredivisie(club) ON UPDATE CASCADE, FOREIGN KEY (uit) REFERENCES eredivisie(club) ON UPDATE CASCADE);
21
ON UPDATE CASCADE 2 We denken ons de tabellen club Ajax PSV NAC AZ datumthuisuitdpvdpt 22 jan 2005PSVNAC40 13 nov 2004NACAZ03 24 okt 2004PSVAjax20 03 okt 2004AZAjax00 28 aug 2004NACPSV22 22 aug 2004AjaxNAC62 21 aug 2004PSVAZ51 EREDIVISIE WEDSTRIJD En geven de instructie UPDATE eredivisie SET club = 'ADO' WHERE club = 'Ajax'; ADO
22
We definiëren WEDSTRIJD als CREATE TABLE wedstrijd (datum DATE, thuis TEXT(20), uit TEXT(20), dpv INTEGER, dpt INTEGER, FOREIGN KEY (thuis) REFERENCES eredivisie(club) ON DELETE CASCADE, FOREIGN KEY (uit) REFERENCES eredivisie(club) ON DELETE CASCADE);
23
ON DELETE CASCADE 2 We denken ons de tabellen club Ajax PSV NAC AZ datumthuisuitdpvdpt 22 jan 2005PSVNAC40 13 nov 2004NACAZ03 24 okt 2004PSVAjax20 03 okt 2004AZAjax00 28 aug 2004NACPSV22 22 aug 2004AjaxNAC62 21 aug 2004PSVAZ51 EREDIVISIE WEDSTRIJD En geven de instructie DELETE FROM eredivisie WHERE club = 'Ajax';
24
ON DELETE CASCADE 3 Het resultaat club PSV NAC AZ EREDIVISIE datumthuisuitdpvdpt 22 jan 2005PSVNAC40 13 nov 2004NACAZ03 28 aug 2004NACPSV22 21 aug 2004PSVAZ51 WEDSTRIJD
25
ON DELETE SET NULL 1 We definiëren WEDSTRIJD als CREATE TABLE wedstrijd (datum DATE, thuis TEXT(20), uit TEXT(20), dpv INTEGER, dpt INTEGER, FOREIGN KEY (thuis) REFERENCES eredivisie(club) ON DELETE SET NULL, FOREIGN KEY (uit) REFERENCES eredivisie(club) ON DELETE SET NULL);
26
ON DELETE SET NULL 2 We denken ons de tabellen club Ajax PSV NAC AZ datumthuisuitdpvdpt 22 jan 2005PSVNAC40 13 nov 2004NACAZ03 24 okt 2004PSVAjax20 03 okt 2004AZAjax00 28 aug 2004NACPSV22 22 aug 2004AjaxNAC62 21 aug 2004PSVAZ51 EREDIVISIE WEDSTRIJD En geven de instructie DELETE FROM eredivisie WHERE club = 'Ajax';
27
ON DELETE SET NULL 3 Het resultaat club PSV NAC AZ EREDIVISIE datumthuisuitdpvdpt 22 jan 2005PSVNAC40 13 nov 2004NACAZ03 24 okt 2004PSV20 03 okt 2004AZ00 28 aug 2004NACPSV22 22 aug 2004NAC62 21 aug 2004PSVAZ51 WEDSTRIJD
28
Structuur van tabellen wijzigen Een kolom aan een tabel toevoegen ALTER TABLE eredivisie ADD COLUMN stadion TEXT(25); ALTER TABLE eredivisie ADD COLUMN stadion TEXT(25); club Ajax PSV NAC AZ club Ajax PSV NAC AZ stadion
29
Structuur van tabellen wijzigen Een kolom uit een tabel verwijderen ALTER TABLE eredivisie DROP COLUMN stadion; ALTER TABLE eredivisie DROP COLUMN stadion; club Ajax PSV NAC AZ club Ajax PSV NAC AZ stadion
30
Structuur van tabellen wijzigen Dit kan niet. Er wordt in de definitie van WEDSTRIJD twee keer naar verwezen. ALTER TABLE eredivisie DROP COLUMN club; ALTER TABLE eredivisie DROP COLUMN club;
31
Structuur van tabellen wijzigen U kunt een kolomtype wijzigen met ALTER TABLE wedstrijd ALTER COLUMN datum TEXT(20); ALTER TABLE wedstrijd ALTER COLUMN datum TEXT(20); Dit gaat alleen goed als de gegevens te converteren zijn. Als dat niet mogelijk is gaat de wijziging niet door.
32
Structuur van tabellen wijzigen U kunt een constraint aan een tabel toevoegen met ALTER TABLE wedstrijd ADD CONSTRAINT a1 PRIMARY KEY (datum, thuis); ALTER TABLE wedstrijd ADD CONSTRAINT a1 PRIMARY KEY (datum, thuis); Merk op dat de constraint een naam moet hebben (hier a1).
33
Structuur van tabellen wijzigen U kunt een constraint verwijderen met ALTER TABLE wedstrijd DROP CONSTRAINT a1; ALTER TABLE wedstrijd DROP CONSTRAINT a1;
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.