SQL-Structured Query Language-Et SGBD Mysql: Youssef RACHIDI
SQL-Structured Query Language-Et SGBD Mysql: Youssef RACHIDI
SQL-Structured Query Language-Et SGBD Mysql: Youssef RACHIDI
et SGBD MYSQL
Youssef RACHIDI
Filière : Informatique. EST Guelmim
Année: 2022-2023
Un langage SQL est utilisé par les principaux SGBDR Comme: DB2,
Oracle, Informix, MySQL,... Chacun de ces SGBDR a cependant sa
propre variante du langage.
2
1
SGBD
MySQL Base de données
3
Clients 4
SERVEUR
TEMPORARY: pour créer une table qui n’existera que durant la session courante (la
table sera supprimée à la déconnexion).
1.Les valeurs par défaut doivent être des constantes, et il n’est pas possible
d’utiliser de fonction pour les définir.
Exemples:
CONSTRAINT nomContrainte
+ UNIQUE (colonne1 [,colonne2]...)
+PRIMARY KEY (colonne1 [,colonne2]...)
+ FOREIGN KEY (colonne1 [,colonne2]...)
REFERENCES nomTablePere [(colonne1
[,colonne2]...)]
+ CHECK (condition)
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles :Sql et le SGBD
MYSQL
LDD: Langage Définition des
données(8)
PRIMARY KEY : pour définir l’attribut comme clé primaire de la table.
ou
CONSTRAINT pk_ID PRIMARY KEY (ID);
crée une clé primaire composée des deux attributs, nom et prenom.
ou
CONSTRAINT un_nom UNIQUE(nom,prenom);
Ou
Exemple:
delimiter |
CREATE TABLE Test (t CHAR(8))|
Exemple:
Avec commentaire
Sans commentaire
CREATE TABLE
-- nom de la table
CREATE TABLE Test(colonne
Test( #début de la description
DECIMAL(38,8));
COLONNE DECIMAL(38,8)
CREATE TABLE
)
Test
-- fin, ne pas oublier le point-virgule.
( colon
;
ne
CREATE TABLE Test (
DECIMA
/* une plus grande description
L(38,8)
des colonnes */
);
COLONNE /* type : */
Y.RACHIDI DECIMAL(38,8));
Génie Informatique 2 : Bases de données relationnelles :Sql et le SGBD MYSQL
LDD: Langage Définition des
données(14)
Exemple1: Id_Entre nrue rue ville nomEntre
SMALLINT: Un petit entier prenant des valeurs de –32768 (– 215) à 32767 (215
– 1). S’il est suivi de l’option UNSIGNED, les valeurs sont positives et
varient de 0 à 65535 (216 – 1). Chaque valeur occupe 2 octets.
BOOL, BOOLEAN
Exemple:
Les « fils » puis les « pères »
DROP TABLE Entreprise;
DROP TABLE fonctionnaire, Entreprise;
DROP TABLE fonctionnaire;
ALTER
d’ajouter,
de renommer,
de modifier,
de supprimer des colonnes d’une table.
d’ajouter et de supprimer des contraintes.
Exemple:
ALTER TABLE fonctionnaire ADD (salaire DECIMAL(7,2));
ALTER TABLE fonctionnaire ADD (domaine VARCHAR(4) DEFAULT ‘dev',
pays VARCHAR(30) DEFAULT ‘Maroc' NOT NULL);
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles :Sql et le SGBD MYSQL
LDD: Langage Définition des
données(29)
2.Renommer des colonnes
Syntaxe:
ALTER TABLE [nomBase].nomTable CHANGE [COLUMN] ;
ancienNom nouveauNom typeMySQL [NOT NULL | NULL]
[DEFAULT valeur] [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY]
KEY] [COMMENT 'chaine’] [REFERENCES ...]
[FIRST|AFTER nomColonne ];
Exemple:
Exemple:
Exemple:
ALTER TABLE fonctionnaire ALTER COLUMN adresse SET DEFAULT ‘Agadir';
ALTER TABLE fonctionnaire ALTER COLUMN id_entre DROP DEFAULT;
Syntaxe:
Exemple:
1.1 Unicité
Exemple:
ALTER TABLE entreprise ADD CONSTRAINT un_nomE UNIQUE (Nom_Entreprise);
Exemple:
ALTER TABLE Fonctionnaire ADD INDEX (id_entre);
ALTER TABLE Fonctionnaire ADD CONSTRAINT fk_ Fonctionnaire
FOREIGN KEY(id_entre) REFERENCES Entreprise(id_entre);
3. Clé primaire
ALTER TABLE fonctionnaire ADD CONSTRAINT
pk_fct PRIMARY KEY (nom, id_fct);
1. Suppression de contraintes
Exemple:
ALTER TABLE client MODIFY nom CHAR(10) NULL;
ALTER TABLE client MODIFY prenom CHAR(10) NULL;
3. Clé primaire
Exemple:
• ALTER TABLE ligne DROP PRIMARY KEY;
• ALTER TABLE ligne DROP PRIMARY KEY CASCADE;
Si la colonne clé primaire à supprimer contient des clés étrangères, il faut d’abord
retirer les contraintes de clé étrangère. Si la clé primaire à supprimer est référencée par
des clés étrangères d’autres tables, il faut d’abord ôter les contraintes de clé étrangère
de ces autres tables.
R1
R2 Une R
… Requête
Rn
Exemples
R: XY Z S: XY Z R ∪S : XY Z
e b k a b c e b k
a b c d b c a b c
d f k d f k
d b c
R∩S: XY Z R- S: XY Z S- R: XY Z
a b c e b k d b c
d f k
1.Projection
Soit R une relation dont le schéma est R (A1,…, An) , et si B={B1,…,
Bk } une partie de {A1,…, An}, alors la projection de R sur B est la
relation S dont le schéma est S ( B1,…, Bk), obtenue à partir de R
en ne retenant que les attributs de projections B1,…, Bk
Notations :
Π (R , B1,…, Bk ) ou
Π B1,…, Bk (R ) ou
Project B1,…, Bk (R ) ou Project (R , B1,…, Bk )
la projection de R sur B
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles :Sql et le SGBD MYSQL
Opérations sur une relation(2)
EXEMPLE DE PROJECTION
R: X Y Z Π (R , X): X Π (R , Y): Y
e b k e b
a b c a
d f k d f
Π (R , Z, Y): Z Y Π (R , Z, X,Y): Z XY
k b k e b
c b c a b
k f k d f
2. Sélection
Soit R une relation dont le schéma est R (A1,…, An), et C une
condition portant sur les attributs de la relation R ; alors la
restriction (ou la sélection) de R selon la condition C est la
relation formée des tuples de R qui satisfont la condition C.
Notations :
σ C (R ) ou σ (R , C ) ou
Select C (R ) ou Select (R ,
C)
la sélection de R selon la condition C
R: X Y Z
σ(R , Z=k): XY Z
e b k e b k
a b c d f k
d f k
σ(R , X≠ a et Y=b): X Y Z
e b k
R: X Y S: A B C RxS : X Y A B C
a b a d e a b a d e
c d b c f a b b c f
c d a d e
c d b c f
4.Jointure
Si R (A1,…, An), et S (B1,…, Bm) sont deux relations, et si θ est
une condition portant sur des attributs de R et de S alors
la jointure (θ-jointure) de R et S est la relation
ayant pour schéma T(A1,…, An, B1,…, Bm) .
Notations
R
ou (R , S ,
S θ)
θJoinθ(R ,S) ou Join(R ,S ,
θ)
la jointure (θ-jointure) de R et S
Join(R,S, X=A)
R: X Y S: A B C : X Y A B C
a b a d e a b a d e
c d b c f
5.équijointure
Lorsque la condition de jointure est une égalité entre un attribut
de R et un attribut de S on parle d'équijointure
1.Fonctions de calcul
•Il est possible d'effectuer des calculs sur les attributs dans les
tables et tables générées par des opérations relationnelles
projection, selection et jointure à l'aide d'expression d'attributs.
Exemple d'agrégats
X Y Z X Sum(y) X Z Sum(y)
x1 2 z1 x1 5 x1 z1 2
x1 3 z2 x2 10 x1 z2 3
x2 1 z1 x3 4 x2 z1 4
x2 3 z1 x2 z2 6
R3=AGREGAT(R; AVG{y}) x3 z2 4
x2 6 z2
x3 4 z2
R AVG(y)
19/6
Arbre algébrique
En utilisant des expressions d'opérations relationnelle(projection, sélection….),
il est possible d'élaborer les réponses à la plus part des questions que l'on pose
à une base de données relationnelle.
Jointure
θ θ-jointure
naturelle
Op Op peut être : x , - , ∪ , ∩
Fonctions
Agrégat Attributs
Attributs Tri
R1=join(Commande,Produit, Refprd=Ref)
R2=Project(R1, NumC, Qté, prix) R
R3=Select(R2, prix*Qté>1000)
R=join(Commande , R3 )
Commande
prix*Qté>1000
C’est quoi la
liste des
commandes NumC, Qté, prix
dépassant 1000
Refprd Ref
Dh? =
Commande Produit
65
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles :Sql et le SGBD MYSQL
Fin