Vous êtes sur la page 1sur 45

SQL-Structured Query language-

et SGBD MYSQL(2)

Youssef RACHIDI
Filière :GI. EST Guelmim
Année: 2021-2022

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


Correction du T.A.F.1

Travail à faire :
Q1.quels sont les noms et les adresses des fournisseurs à qui l’on a acheté des produits « DELL »?
Q2.quel est la liste des articles vendus à l’unité(cond==1) (la liste comporte la référence, la
désignation et le prix)?
Q3.quels sont les articles vendus par quantité seulement et dont le prix est compris entre 30 et
100dh?
Q4.quelles sont les désignations des produits commandés?
Q5.quels sont les articles vendus par des fournisseurs sis à casablanca (désignation, cond, prix)?
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL
Correction du T.A.F.2

1les noms et les adresses des


fournisseurs à qui l’on a acheté R
des produits « DELL »?

R1=Project(produit, Ref, Desig, Four) NomFR, Adr


R2=Select(R1, Desig=‘DELL’)
Four
R3=join(Fournisseur,R2, Numf=Four) Numf
=
R=Project(R3, NomFR, Adr)

Desig=‘DELL
Fournisseur ’

Ref, Desig, Four

Produit
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL 39
Correction du T.A.F.2
2 la liste des articles vendus à 1 R1=Project(produit, Ref, Desig, prix,cond)
R2=Select(R1, cond=1)
l’unité(cond==1) (la liste comporte la
R=Project(R2, Ref, Desig, prix)
référence, la désignation et le prix)?
2
R
R1=Select(produit, cond=1)
R=Project(R1, Ref, Desig, prix)
Ref, Desig, prix

R
Cond=1
Ref, Desig, prix

Cond=1 Ref, Desig, prix,cond

Produit Produit
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL 4
Correction du T.A.F.2
3 les articles vendus par quantité 1
R1=Select(produit, cond>1)
seulement et dont le prix est compris
R2=Select(R1, 30<prix<100)
entre 30 et 100dh
R=Project(R2, Ref, Desig, prix)
2

R1=Select(produit, (cond>1)&(30<prix<100)) R
R=Project(R1, Ref, Desig, prix,)

Ref, Desig, prix

R
30<prix<100
Ref, Desig, prix

