2016-02-05
1
Séances de cours 6 et 7
TCH054 Bases de données © Robert Godin, Lévis Thériault, Hiver 2016. 1
S’initier au langage SQL utilisé pour
interroger les bases de données (BD) à partir
du schéma relationnel.
Traduire les questions d’affaires en requêtes
SQL permettant d’extraire des données
d’intérêt de la BD.
Formuler les requêtes en utilisant le langage
de manipulation de données (LMD SQL).
TCH054 Bases de données © Robert Godin, Lévis Thériault, Hiver 2016. 2
Requêtes SQL
SELECT
Opérations de mise à jour en SQL
INSERT
DELETE
UPDATE
Gestion des transactions en SQL
COMMIT
ROLLBACK
TCH054 Bases de données © Robert Godin, Lévis Thériault, Hiver 2016. 3
2016-02-05
2
Requêtes SQL
SELECT
Opérations de mise à jour en SQL
INSERT
DELETE
UPDATE
Gestion des transactions en SQL
COMMIT
ROLLBACK
TCH054 Bases de données © Robert Godin, Lévis Thériault, Hiver 2016. 4
Structured Query Language
Norme établie pour SGBD relationnel
Partie LDD (Langage de définition de données)
Conceptuel : CREATE SCHEMA, TABLE,...
Externe : CREATE VIEW, GRANT,…
Interne : CREATE INDEX, CLUSTER,...
Partie LMD (Langage de manipulation de
données)
SELECT, INSERT, DELETE, UPDATE
Partie LCD (Langage de contrôle de données)
GRANT, REVOKE
TCH054 Bases de données © Robert Godin, Lévis Thériault, Hiver 2016. 5
Requête
Ensemble de commande SQL dont l’exécution (par le SGBD)
permet d’extraire des données désirées
Interroge les données de la base de données
Ne crée pas une copie des données
Génère un résultat qui se présente sous forme d’un tableau
contenant des lignes et des colonnes
Une ligne correspond à un enregistrement
Une colonne correspond à un attribut
Un champ correspond à l’intersection d’une ligne et d’une colonne (une
valeur)
Permet de générer une vue partielle de l’ensemble des données
de la BD
TCH054 Bases de données © Robert Godin, Lévis Thériault, Hiver 2016. 6
2016-02-05
3
Requête
Entrée : les conditions que doivent respecter les données
Sortie : les données dans la BD qui respectent ces
conditions
Langage pour formuler la requête
LMD SQL
Résultat
Une table virtuelle
TCH054 Bases de données © Robert Godin, Lévis Thériault, Hiver 2016. 7
Syntaxe de requêteSQL
Syntaxe du selectSQL
...
TCH054 Bases de données © Robert Godin, Lévis Thériault, Hiver 2016. 8
selectSQL |
(requêteSQL) {UNION|INTERSECT|EXCEPT} (requêteSQL)
SELECT {[ALL|DISTINCT] expression [AS nomColonne]
[,expression [AS nomColonne]]…}|*
FROM table [AS nomTable [(nomColonne[,nomColonne])]]]
[,table [AS nomTable [(nomColonne[,nomColonne])]]]]…
[WHERE conditionSQL]
[GROUP BY nomColonne [,nomColonne]…
[HAVING conditionSQL]
[ORDER BY nomColonne [ASC|DESC] [,nomColonne[ASC|DESC]]…]
Produire les noClient et dateCommande de toutes les
Commandes
TCH054 Bases de données © Robert Godin, Lévis Thériault, Hiver 2016. 9
SELECT noClient, dateCommande
FROM Commande
noClient dateCommande
10 01/06/2000
20 02/06/2000
10 02/06/2000
10 05/07/2000
30 09/07/2000
20 09/07/2000
40 15/07/2000
40 15/07/2000
SELECT ALL noClient, dateCommande
FROM Commande
Multi-ensemble !
2016-02-05
4
Produire les noClient et dateCommande de toutes les
Commandes
TCH054 Bases de données © Robert Godin, Lévis Thériault, Hiver 2016. 10
noClient dateCommande
10 01/06/2000
20 02/06/2000
10 02/06/2000
10 05/07/2000
30 09/07/2000
20 09/07/2000
40 15/07/2000
SELECT DISTINCT noClient, dateCommande
FROM Commande
noClient, dateCommande (Commande)
Sélectionner les Articles dont le prix est inférieur à
$20.00 et le numéro est supérieur à 30
TCH054 Bases de données © Robert Godin, Lévis Thériault, Hiver 2016. 11
SELECT *
FROM Article
WHERE prixUnitaire < 20 AND noArticle > 30
prixUnitaire < 20.00 ET noArticle > 30 (Article)
prixUnitaire
Syntaxe (incomplète) de la conditionSimple :
TCH054 Bases de données © Robert Godin, Lévis Thériault, Hiver 2016. 12
{conditionSimple
(conditionSQL)|
NOT(conditionSQL)|
conditionSQL AND conditionSQL |
conditionSQL OR conditionSQL}
{expression {=|<|>|<=|>=|<>} expression|
expression BETWEEN expression AND expression|
expression {IS NULL |IS NOT NULL}|
expression {IN |NOT IN} listeConstantes|
expression {LIKE |NOT LIKE} patron}
2016-02-05
5
Sélectionner les Commandes du mois de juin
de l'année 2000
TCH054 Bases de données © Robert Godin, Lévis Thériault, Hiver 2016. 13
SELECT *
FROM Commande
WHERE dateCommande BETWEEN '01/06/2000' AND '30/06/2000'
SELECT *
FROM Commande
WHERE dateCommande >= '01/06/2000' AND
dateCommande <='30/06/2000'
Sélectionner les Commandes du Client dont le
noClient est 10 ou 40 ou 80
TCH054 Bases de données © Robert Godin, Lévis Thériault, Hiver 2016. 14
SELECT *
FROM Commande
WHERE noClient IN (10, 40, 80)
SELECT *
FROM Commande
WHERE noClient = 10 OR noClient = 40 OR noClient = 80
Sélectionner les Clients dont le nomClient
contient le mot Le
2ième lettre du nomClient est un o et dernière
lettre est un k
TCH054 Bases de données © Robert Godin, Lévis Thériault, Hiver 2016. 15
SELECT *
FROM Client
WHERE nomClient LIKE '%Le%'
SELECT *
FROM Client
WHERE nomClient LIKE '_o%k'
1 / 23 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !