Vous êtes sur la page 1sur 2

II) Le langage SQL

Tout d’abord SEQUEL (structured english query language) puis SQL, c’est le langage mis en œuvre sur
les idées de Ted Codd.
On peut utiliser SQL avec de multiples logiciels dont certains sont des SGBD et avec d’autres langages :
• Microsoft Access, Libre Office Base
• MySQL, PostgreSQL
• SQLite pour combiner avec du C ou du Python
• Avec du PHP dans les pages Web.

1) Requêtes sur une seule relation (table)


Le terme de relation est du domaine des BDD, le langage SQL utilise le mot table, mais c’est la même
notion. Nous allons faire nos premières requêtes sur la base 03_gestion_bibliothèque.odb, dont voici la
structure des relations :
• Usager(identifiant :int , nom :string(20) , prenom :string(20) , age :int)
• Livre(isbn :int , titre :string(100) , auteur :string(20) , annee :int)

Je vous conseille de taper les requêtes suivantes puis de noter leur rôle sur votre cahier.
Attention à l’écriture des champs, par exemple, il faut écrire «annee» et pas «année» ou «Annee».
D’autre part, les mots en BLEU sont des commandes du langage SQL.

1) Des requêtes pour afficher des valeurs d’attributs :

SELECT nom SELECT nom , prenom SELECT ∗


FROM Usager FROM Usager FROM Usager

2) L’option DISTINCT pour éviter les répétitions. Regardez la différence entre les deux requêtes :

SELECT age SELECT DISTINCT age


FROM Usager FROM Usager

3) L’option ORDER BY pour trier de façon ascendante ou descendante (ascendant par défaut)

SELECT nom SELECT nom SELECT nom


FROM Usager FROM Usager FROM Usager
ORDER BY nom ASC ORDER BY nom DESC ORDER BY nom

4) Utiliser des tests :

SELECT nom , prenom SELECT nom , age


FROM Usager FROM Usager
WHERE age >50 WHERE age>=44 AND age <60

5) Le signe différent se note <> en SQL, mais de nombreux interpréteurs acceptent ! =

SELECT nom , age SELECT nom , age SELECT nom , age


FROM Usager FROM Usager FROM Usager
WHERE age=44 WHERE age <>44 WHERE age !=44
6) Deux méthodes pour trouver une occurrence d’un attribut :

SELECT ∗ SELECT ∗
FROM Usager FROM Usager
WHERE nom= ’ Codd ’ WHERE nom LIKE ’ Codd ’

Attention, une chaı̂ne de caratères en SQL est entourée de simples cotes, pas de doubles.
7) Le symbole % est un joker qui remplace une chaı̂ne de caractères de longueur quelconque :

SELECT ∗ SELECT ∗
FROM Usager FROM Usager
WHERE nom LIKE ’%ann%’ WHERE nom LIKE ’%ann ’

8) Le symbole est un joker qui remplace un seul caractère, regardez la différence :

SELECT ∗ SELECT ∗
FROM Usager FROM Usager
WHERE nom LIKE ’ e%’ WHERE nom LIKE ’%e%’

À vous :
Je vous rappelle la structure de la BDD bibliothèque :
• Usager(identifiant :int , nom :string(20) , prenom :string(20) , age :int)
• Livre(isbn :int , titre :string(100) , auteur :string(20) , annee :int)

Vous allez maintenant interroger la table «Livre», donc vous aurez à chaque requête FROM Livre.

Tapez les requêtes qui permettent d’afficher :


1) toute la table Livre,
2) le titre de tous les livres,
3) le nom de tous les auteurs sans doublons,
4) le titre des livres rangés par ordre alphabétique,
5) le titre des livres et le nom de leurs auteurs rangés par ordre alphabétique des auteurs (ici vous aurez
l’ordre alphabétique des prénoms des auteurs car il n’y a qu’un seul champ auteur),
6) le titre des livres écrits avant 1800,
7) le nom de tous les auteurs qui ont écrit au XIXe siècle (évitez les répétitions),
8) le titre des livres de Fiodor Dostoı̈evski.
9) le nom des auteurs dont le nom comporte un double ’l’,
10) le nom des auteurs dont un titre de livre au moins commence par un ’L’,
11) les titres de livres qui commencent par ’Le’ ou ’La’,
12) les titres de livres qui ne commencent pas par un ’L’ (la négation de LIKE est NOT LIKE),
13) les titres de livres qui commencent par ’Le’ mais pas par ’Les’,
14) les titres de livres qui n’ont pas de ’e’ dans leur titre,
15) les titres de livres qui ont un ’s’ en troisième position,
16) les titres de livres qui ne commencent pas par ’L’ mais qui contiennent un ’a’,
17) les titres et les auteurs qui contiennent tous les deux au moins un ’a’

Vous aimerez peut-être aussi