0% ont trouvé ce document utile (0 vote)
25 vues50 pages

SQLPartie 1

Le document présente les notions de bases de données et des systèmes de gestion de bases de données (SGBD), définissant les concepts clés tels que les bases de données, les tables, les requêtes et les relations entre tables. Il explique également l'approche Client/Serveur ainsi que les types de requêtes SQL, y compris la syntaxe de base pour effectuer des opérations de sélection, d'insertion, de modification et de suppression. Enfin, il aborde les critères de sélection et les opérateurs logiques utilisés dans les requêtes SQL.

Transféré par

Re Dare
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)
25 vues50 pages

SQLPartie 1

Le document présente les notions de bases de données et des systèmes de gestion de bases de données (SGBD), définissant les concepts clés tels que les bases de données, les tables, les requêtes et les relations entre tables. Il explique également l'approche Client/Serveur ainsi que les types de requêtes SQL, y compris la syntaxe de base pour effectuer des opérations de sélection, d'insertion, de modification et de suppression. Enfin, il aborde les critères de sélection et les opérateurs logiques utilisés dans les requêtes SQL.

Transféré par

Re Dare
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

S24

Notions de bases de
données et SGBD
Partie 2

Les systèmes de gestion de


la base de données SGBD
1. Les systèmes de gestion de bases de données
a. Définitions

Base de données BD

• C’est un ensemble bien structuré de données


relatives à un sujet global.
• Ces données peuvent être de nature et
d'origine différentes.

Système de gestion de bases de données (SGBD)

• C’est un programme qui nous permet de créer,


de modifier et d'exploiter des BD.
• C’est une interface pour accéder aux données.
1. Les systèmes de gestion de bases de données
a. Définitions

SGBD BD

Un utilisateur utilise un SGBD pour accéder aux données


d'une base de données.
1. Les systèmes de gestion de bases de données
b. Les composants d'une BD relationnelle

Table
❑ Une table peut être comparée à une liste
❑ Elle contient des enregistrements relatifs à un domaine
bien défini.
1. Les systèmes de gestion de bases de données
b. Les composants d'une BD relationnelle

Requêtes
❑ Les "questions" qu'on pose au SGBD
❑ Le résultat d'une requête est toujours un sous-ensemble
d'une ou de plusieurs tables

Exemple:
Le chef du personnel de l'entreprise désire connaître
les noms, prénoms, adresses et localités des employés
recrutés en 1996.
1. Les systèmes de gestion de bases de données
b. Les composants d'une BD relationnelle

Formulaires
❑ ils sont utilisés pour ajouter, modifier ou supprimer des
données dans les tables.
❑ ils nous offrent : La facilité d'utilisation & la sécurité des
données.

Exemple:
La secrétaire utilise
un formulaire pour
ajouter ou supprimer
un employé de la BD.
1. Les systèmes de gestion de bases de données
b. Les composants d'une BD relationnelle

Rapports
❑Ils sont similaires aux formulaires
❑Ils sont uniquement destinés à être imprimés
❑se basent généralement sur une ou plusieurs tables ou bien
sur le résultat d'une requête.
Exemple:
Un rapport avec
a liste des employés,
leur salaire mensuel
ainsi que le salaire
mensuel total payé
pour le département
Comptabilité.
1. Les systèmes de gestion de bases de données
c. L'approche Client/Serveur

BD

❑Les BD sont gérées sur un serveur BD,


❑Les interfaces pour visualiser et manipuler les données
(p.ex. formulaires, rapports) se trouvent sur les PC client.
❑Sur le poste client se trouve un SGBD client, qui émet des
requêtes formulées dans un langage d'interrogation de
données (SQL par ex) au serveur BD via le réseau.
1. Les systèmes de gestion de bases de données
c. L'approche Client/Serveur

BD

❑Le serveur exécute les requêtes qui lui ont été transmises
et renvoie le résultat au client.
❑Le client affiche le résultat sous forme d’un formulaire ou
d'un rapport.
Exemples de SGBD Client/Serveur:
• Côté serveur: Oracle, Sybase, IBM-Informix, SQL Server,
MySQL
• Côté client: Paradox, Personal Oracle, MS-Access, Filemaker
2. Les tables
a. Définition

❑Une table est une collection de données relatives à un


domaine bien défini,.
Par exemple: Les employés d'une société ou les livres d'une
bibliothèque.
❑Elle contient des enregistrements dont chacun est composé
par les mêmes champs de données.
2. Les tables
a. Définition

▪Les champs de données définissent les informations, qu'on veut


