I : Introduction :
II : Création de la Base de Données
:Lancer Easy Php
Ouvrir MySql (Administration/PhpMyAdmin) Onglet SQL Exécuter une réquête.
Pour créer une base de données : CREATE DATABASE NOM_BASE Pour supprimer une base de données : DROP DATABASE NOM_BASE
Chapitre IV: Langage SQL
III : Création d’une Table:
Les Types de données :
Entier : INT(N) : un entier de n chiffres max (unsigned : Entier non signé =positif) Réel : Decimal (N,M) un réel de N chiffres max dont M sont après la virgule Float, Double, Real
Caractère ; char
Chaîne de caractères : varchar (N) avec N est le nombre max de caractères Date : Date
Heure : Time
Date et heure : Datetime
Les contraintes :
Application N°1 :
1) Créer la BD Gestion_Formation
2) Créer les tables de la base ainsi que les relations entre elles.
---Table Participant--- CREATE TABLE PARTICIPANT (
CODE_P VARCHAR (4) PRIMARY KEY, NOM_P VARCHAR(20) NOT NULL, PRENOM_P VARCHAR(20) NOT NULL, DATE_NAISS DATE NOT NULL,
ADRESSE VARCHAR (50) NOT NULL, TEL_P INT(8),
NIVEAU VARCHAR (20));
---Table Module--- CREATE TABLE MODULE(
CODE_MOD VARCHAR (4),
LIBELLE_MOD VARCHAR(20) NOT NULL, COEFFICIENT_MOD REAL,
PRIMARY KEY(CODE_MOD) )
---Table Inscription--- CREATE TABLE INSCRIPTION(
CODE_P VARCHAR (4) REFERENCES PARTICIPANT (CODE_P), CODE_MOD VARCHAR (4) REFERENCES MODULE (CODE_MOD), NOTE DECIMAL (4,2) DEFAULT 0 CHECK (NOTE >=0),
PRIMARY KEY(CODE_P,CODE_MOD)) ---Table Enseignant--- CREATE TABLE ENSEIGNANT(
CODE_ENS VARCHAR (4) ,
NOM_ENS VARCHAR(20) NOT NULL, PRENOM_ENS VARCHAR(20) NOT NULL, TEL_ENS INT(8) NOT NULL,
SPECIALITE VARCHAR (20) NOT NULL,
CODE_MOD VARCHAR (4) REFERENCES MODULE(CODE_MOD) ON DELETE CASCADE ,
PRIMARY KEY (CODE_ENS));
Application N°2 :
1) Créer la BD Gestion_Stage
2) Créer les tables de la base ainsi que les relations entre elles.
Schéma de la base de données Gestion_Stage : Etudiant (NumET, NomET, Institut)
Entreprise (NumEps, NomEps, AdresseEps)
Stage (NumStage, Sujet, Service, Date, Duree, #NumET, #NumEps) ---Table Etudiant---
CREATE TABLE ETUDIANT (
NUM_ET INT (5) UNSIGNED AUTO_INCREMENT PRIMARY KEY, NOM_ET VARCHAR (20) NOT NULL,
INSTITUT VARCHAR (40) NOT NULL)
---Table Entreprise--- CREATE TABLE ENTRPRISE(
NUM_EPS INT (5) UNSIGNED AUTO_INCREMENT PRIMARY KEY, NOM_EPS VARCHAR (20) NOT NULL,
ADRESSE_EPS VARCHAR (40) NOT NULL) ---Table Stage--- CREATE TABLE STAGE(
NUM_STG INT (5) UNSIGNED AUTO_INCREMENT, SUJET VARCHAR (20) NOT NULL,
SERVICE VARCHAR (30) NOT NULL, DATE DATE NOT NULL,
DUREE INT (3),
NUM_ET INT(5) REFERENCES ETUDIANT(NUM_ET) ON DELETE CASCADE, NUM_EPS INT (5) REFERENCES ENTREPRISE(NUM_EPS) ON DELETE CASCADE , PRIMARY KEY (NUM_STG))
Application N°3 :
On souhaite créer une base de données ″ Gestion des projets ″ pour une entreprise.
Le schéma relationnel d’une telle base est :
Employé (Num_Emp, Nom_Emp, Prenom_Emp, Adr_Emp, Tel_Emp, grade, #Num_serv) Service (Num_serv, Nom_serv, responsable, Tel_serv)
Projet (Num_pr, Nom_pr, date_deb, date_fin, #Num_serv).
Créer la base de données ″Gestion_Projet″ ainsi que les tables et les relation entre elles.
CREATE DATABASE GESTION_PROJET ---Table Service---
CREATE TABLE SERVICE (
NUM_SERV INT(5) UNSIGNED AUTO_INCREMENT PRIMARY KEY, NOM_SERV VARCHAR (20) NOT NULL,
RESPONSABLE VARCHAR (20) NOT NULL, TEL_SERV INT(4) NOT NULL UNIQUE );
---Table Employé--- CREATE TABLE EMPLOYE(
NUM_EMP INT(5) UNSIGNED AUTO_INCREMENT PRIMARY KEY, NOM_EMP VARCHAR (20) NOT NULL,
PRENOM_EMP VARCHAR (20) NOT NULL, ADR_EMP VARCHAR (50) NOT NULL, TEL_EMP INT(8),
GRADE CHAR NOT NULL,
NUM_SERV INT(5) REFERENCES SERVICE(NUM_SERV) ON DELETE CASCADE);
---Table Projet--- CREATE TABLE PROJET(
NUM_PR INT(5) UNSIGNED AUTO_INCREMENT PRIMARY KEY, NOM_PR VARCHAR (20) NOT NULL,
DATE_DEB DATE NOT NULL,
DATE_FIN DATE NOT NULL CHECK (DATE_FIN > DATE_DEB),
NUM_SERV INT(5) REFERENCES SERVICE(NUM_SERV) ON DELETE CASCADE);
Application N°4 :
On souhaite créer une base de données ″ Gestion d’une bibliothèque″. Le schéma relationnel d’une telle base est :
Abonné (Num_Ab, Nom_Ab, Prenom_Ab, adr_Ab, Tel_Ab) Auteur (Num_Aut, Nom_Aut, Adr_Aut).
Livre (Num_Livre, Titre, Date_Edition, Nb_Exemplaire, #Num_Aut) Emprunt (Num_Ab, Num_Livre, Date_Emprunt, Date_Retour)
Créer la base de données ″Gestion_Bibliotheque″ ainsi que les tables et les relation entre elles.
CREATE DATABASE GESTION_BIBLIO ---Table Abonné---
CREATE TABLE ABONNE(
NUM_AB INT ( 4 ) UNSIGNED PRIMARY KEY , NOM_AB VARCHAR( 20 ) NOT NULL ,
PRENOM_AB VARCHAR( 20 ) NOT NULL , ADR_AB VARCHAR( 50 ) NOT NULL , TEL_AB INT( 8 ) );
---Table Auteur---
CREATE TABLE AUTEUR(
NUM_AUT INT( 4 ) UNSIGNED PRIMARY KEY , NOM_AUT VARCHAR( 20 ) NOT NULL ,
ADR_AUT VARCHAR( 50 ) NOT NULL) ---Table Livre---
CREATE TABLE LIVRE (
NUM_LIVRE INT (4) UNSIGNED PRIMARY KEY, TITRE VARCHAR (30) NOT NULL,
DATE_EDITION DATE NOT NULL,
NB_EXEMPLAIRE INT (4) NOT NULL DEFAULT 0 CHECK (NB_EXEMPLAIRE >= 0), NUM_AUT INT (5) NOT NULL REFERENCES AUTEUR (NUM_AUT) ON DELETE CASCADE)
---Table Emprunt--- CREATE TABLE EMPRUNT (
NUM_AB INT (4) UNSIGNED REFERENCES ABONNE (NUM_AB) ON DELETE CASCADE, NUM_LIVRE INT (4) UNSIGNED REFERENCES LIVRE (NUM_LIVRE) ON DELETE
CASCADE,
DATE_EMPRUNT DATE NOT NULL,
DATE_RETOUR DATE NOT NULL CHECK (DATE_RETOUR >= DATE_EMPRUNT), PRIMARY KEY (NUM_AB,NUM_LIVRE))
IV : Modification de la structure d’une Table:
Toutes les modifications seront faites sur la base de données
″ Gestion_Formation ″ 1- L’Ajout d’une colonne :
Exemple : Ajouter le champ Email pour la table PARTICIPANT
ALTER TABLE PARTICIPANT ADD COLUMN (EMAIL VARCHAR (50) ) 2- Modification d’une colonne
Elargir la taille du champ EMAIL et le rendre not null :
ALTER TABLE PARTICIPANT MODIFY EMAIL VARCHAR (80) NOT NULL
3- Suppression d’une colonne
ALTER TABLE PARTICIPANT DROP COLUMN EMAIL 4- L’Ajout de contraintes d’intégrités :
Supposons que la table PARTICIPANT a été créée sans clé primaire
ALTER TABLE PARTICIPANT ADD PRIMARY KEY (CODE_P) 5- Suppression de contraintes d’intégrités :
ALTER TABLE PARTICIPANT DROP PRIMARY KEY V : Suppression d’une Table:
DROP TABLE NOM_TABLE Exemple :
DROP TABLE PARTICIPANT
S’il ya une dépendance avec une autre table, il est recommandé de les supprimer avant de supprimer la table. C’est le cas par exemple s’il ya des clés étrangères.
LES REQUETES SQL
A/ Insertion des données : (BD : Gestion_Formation)
Pour remplir toutes les colonnes (l’ordre des colonnes est très important) :
INSERT INTO NOM_TABLE VALUES (‘valeur 1’, ‘valeur 2’, …,‘valeur n’)
Pour remplir quelques colonnes (dans ce cas l’ordre des colonnes n’est pas important) :
INSERT INTO NOM_TABLE (Colonne1, colonne2,colonnes 3) VALUES (‘valeur 1’, ‘valeur 2’,‘valeur 3’)
Les champs de type VARCHAR doivent être entre guillemets (‘’).
Insérer les champs suivants :
TABLE PARTICIPANT
INSERT INTO PARTICIPANT VALUES (‘P001’, ‘BEN ALI’, ‘ALI’, ‘1990-01-01’, ‘TUNIS’, 98111111, ‘BTS’)
INSERT INTO PARTICIPANT VALUES ('P002', 'BEN AHMED', 'MOUHAMED', '1998-02-28', 'SFAX', 22123456, 'BTP')
INSERT INTO PARTICIPANT VALUES ('P003', 'LOUMI', 'SARRA', '1991-03-15', 'BIZERTE', 50456789, 'BTP')
INSERT INTO PARTICIPANT (CODE_P, NOM_P, PRENOM_P,DATE_NAISS,ADRESSE) VALUES ('P004', 'MANSOURI', 'HAJER', '1992-12-27', 'NABEUL')
INSERT INTO PARTICIPANT VALUES (‘P005’, ‘TOUNSI’, ‘LOBNA’, ‘1990-11-13’, ‘SFAX’, 21334455, ‘BTS’)
INSERT INTO PARTICIPANT VALUES (‘P006’, ‘BEN SALAH’, ‘NADER’, ‘1992-09-25’,
‘TUNIS’, 52 556 677, ‘BTP’)
TABLE MODULE
INSERT INTO MODULE VALUES ('M001','ALGO',4) INSERT INTO MODULE VALUES ('M002','BD',3)
INSERT INTO MODULE VALUES ('M003',INTERNET,2) INSERT INTO MODULE VALUES ('M004','RESEAU',2) INSERT INTO MODULE VALUES ('M005',’TIC’,1) TABLE ENSEIGNANT
INSERT INTO ENSEIGNANT VALUES ‘E001’, HAMDI’, SAMI’, 8989898, SECURITE’,
‘M004’)
INSERT INTO ENSEIGNANT VALUES ('E002','KHEMILI','MEHER',20202020,'DEV','M001') INSERT INTO ENSEIGNANT VALUES ('E003', 'MEHOUACHI', 'RIADH',50505050, ’SGBD', 'M002')
INSERT INTO ENSEIGNANT VALUES ('E004', ’NAFATI', ’HENDA’ ,96969696, 'MULTIMEDIA', 'M003')
INSERT INTO ENSEIGNANT VALUES ('E005','RIAHI','SAMIRA',22222222,'G_L','M001') INSERT INTO ENSEIGNANT VALUES ('E006','SEFI','SOFIENE',55555555,'SYST','M002') TABLE INSCRIPTION
INSERT INTO INSCRIPTION VALUES (‘P001’,’M001’,12) INSERT INTO INSCRIPTION VALUES (‘P001’,’M002’,13) INSERT INTO INSCRIPTION VALUES (‘P001’,’M003’,15) INSERT INTO INSCRIPTION VALUES (‘P001’,’M004’,7.5) INSERT INTO INSCRIPTION VALUES (‘P001’,’M005’,11) INSERT INTO INSCRIPTION VALUES (‘P002’,’M001’,10) INSERT INTO INSCRIPTION VALUES (‘P002’,’M002’,9) INSERT INTO INSCRIPTION VALUES (‘P002’,’M003’,6)
INSERT INTO INSCRIPTION VALUES (‘P002’,’M004’,12) INSERT INTO INSCRIPTION VALUES (‘P002’,’M005’,6) INSERT INTO INSCRIPTION VALUES (‘P003’,’M001’,14) INSERT INTO INSCRIPTION VALUES (‘P003’,’M002’,15) INSERT INTO INSCRIPTION VALUES (‘P003’,’M003’,12) INSERT INTO INSCRIPTION VALUES (‘P003’,’M004’,11) INSERT INTO INSCRIPTION VALUES (‘P003’,’M005’,9) INSERT INTO INSCRIPTION VALUES (‘P004’,’M001’,8) INSERT INTO INSCRIPTION VALUES (‘P004’,’M002’,7) INSERT INTO INSCRIPTION VALUES (‘P004’,’M003’,9) INSERT INTO INSCRIPTION VALUES (‘P004’,’M004’,8) INSERT INTO INSCRIPTION VALUES (‘P004’,’M005’,6) INSERT INTO INSCRIPTION VALUES (‘P005’,’M001’,12) INSERT INTO INSCRIPTION VALUES (‘P005’,’M002’,12) INSERT INTO INSCRIPTION VALUES (‘P005’,’M003’,15) INSERT INTO INSCRIPTION VALUES (‘P005’,’M004’,14) INSERT INTO INSCRIPTION VALUES (‘P005’,’M005’,11) INSERT INTO INSCRIPTION VALUES (‘P006’,’M001’,11) INSERT INTO INSCRIPTION VALUES (‘P006’,’M002’,7) INSERT INTO INSCRIPTION VALUES (‘P006’,’M003’,13) INSERT INTO INSCRIPTION VALUES (‘P006’,’M004’,12) INSERT INTO INSCRIPTION VALUES (‘P006’,’M005’,15)