(Cond>1&(30<prix<100) Cond>1

Produit Produit
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL 5
Correction du T.A.F.2

4 les désignations des


produits commandés R

R1=Project(produit, Ref, Desig) desig


R2=Project(commande, NumC, Refprd)
Refprd
R3=join(R1,R2, Ref=Refprd) Ref
=
R=Project(R3, desig)

Ref, desig NumC,Refprd

Produit Commande

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL 6


Correction du T.A.F.2

5les articles vendus par des


fournisseurs sis à R
casablanca (désignation,
cond, prix):
R1=Project(Fournisseur, NumFr, Adr) desig,cond,prix
R2=Select(R1, Adr=‘casablanca’)
Four Numfr
R3=join(Fournisseur,R2, Numfr=Four)
=
R=Project(R3, desig, cond,prix)

Adr=‘casablanca’
Produit

NumFr, Adr

Fournisseur
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL 7
Langage de manipulation des
Données(LMD)

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


LMD: Langage de manipulation des
données(1)
Cette partie décrit l’aspect de langage LMD de SGBD MySQL, SQL propose
trois instructions pour manipuler les données:

 L’insertion d’enregistrements : INSERT

 La modification de données :UPDATE

 La suppression d’enregistrements :DELETE

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL 9


Insertions d’enregistrements : INSERT(1)
Il existe plusieurs possibilités d’insertion :

 L’insertion monoligne qui ajoute un enregistrement par instruction

 L’insertion multiligne qui insère plusieurs enregistrements par une


requête

 L’insertion à partir d’un fichier texte

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL 1


0
Insertions d’enregistrements : INSERT(2)
1.Insertion Multiligne
Syntaxe:
INSERT [LOW_PRIORITY | DELAYED ] [IGNORE] [INTO]
[nomBase.] {nomTable} [(nomColonne1, nomColonne2...)]
VALUES ({expression| DEFAULT},...),(...),…

DELAYED: indique que l’insertion est différée partiellement (il obtient


un accord du serveur pour mise en attente pour insérée
la ligne, Le client envoie l'insert puis l'oublie, sans attendre
le résultat).
LOW_PRIORITY: indique que l’insertion est différée à la libération complète de
la table .(Retarder)

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL 1


1
Insertions d’enregistrements : INSERT(3)

IGNORE: indique que les éventuelles erreurs déclenchées suite à l’insertion


seront considérées en tant que warnings.

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL 1


2
Insertions d’enregistrements : INSERT(10)
Exemple7
(changement de la valeur d’une clé primaire de type entier et auto_increment)
Select * from T;
INSERT INTO T
(nomT,codeT,y ) i nomT codeT y
VALUES ('AF1','F-WTSS',85); 1 AF1 WTSS 85
INSERT INTO T 2 AF2 F-WTSS 90
VALUES (NULL,'AF2','F-WTSS',90); 3 AF3 F-GLFS 100

INSERT INTO T
VALUES (0,'AF3','F-GLFS',100);

Comment contrôler la valeur


de i ?
Solution: ALTER TABLE T
Y.RACHIDIAUTO_INCREMENT = Informatique
Génie 100; 2 : Bases de données relationnelles et le SGBD MYSQL
Insertions d’enregistrements : INSERT(11)
Exemple7
Pour une nouvelle insertion, i commencera à la valeur 100:
Select * from T;

2 autres insertions: i nomT codeT y


INSERT INTO T 1 AF WTSS 85
(nomT ,codeT ,y )
VALUES (‘G','SS',5); 2 AF F-WTSS 90
3 AF F-GLFS 75
INSERT INTO T 100 G SS 5
VALUES ('SI','F',15);
101 SI F 15

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


Insertions à partir d’un fichier(1)
Les données (texte) de la table sont formatées dans un format bien déterminé
Syntaxe:
LOAD DATA INFILE 'nomEtChemin Fichier.txt’ [REPLACE | IGNORE]
INTO TABLE nomTable
[FIELDS
[TERMINATED BY 'string']
[ENCLOSED BY 'char'] ]
[LINES
[STARTING BY 'string']
[TERMINATED BY 'string'] ]

[IGNORE number LINES];


Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL
Insertions à partir d’un fichier(2)
REPLACE : option à utiliser pour remplacer systématiquement les anciens
enregistrements par les nouveaux
IGNORE : fait en sorte de ne pas insérer des enregistrements de clé primaire ou
d’index unique déjà présents dans la table.
FIELDS TERMINATED BY décrit le caractère qui sépare deux valeurs de colonnes.
FIELDS ENCLOSED BY permet de contrôler le caractère qui encadrer chaque valeur
de colonne.
LINES TERMINATED BY permet de spécifier le séparateur entre les lignes.
LINES STARTING BY décrit le caractère qui précède chaque ligne
IGNORE number LINES permet de ne pas importer les [nb] premières
lignes du fichier.

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


Insertions à partir d’un fichier(3)

Exemple1:
LOAD DATA INFILE ‘donnees_fct.txt' REPLACE INTO
TABLE fonctionnaire FIELDS TERMINATED BY ';'
ENCLOSED BY ‘’ ‘’
LINES STARTING BY '-'
TERMINATED BY '$ \n';

Importation de la totalité des données du fichier


donnees_fct.txt dans la table fonctionnaire avec
remplacement des anciens enregistrements par les nouveaux.
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL
Remplacement d’un enregistrement: REPLACE(1)

L’instruction REPLACE consiste à remplacer un enregistrement dans sa totalité


(toutes ses colonnes).
Syntaxe
REPLACE [LOW_PRIORITY | DELAYED] [INTO] [nomBase.] nomTable
[(colonne1,...)]
VALUES ({expression1 | DEFAULT},...) [,(...),...]

VALUES contient les valeurs de remplacement.

Exemple
REPLACE INTO Entreprise VALUES ('AN1', 24, ‘Bensouda', ‘Fes‘,’NetN');

1 -Remplace l’enregistrement relatif à l’entreprise de code 'AN1‘

2 -Un enregistrement est remplacé selon la valeur de la clé primaire ou


celle d’un index unique
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL
Suppressions d’enregistrements : DELETE(1)

Les instructions DELETE permettent de supprimer un ou plusieurs


enregistrements d’une table.

Syntaxe
DELETE FROM [nomBase.] nomTable
[WHERE (condition)]
[ORDER BY listeColonnes]
[LIMIT nbreLimite]

WHERE : La condition
permettant la sélection
les lignes à supprimer
dans la table.
Si aucune condition
Y.RACHIDI
n’est précisée, toutes
Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL
les lignes seront
détruites. Si la
Suppressions d’enregistrements : DELETE(2)

Exemple1

DELETE FROM Fonctionnaire WHERE Id_entre = 'AF';

Supprime tous les fonctionnaires de l’entreprise de code 'AF‘.

DELETE FROM Entreprise LIMIT 2;

Supprime les deux premières entreprises (triées par ordre croissant de clé) qui ne
sont référencées par aucun fonctionnaire.

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


Langage d’Interrogation des
Données(LID)

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


LID: Langage d’interrogation des
données(1)
Cette partie décrit l’aspect de langage LID de SGBD MySQL, SQL propose
l’ instruction SELECT qui concerne l’extraction des données par requêtes.

les principales fonctionnalités de l’instruction SELECT sont:


 La projection
permet d’extraire une ou plusieurs colonnes.
 La sélection (Restriction)
permet de recherche une ou plusieurs lignes
 La jointure
permet d’extraire des données de différentes tables en les reliant deux à deux
(le plus souvent à partir de contraintes référentielles).

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


LID: Langage d’interrogation des
données(2)
1.Projection
Syntaxe:

SELECT [ { DISTINCT} | ALL ]


listeColonnes FROM nomTable1
[ClauseOrdonnancement]
[ LIMIT [rangDépart,] nbLignes] ;
DISTINCT :permet de ne pas inclure les doublons.
ALL :prend en compte les doublons (option par défaut).
ClauseOrdonnancement : tri sur une ou plusieurs colonnes ou expressions.
 LIMIT pour limiter le nombre de lignes après résultat.

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


LID: Langage d’interrogation des
données(3)
1. Projection
Exemple1:
SELECT * FROM Fonctionnaire;
L’extraction de toutes les colonnes de la table fonctionnaire

SELECT id_fct, nom FROM Fonctionnaire;


La projection de la table fonctionnaire sur id_fct et nom
(extraction de deux colonnes à partir de la table fonctionnaire)

SELECT id_fct as ‘code_fonct’ FROM Fonctionnaire;


Extraction et renommée de la colonne id_fct par code_fonct

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


LID: Langage d’interrogation des
données(4)
1.Projection
Exemple2:
SELECT DISTINCT( nom) FROM Fonctionnaire;
Extraction des valeurs de la colonne nom avec élimination des doublons
soit la table T:

CREATE TABLE T (
i SMALLINT AUTO_INCREMENT, nomT CHAR(4), codeT CHAR(6),
y SMALLINT(3),
CONSTRAINT pk_T PRIMARY KEY (i)
);

SELECT y, y*2*3 as ‘produitY’ FROM T;


Calcul de l’expression (y*2*3) avec attribution de l’alias ‘produitY’ pour le résultat
calculé

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


LID: Langage d’interrogation des
données(5)
1.Projection
La clause ordonnancement
Syntaxe
ORDER BY Colonne [ASC | DESC]
ASC ou DESC : tri par ordre croissant ou ordre décroissant et (par défaut ASC).

Exemple 1:

SELECT id_fct, nom FROM Fonctionnaire ORDER BY nom; classement


des noms par ordre croissant

SELECT id_fct, nom FROM Fonctionnaire ORDER BY nom DESC; tri des
noms par ordre décroissant

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


LID: Langage d’interrogation des
données(6)
1.Projection
Limitation du nombre de lignes
Syntaxe
LIMIT [rangDépart,] nbLignes
rangDépart : précise le rang de la première ligne sélectionnée ( le rang de la 1ere ligne =0).
nbLignes: le nombre maximum de lignes à extraire.
Exemple 1:
SELECT * FROM Fonctionnaire LIMIT 1,2;
Deuxième et troisième (ordre de clé) fonctionnaire. Limit 5,9 ??

SELECT * FROM Fonctionnaire LIMIT 3;


Les trois premiers fonctionnaires

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


LID: Langage d’interrogation des
données(7)
2.Sélection(Restriction)
Syntaxe
SELECT [ DISTINCT | ALL ] listeColonnes
FROM nomTable
WHERE condition ;
condition : composée de colonnes, d’expressions, de constantes liées deux à deux entre
des opérateurs :
 Arithmétiques (+, –, *, /, modulo (%))

 de comparaison (>, =, <, >=, <=, <>)

 logiques (NOT, AND ou OR)

 intégrés (BETWEEN, IN, LIKE, IS NULL)

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


LID: Langage d’interrogation des
données(8)
2.Sélection(Restriction)
Quelques opérateurs de comparaison intégrés
Opérateur Description
IS NULL Retourne TRUE si la valeur est NULL.

express BETWEEN min AND max Retourne TRUE si la valeur est comprise entre min
et max .
express LIKE 'motif' Retourne la valeur TRUE si l’expression est
conforme au motif défini. Pour définir les motifs,
vous utilisez deux caractères jokers :
(_): pour remplacer un caractère quelconque.
(%):pour remplacer un nombre variable de
caractères.

express IN(val1,val2,...) Retourne TRUE si la valeur est incluse dans


l’ensemble des valeurs listées.

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


LID: Langage d’interrogation des
données(9)
2. Sélection(Restriction)
Exemple 1
1. SELECT id_client, nom
FROM client WHERE age= 18 ; (la condition est une égalité)

2.SELECT id_client, nom AS ‘Clients encore jeunes’


FROM client WHERE age< 30 ; (une inégalité)

3. SELECT nom, prenom , ville


FROM client WHERE age< 30 and
ville=‘Agadir’ ;

4. SELECT id_fct, nom, id_entre (3) Et (4) conditions composées


FROM Fonctionnaire WHERE
(Id_entre=‘SING’ OR
Id_entre=‘AF’ and nbH<500);
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL
LID: Langage d’interrogation des
données(10)
2. Sélection(Restriction)
Exemple 2
1. SELECT nom, prenom FROM client
WHERE prenom IS NULL

2. SELECT nom FROM client


WHERE nom BETWEEN 'A' and 'E‘

3. SELECT nom,prenom
FROM client WHERE nom LIKE
'%M‘

4. SELECT nom FROM client


WHERE age IN
(21,22,23)
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL
LID: Langage d’interrogation des
données(10)

LIKE ‘%a’ : chaines de caractère qui se termine par un “a”.

LIKE ‘a%’ : chaines de caractère qui commence par un “a”.

LIKE ‘%a%’ :rechercher tous les enregistrement qui utilisent le

caractère “a”.

LIKE ‘pa%on’ : chaine commence par “pa” et qui se terminent par

“on”, comme “pardon”.

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


LID: Langage d’interrogation des
données(12)
3. Fonctions
1. Les Fonctions monolignes de caractères

fonction Description
LOWER(c) Tout en minuscules.
SELECT lower(nom) from client;
LENGTH(c) Longueur de la chaîne.
SELECT nom,length(nom) as ‘longueur’ from client;
UPPER Tout en majuscules.
SELECT upper(nom) from client;

Il existe d’autres fonctions


CONCAT(c1,c2); ……………

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


LID: Langage d’interrogation des
données(13)
3.Fonctions
3.2 Les Fonctions monolignes des numériques
fonction Description
ABS(X) Valeur absolue de X

FLOOR(X) Arrondi à l’entier inférieur à X

POWER(X,Y) Nombre X à la puissance Y (X et Y peuvent être


décimaux).

Il existe d’autres fonctions

COS(X);
EXP(X)……………
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL
LID: Langage d’interrogation des
données(13)
3.Fonctions
3.3 Les fonctions monolignes des dates
fonction Description
CURDATE(), CURRENT_DATE ou Date courante ('YYYY-MM-DD' ou YYYYMMDD).
CURRENT_DATE()
ADDTIME(date1,date2) Ajoute les deux dates avec date1 TIME ou
DATETIME, et date2 TIME.
DAYNAME(date) Nom du jour en anglais.

Il existe d’autres fonctions


DAY(date);
DAYOFYEAR(date);
HOUR(time);
LAST_DAY(date)
………………..
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL
LID: Langage d’interrogation des
données(14)
3.Fonctions multilignes
Fonction Description
AVG(colonne) Retourne la moyenne des valeurs de la colonne précisée.

COUNT(colonne) Retourne le nombre de lignes dont la valeur n’est pas


NULL dans la colonne précisée.
COUNT(DISTINCT colonne) Retourne le nombre de lignes ayant une valeur non NULL
et distincte (en éliminant les doublons).
MAX(colonne) Retourne la valeur maximale de la colonne précisée.

MIN(colonne) Retourne la valeur minimale de la colonne précisée.

SUM(colonne) Retourne la somme des valeurs de la colonne précisée.

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


LID: Langage d’interrogation des
données(15)
4.Regroupement
Syntaxe
SELECT listeColonnes, fonction1Groupe(…)[,fonction2Groupe(…)…]
FROM nomTable [WHERE condition]
GROUP BY {col1 | expr1 | position1} [,{col2... }]
[ HAVING condition ]

GROUP BY: liste les colonnes du groupement.

HAVING: permet de poser des conditions sur chaque groupement.

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


LID: Langage d’interrogation des
données(16)
4.Regroupement
Exemple 1:
Soit le schéma de la table fonctionnaire:

Fonctionnaire(id_fct, nom ,nbH, Id_entre* );

SELECT id_entre, AVG(nbH) as ‘moyen heurs’ FROM Fonctionnaire


Group by( id_entre);
Moyenne des heures de travail pour chaque entreprise.

SELECT id_entre, COUNT(id_fct) FROM Fonctionnaire


Group by( id_entre);
Nombre de fonctionnaire par entreprise.

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


LID: Langage d’interrogation des
données(17)
4.Regroupement
Exemple 2:
Soit le schéma de la table étudiant:

Etudiant(id_etud, nom ,note, date, Id_matiere* );

SELECT id_matiere, MAX(note), MAX(date) as ‘age_jeune’


From Etudaint
Group by(id_matiere)

la note la plus élevée, date de naissance de l’étudiant le plus jeune pour chaque
matière.

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


LID: Langage d’interrogation des
données(18)
5. Jointures
Syntaxe
SELECT col1,col2
FROM table1,table2
WHERE condition_de_jointure
La condition de jointure dans le cas des équijointures est de la forme :

table1.colonneX = table2.colonneY
dans laquelle colX et colY contiennent des données représentant la même
information, comme l’identifiant de client .

Les jointures naturelles ce sont des équijointures dont la


condition porte sur les colonnes communes entre les tables
concernées.
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL
LID: Langage d’interrogation des
données(19)
5. Jointures
Exemple 1:

Fonctionnaire ( id_fct, nom ,nbH, Id_entre* );

Entreprise ( id_entre, nrue ,rue, ville,nom_entreprise );

SELECT id_fct, nbH, nom_entreprise


FROM fonctionnaire, entreprise
WHERE fonctionnaire.id_entre = entreprise. id_entre
AND nom_enttreprise = ‘Bisoft’ AND nbH> 100;

Les fonctionnaires qui travaillent à la société BISOFT et


qui ont le nombre d’heures supérieur à 100;
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL
LID: Langage d’interrogation des
données(20)
5. Opérateurs ensemblistes
Intersection
Exemple:
B: Nom age
Soient les tables:
Hassan 26
A: Nom age SELECT nom FROM A
Hassan 26 kamal 23
Inas 22 Fahd 16 INTERSECT
Meryam 21 Meryam 21
(SELECT nom FROM B );
Objectif: Calculer les noms communs entre les deux tables?
Réponse :c’est l’intersection entre les colonnes A.nom et B.nom, donnée par:
Nom
SELECT nom from A
WHERE nom IN Hassan
(SELECT nom from B); Meryam
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL
LID: Langage d’interrogation des
données(21)
5. Opérateurs ensemblistes
Différence
Exemple: SELECT nom FROM  A
B: Nom age
Soient les tables:
Hassan 26 EXCEPT
A: Nom age
Hassan 26 kamal 23
Inas 22 Fahd 16 (SELECT nom FROM B) ;
Meryam 21 Meryam 21

Objectif: Calculer les noms de la table A qui ne figurent pas dans la table B?
Réponse :c’est la différence( A-B) entre les colonnes A.nom et B.nom, donnée par:

SELECT nom from A Nom


WHERE nom not IN
(SELECT nom from B); Inas

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL


LID: Langage d’interrogation des
données(22)
5. Opérateurs ensemblistes
union
Exemple:
B: Nom age
Soient les tables:
Hassan 26
A: Nom age
Hassan 26 kamal 23
Inas 22 Fahd 16
Meryam 21 Meryam 21
Nom
Objectif: Calculer les noms qui figurent dans les deux tables A et B? Hassan
Réponse :c’est l’union entre les colonnes A.nom et B.nom, donnée par: kamal
Fahd
SELECT nom from A
union Meryam
(SELECT nom from Inas
B);
Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL
fin

Y.RACHIDI Génie Informatique 2 : Bases de données relationnelles et le SGBD MYSQL

Vous aimerez peut-être aussi