Exemple d'attribut d'agrégation
Schéma relationnel
1
country(#countrycode:char(2), name:varchar, population:numeric)
2
city(#code:char(3), countrycode=>country, name:varchar, population:numeric):
Schéma de base de données
1
CREATE TABLE country (
2
countrycode CHAR(2) NOT NULL,
3
name VARCHAR NOT NULL,
4
population NUMERIC(3),
5
PRIMARY KEY (countrycode)
6
);
7
8
CREATE TABLE city (
9
citycode CHAR(3) NOT NULL,
10
countrycode CHAR(2) NOT NULL,
11
name VARCHAR NOT NULL,
12
population NUMERIC(2,1),
13
PRIMARY KEY (citycode),
14
FOREIGN KEY (countrycode) REFERENCES country(countrycode)
15
);
Données
1
INSERT INTO country VALUES ('ES', 'Spain', 46);
2
INSERT INTO country VALUES ('FR', 'France', 67);
3
INSERT INTO country VALUES ('DE', 'Germany', 82);
4
5
INSERT INTO city VALUES ('BAR', 'ES', 'Barcelona', 1.9);
6
INSERT INTO city VALUES ('MAD', 'ES', 'Madrid', 3.3);
7
INSERT INTO city VALUES ('ZAR', 'ES', 'Zaragoza', 0.7);
8
9
INSERT INTO city VALUES ('PAR', 'FR', 'Paris', 2.2);
10
INSERT INTO city VALUES ('LYO', 'FR', 'Paris', 0.5);
11
INSERT INTO city VALUES ('LLL', 'FR', 'Lille', 0.2);
12
INSERT INTO city VALUES ('AMN', 'FR', 'Amiens', 0.1);
Sélectionne les countrycode existants dans la table city
1
SELECT countrycode
2
FROM city;
1
countrycode
2
-------------
3
ES
4
ES
5
ES
6
FR
7
FR
8
FR
9
FR
Sélectionne les countrycode existants dans la table city avec agrégat
1
SELECT countrycode
2
FROM city
3
GROUP BY countrycode;
1
countrycode
2
-------------
3
FR
4
ES