1
RAPPEL SQL
IFT287
(Thème 3)
2
SQL
• Le langage SQL est basé sur l’algèbre relationnelle
• Le langage SQL est une norme de l'ANSI et de l'ISO pour
les systèmes de gestion de base de données (SGBD)
relationnels
• Dans le cours, nous utiliserons une base de données
PostgreSQL
3
Table
• Une table est un ensemble de tuples;
• Tous les tuples d'une table ont le même format
• Ce format est défini par un ensemble d'attributs
4
Table
Sigle Titre Crédit Professeur
IFT209 Programmation Système 3 Richard St-Denis
IFT320 Système d’exploitation 3 Mikaël Fortin
IFT615 Intelligence Artificielle 3 Froduald Kabanza
IFT159 Analyse et programmation 3 Gabriel Girard
5
Table
Type Valeur
CHARACTER (n), CHAR(n) Chaine de caractères de longueur n
NUMERIC (p, s), DECIMAL (p, s), Nombre de p chiffres, ayant s chiffres
DEC (p, s) après la virgule
INTEGER, INT, SMALLINT Entier
FLOAT (p), REAL, DOUBLE Nombre à virgule flottante
PRECISION
CHARACTER VARYING(n), Chaine de caractères de longueur
VARCHAR(n) maximale n
DATE Date en format YYYY-MM-DD
TIME Heure en format HH:MM:SS
TIMESTAMP Date et heure
6
Table
• Pour créer une table
CREATE TABLE Personnes(
id INTEGER NOT NULL,
prenom VARCHAR(255) NOT NULL,
nom VARCHAR(255) NOT NULL,
age INTEGER CHECK age >= 0,
departement INTEGER,
CONSTRAINT pkPersonne PRIMARY KEY id
CONSTRAINT fkDepartement FOREIGN KEY departement
REFERENCES Departements
)
7
Table
• Pour supprimer une table
DROP TABLE Personnes
DROP TABLE Departements CASCADE CONSTRAINTS
• Il est recommandé de supprimer une table avant de la
créer
DROP TABLE Personnes
CREATE TABLE Personnes( … )
8
Données
• Pour insérer des données dans une table
INSERT INTO Personnes (id, nom, prenom)
VALUES(1, "Smith", "John")
• Pour modifier des données déjà présentes
UPDATE Personnes SET
prenom="Vincent", nom="Ducharme" WHERE id=1
9
Données
• Pour supprimer des données dans une table
DELETE FROM Personnes WHERE id=1
• Pour supprimer toutes les données d’une table
DELETE FROM Personnes
10
Sélection des données
• Pour récupérer des données
SELECT prenom, nom
FROM Personnes
WHERE id < 10
ORDER BY nom
SELECT P.prenom, P.nom, D.nom
FROM Personnes P, Departements D
WHERE P.departement = D.id
11
Sélection des données
• Un SELECT effectue toujours les opérations suivantes
1. Évalue le produit cartésien des relations du FROM;
2. Sélectionne les tuples satisfaisant la clause WHERE;
3. Regroupe les tuples selon la clause GROUP BY;
4. Sélectionne les groupes selon la condition HAVING;
5. Évalue les expressions du SELECT;
6. Élimine les doublons si clause DISTINCT;
7. Évalue l'union, l'intersection, ou la différence des selects (si
nécessaire);
8. Trie les tuples selon la clause ORDER BY.
12
SQL
• Les notes de cours contiennent beaucoup plus de détails
• Pour le cours, les requêtes resteront relativement simples
• Vous pouvez trouver des exercices et des explications
supplémentaires
• http://www.w3schools.com/sql/