stocker dans la table (ex des informations concernant les employés
d'une société).
▪Chaque enregistrement représente une occurrence de ce qu'on veut
stocker (ex un employé).
▪Chaque table possède un nom unique (ex : tblEmployés).
▪Chaque enregistrement correspond à une ligne de la table.
▪Chaque champ correspond à une colonne de la table.
▪Chaque champ peut représenter des données de nature différente
(Nom, Salaire, Date de naissance …).
▪Chaque champ peut représenter des données de type différent
(Texte, Nombres, Dates …).
2. Les tables
a. Définition

Conventions de noms:
❑Les noms de tables sont précédés du préfixe tbl , Par exemple:
tblLivres, tblEmployés.
❑ Le nom d'une table doit être unique à l'intérieur d'une BD.

Exercice
Déterminez les champs nécessaires pour une table qui contiendra des
données concernant :
• les élèves d'une école (nous ne considérons pas la gestion des
classes);
• les livres d'une bibliothèque (nous supposons qu'un livre est rédigé
par un seul auteur);
• les produits d'un supermarché.
2. Les tables
b. Les champs d'une table

Exemple:
On veut représenter les données concernant les voitures d'une
société de taxis par une table. On veut mémoriser les informations
suivantes:
• Marque • Modèle • Cylindrée • Poids

Les types de données connus par la plupart des SGBD:


Type de données Description
Date/Heure Date et heure
Valeur booléenne Oui/Non
Texte Chaînes de caractères
Numérique Nombres entiers ou décimaux
Mémo Documents (textes longs)
2. Les tables
c. Clé primaire

❑On a besoin d’un moyen, qui nous permet d'adresser sans


ambiguïté chaque enregistrement dans la table Clé primaire
❑Elle est constituée d'un ou de plusieurs champs, nous permet
d'identifier de manière unique chaque enregistrement d'une table.
Exemples:
➢Le numéro de matricule pour les assurés des caisses de maladie.
➢Le numéro client pour les clients d'une vidéothèque.

Convention des noms:


Les noms des champs qui forment la clé primaire sont précédés du
préfixe id (angl.: identifier). Par exemple: idTaxi, idEmployé
2. Les tables
d. Relations entre tables - clé étrangère

❑ Une base de données est composée d'un ensemble de tables,


entre lesquelles il existe certaines relations.
Exemples:

➢Les deux tables sont liées via


les champs fiSociété et idSociété.
➢fiSociété est une clé étrangère,
qui fait référence à la clé primaire idSociété de la
table tblSociétés.

Clé étrangère
Un champ qui, dans une table, fait référence à la clé primaire d'une
autre table est appelé clé étrangère.
3. Les requêtes (angl. queries)
a. Définition

❑ Les requêtes servent à répondre aux questions basées sur le contenu


d'une ou de plusieurs tables.
Exemples:

Exemple de requête:
Quelles sont les marques et modèles des voitures ayant une cylindrée
supérieure à 2000 ?
Résultat:
3. Les requêtes (angl. queries)
a. Définition

Il existe plusieurs types de requêtes:

▪ Requêtes de Sélection: sélectionner certains enregistrements.


p.ex. Sélectionner les marques et modèles des voitures ayant une
cylindrée supérieure à 2000.

▪ Requêtes d'insertion: insérer des enregistrements dans la table.


p.ex. Insérer un nouveau taxi : 4, BMW, 325i, 2500, 1270.

▪ Requêtes de modification: modifier des enregistrements dans la


table.
p.ex. Modifier la cylindrée des Ford Orion de façon à ce qu'elle devienne
2000.

▪ Requêtes de suppression: supprimer des enregistrements de la


table.
p.ex. Supprimer toutes les BMW.
3. Les requêtes (angl. queries)
b. Introduction au langage SQL

❑Le langage SQL (Structured Query


Language) est un standard international
❑SQL est connu par tous les SGBDR.
❑Il existe plusieurs standards internationaux
tels que SQL-86, SQL-89, SQL-92 (SQL2) ou
SQL3.
❑Chaque SGBD sur le marché utilise un peu
son propre dialecte du langage SQL.
3. Les requêtes (angl. queries)
c. Syntaxe SQL de base

• SELECT <Nom d'un champ>,...


Requêtes de • FROM <Nom de la table>
sélection • WHERE <Critères de sélection>;

• INSERT INTO <Nom de la table> [(<Liste des


Requêtes champs>)]
d'insertion • VALUES ( <Valeurs pour les champs> );

• UPDATE <Nom de la table>


Requêtes de • SET <Nom d'un champ>={valeur},. .
modification • WHERE <Critères de sélection>;

Requêtes de • DELETE FROM <Nom de la table>


