A- Création de la base de données et des tables avec les contraintes d'intégrité
référentielle
-- 1. Création de la base de données CSIGC
CREATE DATABASE CSIGC;
-- 2. Création des tables avec déclaration des contraintes d'intégrité référentielle
CREATE TABLE FOURNISSEUR (
CF CHAR(3) PRIMARY KEY,
NOMF VARCHAR(50) NOT NULL,
ADRF VARCHAR(100),
TYPEF VARCHAR(20) CHECK (TYPEF IN ('STA', 'SPA', 'SPE'))
);
CREATE TABLE EMBALLAGE (
CE CHAR(3) PRIMARY KEY,
NOME VARCHAR(50) NOT NULL,
POIDE INTEGER,
QTE INTEGER DEFAULT 0,
COUT INTEGER,
CF CHAR(3),
FOREIGN KEY (CF) REFERENCES FOURNISSEUR (CF)
);
CREATE TABLE ARTICLE (
CA CHAR(3) PRIMARY KEY,
NOMA VARCHAR(50) NOT NULL,
POIDA INTEGER,
PRIXA INTEGER,
DELAI INTEGER CHECK (DELAI BETWEEN 10 AND 90),
CF CHAR(3),
FOREIGN KEY (CF) REFERENCES FOURNISSEUR (CF)
);
CREATE TABLE CONDITIONNEMENT (
CA CHAR(3),
CE CHAR(3),
NBART INTEGER NOT NULL,
PRIMARY KEY (CA, CE),
FOREIGN KEY (CA) REFERENCES ARTICLE (CA),
FOREIGN KEY (CE) REFERENCES EMBALLAGE (CE)
);
B- Modification des données :
1. Insertion des données :
-- Insertion des données dans la table FOURNISSEUR
INSERT INTO FOURNISSEUR (CF, NOMF, ADRF, TYPEF)
VALUES
('F01', 'podium', '45 rue des blanches', 'STA'),
('F02', 'sogedis', '12 avenue de la Loire', 'STA'),
('F03', 'parna', '89 allées des avions', 'STA'),
('F04', 'philmo', '78 rue des lilas', 'SPA'),
('F05', 'vulcain', '4 rue Paul Bruhnes', 'SPE');
-- Insertion des données dans la table EMBALLAGE
INSERT INTO EMBALLAGE (CE, NOME, POIDE, QTE, COUT, CF)
VALUES
('E01', 'carton', 400, 15, 4, 'F03'),
('E02', 'boite plastique', 200, 20, 5, 'F03'),
('E03', 'caisse', 600, 7, 10, 'F01'),
('E04', 'papier', 20, 78, 7, 'F03'),
('E05', 'aluminium', 47, 6, 9, 'F02'),
('E06', 'sac plastique', 300, 65, 3, 'F05'),
('E07', 'papier recyclé', 30, 31, 5, 'F04'),
('E08', 'film issolant', 70, 15, 10, 'F02');
-- Insertion des données dans la table ARTICLE
INSERT INTO ARTICLE (CA, NOMA, POIDA, PRIXA, DELAI, CF)
VALUES
('A01', 'Television 16/9', 3000, 70, 10, 'F01'),
('A02', 'Ecran plat', 1000, 345, 15, 'F03'),
('A03', 'Lecteur DVD', 900, 75, 25, 'F04'),
('A04', 'Sac en cuire', 250, 254, 12, 'F05'),
('B01', 'bêche', 532, 10, 10, 'F02'),
('B02', 'Tuyau d’arrosage', 1100, 40, 18, 'F01'),
('B03', 'arrosoir', 700, 12, 20, 'F02'),
('E01', 'bottes en cuire', 160, 170, 23, 'F04'),
('E02', 'Machine à pain', 1200, 75, 10, 'F05'),
('E03', 'Rideau', 87, NULL, NULL, 'F02');
-- Insertion des données dans la table CONDITIONNEMENT
INSERT INTO CONDITIONNEMENT (CA, CE, NBART)
VALUES
('A01', 'E01', 4),
('A01', 'E03', 5),
('A03', 'E01', 2),
('A04', 'E02', 8),
('A04', 'E03', 4),
('B01', 'E03', 6),
('B02', 'E04', 1),
('B03', 'E08', 3),
('E01', 'E01', 8),
('E02', 'E07', 6);
2. Mise à jour du prix de l'article avec le code A04 :
UPDATE ARTICLE
SET PRIXA = 3500
WHERE CA = 'A04';
3. Ajout des informations manquantes pour l'article avec le code E03 :
UPDATE ARTICLE
SET POIDA = 650, DELAI = 12
WHERE CA = 'E03';
4. Suppression du fournisseur avec le code F05 :
DELETE FROM FOURNISSEUR
WHERE CF = 'F05';