0% ont trouvé ce document utile (0 vote)
22 vues6 pages

BD34

Le document présente le langage SQL, développé par IBM dans les années 70, comme un standard pour les SGBD relationnels, avec quatre groupes d'instructions. Il se concentre sur les instructions d'interrogation de données, détaillant la syntaxe de la requête SELECT et les différentes clauses comme WHERE, ORDER BY et les opérateurs de comparaison. Des exemples illustrent l'utilisation des requêtes pour extraire et manipuler des données dans une base, ainsi que des opérations de jointure et d'existence.

Transféré par

falconyanis7
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
22 vues6 pages

BD34

Le document présente le langage SQL, développé par IBM dans les années 70, comme un standard pour les SGBD relationnels, avec quatre groupes d'instructions. Il se concentre sur les instructions d'interrogation de données, détaillant la syntaxe de la requête SELECT et les différentes clauses comme WHERE, ORDER BY et les opérateurs de comparaison. Des exemples illustrent l'utilisation des requêtes pour extraire et manipuler des données dans une base, ainsi que des opérations de jointure et d'existence.

Transféré par

falconyanis7
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université des Sciences et de la Technologie Houari Boumedienne

Faculté d’Electronique et d’Informatique


Département d’Informatique, Licences ACAD & ISIL

2.3. Le langage SQL


Le langage SQL (Structured Query Language) a été développé dans les laboratoires d'IBM
pour le système relationnel expérimental SYSTEM-R, durant les années 70. Par la suite, il est
devenu un standard pour les SGBD relationnels. Il comporte quatre groupes d'instructions:

1. les instructions d'interrogation de données,


2. les instructions de définition de données pour la création de tables, d'introduction de
nouveaux attributs dans la les tables existantes et la création des index,
3. les instructions de manipulation des données par l'insertion, la suppression et la
modification des données,
4. les instructions de contrôles pour la mise en place et la suppression des autorisations
d'accès aux données de la base.

Nous nous intéressons pour l'instant au premier type d'instructions, i.e., l'interrogation des
données. Nous verrons les autres types d'instructions au niveau du chapitre quatre.

Une requête d'interrogation est représentée syntaxiquement comme un bloc de qualification :

Select <liste d'attributs>


From < nom-relation>
[Where <prédicat>]
[Group By <attribut>]
[Having <prédicat>]
[Order By <attribut>[Desc]];

La forme la plus simple du Select

Select <liste d'attributs>


From < nom-relation>;

Permet d'extraire de la table une sous-table obtenue par projection selon le (ou les) attribut(s)
précisé(s). Le Select a donc le sens de l'opérateur Project

L'option * (Astérix) à la place du nom des attributs permet l'édition de la table dans sa totalité.

Exemple:
1. Donner les numéros et les codes des fournisseurs d'Alger, s'écrit :

Select NF, CODE


From Fournisseur
Where Ville = 'Alger';

2. Donner toutes les informations sur les fournisseurs s'écrit :

Select *
From Fournisseur;

42
Université des Sciences et de la Technologie Houari Boumedienne
Faculté d’Electronique et d’Informatique
Département d’Informatique, Licences ACAD & ISIL

Lors de l'opération de projection, SQL n'élimine pas les doubles dans la réponse à une
interrogation. Si l'utilisateur désire le faire, il doit l'exprimer explicitement à l'aide du mot clé
Unique. L'élimination des n-uplets redondants est une opération très coûteuse, aussi SQL
laisse la liberté d'utilisation de ce mot clé aux utilisateurs.

Exemple :

3. Donner toutes les villes où résident des fournisseurs s'écrit :

Select Unique VILLE


From Fournisseur;

Le prédicat de la clause Where peut inclure les opérateurs de comparaison : =, , , , ,  et


les opérateurs booléens And, Or, Not.
D'autres opérateurs ont été introduits dans les dernières versions d'Oracles, nous citons :
• Between : exp1 Between expr2 And exp3 vrai si exp1 est comprise entre exp2 et exp3,
faux sinon.
• IN : exp1 IN (exp2, exp3, …) vrai si exp1 est égale à l’une des expressions de la liste
entre parenthèses.
• LIKE : exp LIKE <chaîne> où chaîne est une chaîne de caractère pouvant contenir un
caractère joker - qui remplace un caractère quelconque ou bien % qui remplace une
chaîne de longueur quelconque.

Exemples :

1. Donner le nom des fournisseurs dont le code est compris entre 15 et 30

SELECT NOM
FROM FOURNISSEU
WHERE CODE BETWEEN 120 AND 130 ;

2. Sélectionner les pièces qui son en fer ou en zinc :

SELECT NOM
FROM PIECE
WHERE MATERIAU IN (fer, zinc) ;

3. Donner le nom des fournisseurs dont le nom commence par la lettre M :

SELECT NOM
FROM FOURNISSEUR
WHERE NOM LIKE M% ;
4. Donner le nom des fournisseurs dont le nom comprend la lettre L en deuxième
position :

SELECT NOM
FROM FOURNISSEUR
WHERE NOM LIKE -L% ;

