Numération
Numérique & Science Informatique
1
Numération
Numérique & Science Informatique
SQL a été développé à l'origine par IBM au début des années 1970.
SQL signifie langage de requête structuré (Structured Query Language)
et est devenu une norme ISO en 1987.
Il a été spécialement conçu pour stocker, extraire, gérer ou
manipuler les données à l'intérieur d'un système de gestion de
bases de données relationnelles (SGBDR).
SQL est le langage de base de données le plus largement mis en
œuvre et soutenu par les systèmes de base de données
relationnelles populaires, comme MySQL, SQL Server, et Oracle.
Il permet de :
Gérer les bases de données et les utilisateurs
Gérer les relations
Gérer les tuples / les données
Interroger la base de données
L'information ne doit jamais être dupliquée
2
Numération
Numérique & Science Informatique
Gérer les relations : Créer une table
CREATE Crée une nouvelle table, une vue d’une table ou un autre objet de la base de
données.
Exemple
CREATE TABLE LIVRES (
id_livre INT,
titre TEXT,
auteur TEXT,
ann_publi INT,
note INT
PRIMARY KEY( id_livre )
);
3
Numération
Numérique & Science Informatique
Gérer les relations : Supprimer une table
DROP Supprime une table entière, une vue d'une table ou d'autres objets de la base de
données.
Exemple
DROP TABLE LIVRES ;
Gérer les relations : Mettre à jour une table , ajouter un attribut
ALTER Modifie un objet de base de données existant, tel qu'une table.
Exemple pour ajouter un attribut
ALTER TABLE LiVRES
ADD prix INT ;
4
Numération
Numérique & Science Informatique
Gérer les tuples / les données : Ajouter un tuple de données
INSERT Crée un enregistrement.
Exemple
INSERT INTO LIVRES (id,titre, auteur, ann_publi, note)
VALUES
(1,'1984','Orwell',1949,10),
(2,'Dune','Herbert',1965,8),
…
(3,'Fondation','Asimov',1951,9);
5
Numération
Numérique & Science Informatique
Gérer les tuples / les données : Supprimer un tuple de données
DELETE : Supprime un enregistrement.
Exemple
DELETE FROM LIVRES
WHERE titre='Hypérion';
6
Numération
Numérique & Science Informatique
Gérer les tuples / les données : Mettre à jour un tuple de données
UPDATE : Met à jour un enregistrement.
Exemple
UPDATE LIVRES
SET note=7
WHERE titre = 'Hypérion';
7
Numération
Numérique & Science Informatique
Interroger une base de données
Quand on interroge la base de données, on dit qu’on réalise une requête.
Les requêtes SQL respectent la structure générale :
SELECT
Nom des attributs
From
Table
WHERE
Conditions
Option
Tri, nombre d’éléments
8
Numération
Numérique & Science Informatique
Interroger une base de données :
Effectuer des requêtes simples
Afficher les attributs d’une table
Exemple :
SELECT titre, auteur, ann_publi
FROM LIVRES;
Grâce à l’étoile * : afficher TOUS les attributs d’une table
Exemple :
SELECT *
FROM LIVRES;
Grâce à DISTINCT : éviter les doublons éventuels d’un attribut
d’une table
Exemple :
SELECT DISTINCT auteur
FROM LIVRES;
9
Numération
Numérique & Science Informatique
Interroger une base de données :
Afficher une liste de données en fonction de conditions
Grâce à WHERE : afficher une partie des données avec une condition
Exemple :
SELECT titre, auteur, ann_publi
FROM LIVRES
WHERE auteur='Asimov';
Grâce à AND / OR : combiner des conditions
Exemple :
SELECT titre, auteur, ann_publi
FROM LIVRES
WHERE auteur='Asimov' AND ann_publi>1953;
Grâce à IN : choisir parmi des valeurs
Exemple :
SELECT titre, auteur, ann_publi
FROM LIVRES
WHERE auteur='[Link]'
ORDER BY ann_publi IN (1971, 1999) ;
10
Numération
Numérique & Science Informatique
Interroger une base de données :
Afficher une liste de données en fonction de conditions
Grâce à LIKE : choisir parmi un modèle particulier
Exemple :
SELECT titre, auteur, ann_publi
FROM LIVRES
WHERE auteur LIKE 'N%’'
Ici : tous les auteurs commençant par la lettre N
LIKE ‘%a’ : se termine par un “a”.
LIKE ‘%a%’ : contient le caractère “a”.
LIKE ‘pa%on’ : commence par “pa” et se terminent par “on”
11
Numération
Numérique & Science Informatique
Interroger une base de données :
Afficher une liste de données triées
Grâce à ORDER BY : afficher les données par ordre croissant à partir d’un
attribut
Exemple :
SELECT titre, auteur, ann_publi
FROM LIVRES
WHERE auteur='[Link]'
ORDER BY ann_publi ;
Il est possible d'obtenir un classement par ordre décroissant en ajoutant
DESC derrière l’attribut ann_publi contenu dans la clause ORDER BY
12
Numération
Numérique & Science Informatique
Interroger une base de données :
Afficher une liste de données contenue
dans deux tables
La commande JOIN est un type de jointures qui permet de lier plusieurs
tables entre-elles.
Cette commande retourne les enregistrements lorsqu’il y a au moins une
ligne dans chaque colonne qui correspond à la condition.
Exemple :
SELECT nom, prenom, titre
FROM AUTEURS
JOIN LIVRES ON [Link] = LIVRES.id_auteur;
La syntaxe ci-dessus stipule qu’il faut sélectionner les enregistrements
des tables AUTEURS et LIVRES lorsque les données de la colonne “id” de la
table AUTEURS est égal aux données de la colonne id_auteur de la table
LIVRES.
13
Numération
Numérique & Science Informatique
Interroger une base de données :
Afficher une liste de données contenue
dans deux tables
A noter : La jointure SQL peux aussi être écrite de la façon suivante :
Exemple :
SELECT nom, prenom, titre
FROM AUTEURS
WHERE [Link] = LIVRES.id_auteur;
La syntaxe avec la condition WHERE est une manière alternative de faire la
jointure mais qui possède l’inconvénient d’être moins facile à lire s’il y
a déjà plusieurs conditions dans le WHERE.
14
Numération
Numérique & Science Informatique
Interroger une base de données :
Afficher le nombre d’enregistrement dans
une table
Grâce à COUNT : compter le nombre d’enregistrement dans une table.
Exemple :
SELECT COUNT(*)
FROM LIVRES;
Exemple :
SELECT COUNT(*)
FROM LIVRES WHERE nombre_achat > 0
15
Numération
Numérique & Science Informatique
Pour vous entraîner en ligne :
TP requêtes SQL ( NSI) :
[Link]
Des TP de requêtes en ligne :
[Link]
L’ile déserte en SQL :
[Link]
16