suppression • WHERE <Critères de sélection>;
3. Les requêtes (angl. queries)
c. Syntaxe SQL de base

Soit une table des employés d'une entreprise :

1. Afficher le prénom et le nom de tous les employés


2. Insérer une nouvelle employée:

3. Afficher tous les champs pour tous les employés


3. Les requêtes (angl. queries)
c. Syntaxe SQL de base

1. Afficher le prénom et le nom de tous les employés


SELECT fldPrénom, fldNom
FROM tblEmployés;
2. Insérer une nouvelle employée:

INSERT INTO tblEmployés


VALUES (20, 'Angela', 'Portante', 'ITA', 27, 'F',
'Comptabilité', #3/25/97#);
3.Afficher tous les champs pour tous les employés
SELECT idEmployé, fldPrénom, fldNom, fldNationalité,
fldAge, fldSexe, fldService, fldEntréeService
FROM tblEmployés;
ou
SELECT *
FROM tblEmployés;
3. Les requêtes (angl. queries)
d. Les critères de sélection

 Constituent une expression logique('Vrai‘ ou


'Faux‘)
 Sont appliqués à chaque enregistrement d'une
table.
 Lorsque pour un enregistrement donné,
l'expression logique prend la valeur 'Vrai', cet
enregistrement :
◼ Fait partie du résultat pour une requête de
sélection;
◼ Est modifié pour une requête de modification;
◼ Est effacé pour une requête de suppression;
3. Les requêtes (angl. queries)
d. Les critères de sélection

Comparaison à une valeur donnée


 La valeur d'un champ est comparée à une valeur
fixe (valeur numérique, une date ou un texte).
 Voici les opérateurs de comparaison:
= "est égal" > "strictement supérieur"
< "strictement inférieur" >= "supérieur ou égal"
<= "inférieur ou égal" <> "est différent"
Exemples: Afficher le prénom et le nom de tous les
employés du service "Marketing"
SELECT fldPrénom, fldNom
FROM tblEmployés
WHERE fldService='Marketing';
3. Les requêtes (angl. queries)
e. Comparaison à un filtre

 Un filtre est utilisé dans le cas où on ne connaît


pas la valeur exacte de comparaison
 Un filtre est une expression qui peut contenir des
lettres, des chiffres et en plus les 2 caractères
spéciaux suivants:
% n'importe quelle séquence de 0 ou plusieurs caractères *
_ un seul caractère quelconque ?
Exemple:
Rechercher des personnes dont le nom est ‘BENALI'
ou ‘BENNANI' ou ‘BENAMRANE' etc.
On définit le filtre suivant : ‘BEN%'
3. Les requêtes (angl. queries)
e. Comparaison à un filtre

Exemple:
1. Afficher le nom et le prénom des employés dont
le prénom contient un trait d'union (p.ex. Jean-
Jacques)
SELECT fldNom, fldPrénom
FROM tblEmployés
WHERE fldPrénom LIKE '%-%';
2. Afficher le nom, le prénom et l'âge des employés
dont le nom commence par 'W', est composé de
5 lettres et se termine par 'R'
SELECT fldNom, fldPrénom, fldAge
FROM tblEmployés
WHERE fldNom LIKE 'W___R‘;
3. Les requêtes (angl. queries)
f. Les opérateurs logiques

Il existe 3 opérateurs logiques:


 NOT (Négation logique) : inverse le résultat d'une
expression logique.
 AND (Et logique) : permet de combiner plusieurs
conditions dans une expression logique. L'expression
logique retourne uniquement la valeur 'Vrai' lorsque
toutes les conditions sont remplies.
 OR (Ou logique): permet de combiner plusieurs
conditions dans une expression logique. L'expression
logique retourne la valeur 'Vrai' lorsque au moins
une des conditions est remplie.
3. Les requêtes (angl. queries)
f. Les opérateurs logiques

Priorité des opérateurs logiques


 Le résultat final de l'expression logique dépend de
l'ordre d'exécution des différentes conditions:
1. Déterminer le résultat logique ('Vrai','Faux')
des comparaisons (=, <, > etc.)
2. Effectuer les négations (NOT)
3. Effectuer les AND
4. Effectuer les OR
 Pour modifier cet ordre d'exécution, nous pouvons
utiliser des parenthèses afin de grouper les
différentes conditions logiques.
3. Les requêtes (angl. queries)

Exercice
1. Afficher le prénom, le nom et l'âge de tous les
employés plus jeunes que 50 ans
SELECT fldPrénom, fldNom, fldAge
FROM tblEmployés
WHERE fldAge<50;
2.Augmentez de la valeur 1 l'âge de Madame Bennani.
UPDATE tblEmployés
SET fldAge=fldAge+1
WHERE fldNom=‘Bennani';
3.Effacez tous les employés du service Informatique.
DELETE FROM tblEmployés
WHERE fldService='Informatique‘;
3. Les requêtes (angl. queries)

Exercice
4. Afficher le nom, le prénom et l'âge de tous les employés
entrés en service à partir du 1.1.1995
SELECT fldNom, fldPrénom, fldAge
FROM tblEmployés
WHERE fldEntréeService>=#1/1/95#;
5. Afficher le prénom et le nom de tous les employés qui ne
travaillent pas dans le service "Marketing"
SELECT fldPrénom, fldNom
FROM tblEmployés
WHERE NOT fldService='Marketing';
6. Formulez une requête qui affiche exactement le même
résultat, sans utiliser l'opérateur NOT.
SELECT fldPrénom, fldNom
FROM tblEmployés
WHERE fldService<>'Marketing';
3. Les requêtes (angl. queries)

Exercice
7. Afficher le numéro d'employé, le prénom et le nom de
tous les employés dont le nom ne commence pas par la
lettre 'W'
SELECT idEmployé, fldPrénom, fldNom
FROM tblEmployés
WHERE NOT fldNom LIKE 'W%';
8. Afficher le numéro de l'employé, le prénom et le nom
pour les employés du service Informatique qui ont moins
de 30 ans.
SELECT idEmployé, fldPrénom, fldNom
FROM tblEmployés
WHERE fldService='Informatique' AND fldAge<30;
3. Les requêtes (angl. queries)

Exercice
9. Afficher le prénom et le nom des employés féminins
(code=F) qui ne travaillent pas au service
marketing.
SELECT fldPrénom, fldNom
FROM tblEmployés
WHERE fldSexe='F' AND NOT fldService='Marketing';
ou
SELECT fldPrénom, fldNom
FROM tblEmployés
WHERE fldSexe='F' AND fldService<>'Marketing‘;
3. Les requêtes (angl. queries)

Exercice
10. Afficher tous les champs pour les employés de
nationalité luxembourgeoise (Code=LUX) ou
portugaise (Code=PRT).
SELECT *
FROM tblEmployés
WHERE fldNationalité='LUX' OR fldNationalité='PRT';
11. L'employé Emil Meier est transféré du service
Comptabilité dans le service Informatique. Reflétez
ce changement dans la table.
UPDATE tblEmployés
SET fldService='Informatique'
WHERE fldPrénom='Emil' AND fldNom='Meier';
3. Les requêtes (angl. queries)

Exercice
12. Affichez tous les champs pour les employés
féminins de nationalité luxembourgeoise
(Code='LUX') ou allemande (Code='ALL')
SELECT *
FROM tblEmployés
WHERE (fldNationalité='LUX' OR fldNationalité='ALL')
AND fldSexe='F';
13. Afficher le numéro, le nom et le prénom de tous
les employés embauchés pendant le mois de juillet
1997.
SELECT idEmployé, fldNom, fldPrénom
FROM tblEmployés
WHERE fldEntréeService >= #7/1/97# AND fldEntréeService
<=#7/31/97#;
3. Les requêtes (angl. queries)
g. L'ordre d'une requête de sélection

 L'expression ORDER BY nous permet de définir


convenablement l'ordre d'apparition des
enregistrements qui vérifient les critères de
sélection de la requête.
syntaxe:
SELECT <Nom d'un champ>, <Nom d'un champ>, ...
FROM <Nom de la table>
WHERE <Critères de sélection>
ORDER BY <Nom d'un champ>[ASC/DESC], <Nom
d'un champ>[ASC/DESC], … ;

❑ Par défaut l'ordre de tri est ascendant (ASC).


3. Les requêtes (angl. queries)
g. L'ordre d'une requête de sélection

Exemples:
Soit la table suivante.

Exemple 1:
SELECT idLivre, fldTitre, fldAuteur, fldPrix
FROM tblLivres
ORDER BY fldPrix;
3. Les requêtes (angl. queries)
g. L'ordre d'une requête de sélection

Exemples:
Exemple 1:
SELECT idLivre, fldTitre, fldAuteur, fldPrix
FROM tblLivres
ORDER BY fldPrix;
3. Les requêtes (angl. queries)
g. L'ordre d'une requête de sélection

Exemples:
Soit la table suivante.

Exemple 2:
SELECT idLivre, fldTitre, fldAuteur, fldPrix
FROM tblLivres
ORDER BY fldPrix DESC;
3. Les requêtes (angl. queries)
g. L'ordre d'une requête de sélection

Exemples:
Exemple 2:
SELECT idLivre, fldTitre, fldAuteur, fldPrix
FROM tblLivres
ORDER BY fldPrix DESC;
3. Les requêtes (angl. queries)
g. L'ordre d'une requête de sélection

 On peut aussi trier sur plusieurs champs.


Exemple:
SELECT idLivre, fldTitre, fldAuteur, fldGenre,
fldPrix
FROM tblLivres
ORDER BY fldGenre ASC, fldPrix DESC;
3. Les requêtes (angl. queries)
h. Opérateurs BETWEEN

Cet opérateur permet de chercher un critère ordonné entre


deux valeurs :
BETWEEN valeur1 AND valeur2
Exemple :
Quels sont les livres dont le nombre de pages est compris
entre 300 et 1000 pour la table livres dont les champs
sont :
Id, titre, auteur, editeur, nb_pages, année, emprunteur,
date_retour

SELECT * FROM livres


WHERE ( nb_pages BETWEEN 300 AND 1000)
3. Les requêtes (angl. queries)
h. Opérateurs DISTINCT

Il peut également être intéressant de n’afficher


que les résultats distincts les uns des autres.
Exemple :
Donner, sans répétition, les auteurs de la table
livres.
SELECT DISTINCT ( auteur )
FROM livres
auteur
Jules Verne
Victor Hugo
3. Les requêtes (angl. queries)
h. Opérations ensemblistes

UNION, INTERSECT ou EXCEPT


Exemple :
On a deux tables eleves_14_15 et eleves_15_16 qui
donnent les élèves de deuxième année du lycée de deux
années successives,
Quels sont les élèves ayant fait 5/2 en 2015-2016 ?
SELECT * FROM eleves_14_15
INTERSECT
SELECT * FROM eleves_15_16
3. Les requêtes (angl. queries)
h. Opérations ensemblistes

UNION, INTERSECT ou EXCEPT


Exemple :
On a deux tables eleves_14_15 et eleves_15_16 qui
donnent les élèves de deuxième année du lycée de deux
années successives,
Quels sont les élèves inscrits en 2014-2015 et 2015-
2016 ?
SELECT * FROM eleves_14_15
UNION
SELECT * FROM eleves_15_16
3. Les requêtes (angl. queries)
h. Opérations ensemblistes

UNION, INTERSECT ou EXCEPT


Exemple :
On a deux tables eleves_14_15 et eleves_15_16 qui
donnent les élèves de deuxième année du lycée de deux
années successives,
Quels sont les élèves inscrits seulement en 2015-2016 ?
SELECT * FROM eleves_15_16
EXCEPT
SELECT * FROM eleves_14_15
L’agrégation

Les fonctions d’agrégation


Les fonctions d’agrégations disponibles (de base) sont,
parmi d’autres :
— le comptage, c’est-à-dire le nombre de lignes : COUNT
— le maximum des éléments dans une colonne : MAX
— le minimum des éléments dans une colonne : MIN
— la somme des éléments d’une colonne : SUM
— la moyenne des éléments d’une colonne : AVG

Si f est une de ces fonctions on l’emploie sous la forme :


SELECT f(attribut) FROM table;
L’agrégation

Les fonctions d’agrégation


Le mot-clef GROUP BY sert à indiquer sur quels
attributs sont effectués les regroupements.
Exemple :
Quelle est la moyenne du note du bac pour
chaque filière ? SELECT filiere,AVG(notebac)
FROM eleves
GROUP BY filiere ;

filiere AVG(notebac)
PCSI 14.333333333333334
MPSI 14.5
L’agrégation

Sélection après agrégation


Pour faire une sélection après une opération
d’agrégation, on utilise HAVING.
Syntaxe :
SELECT A1, ..., An, f1(B1), ..., fm(Bm)
FROM R
WHERE C1
GROUP BY A1, ..., An
HAVING C2
L’agrégation

Exemple :
A la suite de la requête précédente, on
pourrait vouloir garder uniquement les filières
ayant une moyenne supérieure à 14.4, donc :
SELECT filiere,AVG(notebac)
FROM eleves
GROUP BY filiere
HAVING AVG(notebac)>14.4 ;

filiere AVG(notebac)
MPSI 14.5
L’agrégation

Exemple :
Il très commode de procéder à un renommage :
On utilise le mot-clef AS :
SELECT filiere,AVG(notebac) AS moy
FROM eleves
GROUP BY filiere
HAVING moy>14.4 ;

filiere moy
MPSI 14.5

Vous aimerez peut-être aussi