43
Université des Sciences et de la Technologie Houari Boumedienne
Faculté d’Electronique et d’Informatique
Département d’Informatique, Licences ACAD & ISIL

5. Donner le nom des fournisseurs d’Alger dont le code est supérieur à 120 :

SELECT NOM
FROM FOURNISSEUR
WHERE VILLE = Alger AND Code > 120 ;

Le tri du résultat d’un SELECT


Le résultat d’un select peut être trié dans l’ordre ascendant ou descendant en fonction d’une
ou plusieurs colonnes. Les critères du tri sont spécifiés par la clause ORDER BY dont la
syntaxe est :

ORDER BY <attribut1> [DESC][,<attribut2> [DESC],…]


Le tri se fait d’abord selon la première colonne spécifiée dans l’order by, puis les lignes ayant
la même valeur dans la première colonne sont triées selon la deuxième colonne de l’order by
etc.…Le tri peut être ascendant ou descendant pour chaque colonne. Par défaut, il est
ascendant.

Exemple :

SELECT VILLE NOM


FROM FOURNISSEUR
ORDER BY VILLE ;

Opération de jointure
La jointure en SQL s’exprime en imbriquant des blocs de sélection et en utilisant des
opérateurs d’appartenance (IN, NOT IN) (CONTAINS, NOT CONTAINS),…

Exemple :

Donner le nom des fournisseurs qui fournissent la pièce P2.

SELECT NOM
FROM FOURNISSEUR
WHERE NF IN SELECT NF
FROM FOURNITURE
WHERE NP = P2 ;

Parfois, nous avons besoin d’utiliser une référence inter-block dans une requête SQL pour
répondre à une question telle que :

Donner le nom des fournisseurs qui ne fournissent pas P1

SELECT NOM
FROM FOURNISSEUR

44
Université des Sciences et de la Technologie Houari Boumedienne
Faculté d’Electronique et d’Informatique
Département d’Informatique, Licences ACAD & ISIL

WHERE P1 NOT IN SELECT NP


FROM FOURNITURE
WHERE NF = FOURNISSEUR.NF ;

Attention une requête SQL du type suivant ne répond pas à la question :

SELECT NOM
FROM FOURNISSEUR
WHERE NF IN SELECT NF
FROM FOURNITURE
WHERE NP  P1 ;
Car un fournisseur produisant P1 peut être sélectionné.

Nous pouvons imbriquer des blocs SELECT en faisant intervenir la même relation.

Exemple :

Donner les numéros de fournisseurs fournissant au moins une pièce fournie par le fournisseur
F2, s’écrit

SELECT UNIQUE NF
FROM FOURNITURE
WHERE NP IN SELECT NP
FROM FOURNITURE
WHERE NF = F2 ;

Il est parfois nécessaire d’introduire les variables synonymes pour lever certaines ambiguïtés.

Exemple :

Donner les numéros des pièces fournies par plus d’un fournisseur.

SELECT UNIQUE NP
FROM FOURNITURE x
WHERE NP IN SELECT NP
FROM FOURNITURE
WHERE NF  x.NF ;

Une autre manière d’exprimer la jointure en SQL est illustrée par l’exemple suivant :

Exemple :
Pour chaque pièce, donner son numéro et le nom des villes des fournisseurs fournissant cette
pièce.

SELECT UNIQUE NP
FROM FOURNITURE, FOURNISSEUR
WHERE FOURNITURE ? NF = FOURNISSEUR.NF ;

45
Université des Sciences et de la Technologie Houari Boumedienne
Faculté d’Electronique et d’Informatique
Département d’Informatique, Licences ACAD & ISIL

Le prédicat EXISTS contient une sous-interrogation qui, associée à la condition du EXISTS,


peut être évaluée comme vraie ou fausse. Le prédicat EXISTS peut être utilisé à chaque fois
qu’une interrogation employant le prédicat IN peut être utilisée. Il est également possible de
formuler une interrogation à l’aide de NOT EXISTS.

Exemples :
• Donner le nom des fournisseurs fournissant la pièce P2.

SELECT NOMF
FROM FOURNISSEUR FR
WHERE EXISTS (SELECT *
FROM FOURNITURE
WHERE NF = FR.NF AND NP = P2 ;

• Donner le nom des fournisseurs ne fournissant pas P2.

SELECT NOM
FROM FOURNISSEUR FR
WHERE NOT EXISTS (SELECT *
FROM FOURNITURE
WHERE NF = FR.NF AND NP = P2 ;

Les requêtes ci-dessus en langage prédicatif :

• Donner le nom des fournisseurs fournissant la pièce P2 :

 fr.Nomf / Fournisseur(fr)  u ( Fourniture (u)  (u.NP = ‘P2’ )  (u.NF = fr.NF) ) 

• Donner le nom des fournisseurs ne fournissant pas P2 :

fr.Nomf / Fournisseur(fr)  /x ( Fourniture(x)  (x.NP = ‘P2’) 

(x.NF = fr.NF) )

46
Université des Sciences et de la Technologie Houari Boumedienne
Faculté d’Electronique et d’Informatique
Département d’Informatique, Licences ACAD & ISIL

47

Vous aimerez peut-être aussi