Cours
Objectifs
Comment manipuler les données ?
Présentation
Requête
Programmation Web et bases de donnéesRequête
Structured Query Language (SQL)
Structured Query Language (SQL)
Prononcé SQL
/ɛs kjuː ɛl/ou sequel/ˈsiːkwəl/.Langage pour manipuler des DB relationnelles depuis 1974.
Norme ISO depuis 1987 pour DBMS relationnels.
Proche d'un langage naturel pour faciliter l'apprentissage.
Paradigmes : déclaratif (≠ impératif), orienté objet, procédural.
https://commons.wikimedia.org/wiki/File:SQL_ANATOMY_wiki.svg
ISO 8601
ISO 8601

Standards
Standards

Tables SQL
Tables SQL

Commandes SQL
Commandes SQL

Commandes SQL
Commandes SQL
DDL (Data Definition Language)
CREATE,ALTER,DROP,TRUNCATE
DML (Data Manipulation Language)
INSERT,UPDATE,DELETE
DQL (Data Query Language)
SELECT
DCL (Data Control Language)
GRANT,REVOKE
TCL (Transaction Control Language)
COMMIT,ROLLBACK,SAVEPOINT
DDL (Data Definition Language)
DDL (Data Definition Language)
Définition de la structure des données (tables, vues, index, …).
CREATE TABLE table1 (
colonne1 type1,
colonne2 type2
);
ALTER TABLE table1 ADD colonne type;
DROP TABLE table1;
TRUNCATE TABLE table1;
CREATE: créer une table (et ses colonnes).ALTER: modifier une table (ajouter, modifier ou supprimer une colonne).DROP: supprimer une table (et ses données).TRUNCATE: vider une table (sans la supprimer).
DML (Data Manipulation Language)
DML (Data Manipulation Language)
Manipulation des données dans les tables.
INSERT INTO table1 (colonne1, colonne2) VALUES (value1, value2);
UPDATE table1 SET colonne = value WHERE condition1;
DELETE FROM table1 WHERE condition1;
INSERT: ajouter des lignes dans une table.UPDATE: modifier des lignes existantes.DELETE: supprimer des lignes existantes.
DQL (Data Query Language)
DQL (Data Query Language)
Interrogation des données dans les tables.
SELECT colonne1, colonne2 FROM table1 WHERE condition1;
SELECT * FROM table1;
SELECT * FROM table1 JOIN table2 ON table1.colonne = table2.colonne;
SELECT * FROM table1 JOIN table2 ON table1.colonne = table2.colonne WHERE condition1;
SELECT: sélectionner des colonnes dans une table.*: toutes les colonnes.WHERE: filtrer les lignes sélectionnées.JOIN: joindre plusieurs tables pour une requête (clés primaire/étrangère).
Résultat sous forme de table.
DCL (Data Control Language)
DCL (Data Control Language)
Gestion des droits d'accès aux données.
GRANT SELECT ON table1 TO user1;
REVOKE SELECT ON table1 FROM user1;
GRANT: accorder des droits d'accès.REVOKE: retirer des droits accordés.
TCL (Transaction Control Language)
TCL (Transaction Control Language)
Gestion des transactions pour garantir l'intégrité des données.
BEGIN;
UPDATE table1 SET colonne = value WHERE condition1;
SAVEPOINT savepoint1;
UPDATE table1 SET colonne = value WHERE condition2;
ROLLBACK TO savepoint1; -- annule la deuxième mise à jour
COMMIT; -- valide la première mise à jour
COMMIT: valider une transaction.ROLLBACK: annuler une transaction.SAVEPOINT: définir un point de sauvegarde dans une transaction.
Conditions
Conditions
SELECT * FROM table1 WHERE colonne = value;
SELECT * FROM table1 WHERE colonne > value;
SELECT * FROM table1 WHERE colonne <= value;
SELECT * FROM table1 WHERE colonne <> value; -- ou !=
SELECT * FROM table1 WHERE colonne IS NULL;
SELECT * FROM table1 WHERE colonne IS NOT NULL;
SELECT * FROM table1 WHERE colonne BETWEEN value1 AND value2;
SELECT * FROM table1 WHERE colonne IN (value1, value2);
SELECT * FROM table1 WHERE colonne LIKE 'value%';
SELECT * FROM table1 WHERE condition1 AND condition2;
SELECT * FROM table1 WHERE condition1 OR condition2;
SELECT * FROM table1 WHERE NOT condition1;
Fonctions
Fonctions
Pour appliquer des opérations sur les données dans les requêtes :
SELECT COUNT(colonne) FROM table1;
SELECT SUM(colonne) FROM table1;
SELECT AVG(colonne) FROM table1;
SELECT MIN(colonne) FROM table1;
SELECT MAX(colonne) FROM table1;
SELECT DISTINCT colonne FROM table1;
SELECT colonne1, colonne2 FROM table1 ORDER BY colonne1 ASC, colonne2 DESC;
SELECT colonne1, colonne2 FROM table1 LIMIT 10 OFFSET 5;
Jointure
Jointure

PostgreSQL
PostgreSQL

https://www.postgresql.org/about/press/presskit16/base/
Système de gestion de base de données relationnelles.
Open-source depuis 1996 et conforme à la norme SQL.
Documentation complète et communauté active.
Deuxième DBMS le plus utilisé après MySQL.
pgAdmin : interface graphique pour PostgreSQL.
Query
Query

Exploitation Maternelle
Exploitation Maternelle

Versions sans animation, plein écran, imprimable.