0% ont trouvé ce document utile (0 vote)
0 vues27 pages

requetesSQL

Le document présente les concepts fondamentaux des requêtes SQL, y compris la sélection, la jointure et le renommage. Il fournit des exemples pratiques d'interrogation de bases de données à l'aide de SQL, ainsi que des instructions sur la manière d'écrire des requêtes. Les notions de suppression des doublons, d'ordre des résultats et de comparaison approximative de chaînes sont également abordées.

Transféré par

nico.beill24
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
0 vues27 pages

requetesSQL

Le document présente les concepts fondamentaux des requêtes SQL, y compris la sélection, la jointure et le renommage. Il fournit des exemples pratiques d'interrogation de bases de données à l'aide de SQL, ainsi que des instructions sur la manière d'écrire des requêtes. Les notions de suppression des doublons, d'ordre des résultats et de comparaison approximative de chaînes sont également abordées.

Transféré par

nico.beill24
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Requêtes SQL

SQL

1 SQL
Sélection
Jointure
Renommage

2/27
SQL

Interroger la base de données

Nous avons vu comment construire une base de données


Nous allons voir comment l’interroger, à l’aide de requêtes
Pour cela nous allons utiliser un langage , SQL (Structured
Query Language)

3/27
SQL

Exemples de requêtes

Soit les tables suivantes :

STUDENTS [StudNb , Name, City]


INSCRIPTION [StudNb, CourseCode, Year ]
COURSE [CourseCode, Title, WebSite]

Voici des exemples de requêtes que l’on souhaite poser :


Quel est le nom de l’étudiant dont le numéro est ’1013’ ?
Dans quels cours l’étudiant ’Martin’ est inscrit en 2016 ?
Combien d’étudiant suivent le cours de droit en 2015 ?
Quels sont les étudiants inscrits dans le cours de marketing et
dans le cours d’économie ?

4/27
SQL

Comment écrire une requête ?

Langages de requêtes théoriques : algèbre relationnelle


Langages de requêtes commerciaux : SQL

5/27
SQL

Requête de base en SQL

Lister tous les tuples d’une instance


SELECT attributs
FROM R ;

SELECT : permet de choisir les attributs que l’on souhaite


FROM : précise les tables où trouver les attributs
Une requête se termine toujours pas ;
Exemple : requête de base
Toutes les informations sur les inscriptions
INSCRIPTION
StudNb CourseCode Year
1234 1101 2016
1234 2103 2016
SELECT StudNb, CourseCode, Year 1235 1101 2016
1235 2103 2015
FROM Inscription; 1236 1101 2015
1237 3103 2015

6/27
SQL

Sélection

Sélection en SQL

Format
SELECT *
FROM R
WHERE condition ;

Exemple 1
Lister toutes les informations concernant les cours où l’étudiant
1234 est inscrit

StudNB CourseCode Year


SELECT *
1234 1101 2016
FROM Inscription
1234 2103 2016
WHERE StudNB = 1234;

7/27
SQL

Sélection

Sélection en SQL

Exemple 2
Lister toutes les informations concernant le cours 1101 où
l’étudiant 1234 est inscrit

SELECT *
StudNB CourseCode Year
FROM Inscription
1234 1101 2016
WHERE CourseCode = 1101
and StudNb = 1234;

8/27
SQL

Sélection

Projection et sélection en SQL

Format
SELECT A1 . . . An
FROM R
WHERE condition ;

Exemple 1
Quels sont les étudiants habitant à Orléans ?

Name
SELECT Name
Garcia
FROM Student
Dupont
WHERE City =’Orleans’;

9/27
SQL

Jointure

Jointure en SQL
Comment faire lorsque les attributs sont sur plusieurs tables ?
Exemple
Lister les inscriptions dans différents cours, des étudiants avec leur
nom et prénom

Ici les informations des étudiants se trouvent dans la table


STUDENTS et celles sur les inscriptions dans INSCRIPTION
Il ne suffit pas de mettre les deux tables dans le FROM
requête fausse
SELECT *
FROM INSCRIPTION,STUDENT

Cette requête retourne toutes les inscriptions avec tous les


étudiants juxtaposés. Donc s’il y a 10 inscriptions, et 5 étudiants,
nous obtiendrons 50 lignes !
10/27
SQL

Jointure

requête fausse
SELECT *
FROM INSCRIPTION,STUDENT;
StudNb CourseCode Year StudNb Name City
1234 1101 2016 1234 Martin Paris
1234 1101 2016 1235 Smith Paris
1234 1101 2016 1236 Garcia Orléans
1234 1101 2016 1237 Dupont Orléans
1234 2103 2016 1234 Martin Paris
1234 2103 2016 1235 Smith Paris
... ... ... ... ... ...

11/27
SQL

Jointure

Parmi ces résultats certaines lignes ont du sens :


StudNb CourseCode Year StudNb Name City
1234 1101 2016 1234 Martin Paris
1234 1101 2016 1235 Smith Paris
1234 1101 2016 1236 Garcia Orléans
1234 1101 2016 1237 Dupont Orléans
1234 2103 2016 1234 Martin Paris
1234 2103 2016 1235 Smith Paris
... ... ... ... ... ...
Ces lignes sont correctement associées, car le numéro étudiant
(StudNb), attribut présent dans les deux tables, est identique

12/27
SQL

Jointure

Il est donc nécessaire de ne retourner que les résultats qui ont


du sens
Il faut trouver les colonnes identiques entre les tables, qui
vont permettre la jointure
On filtre les résultats pour ne retourner que les lignes où ces
attributs communs sont identiques dans les deux tables

13/27
SQL

Jointure

Format
SELECT A1 ... An
FROM R1, R2
WHERE conditions de jointure;

Exemple
Information de tous les étudiants inscrits

SELECT *
FROM Inscription , Students
WHERE [Link] = [Link];

14/27
SQL

Jointure

SELECT *
FROM Inscription , Students
WHERE [Link] = [Link];

StudNB CourseCode Year Name City


1234 1101 2016 Martin Paris
1234 2103 2016 Martin Paris
1235 1101 2016 Smith Paris
1235 2103 2015 Smith Paris
1236 1101 2015 Garcia Orleans
1237 3103 2015 Dupont Orleans

15/27
SQL

Jointure

Remarque sur la jointure


Les jointures se font toujours entre deux tables
Si l’information est sur trois tables ou plus, par exemple entre
les tables A,B et C , il faudra faire une jointure entre A et B,
puis entre B et C
La jointure n’a de sens que si les deux tables ont des attributs
communs : pourquoi si votre base de données est
correctement formée, est-ce généralement le cas ?

16/27
SQL

Jointure

Natural join

Il est possible d’utiliser une natural join quand il existe des


attributs ayant le même nom dans les deux tables.
Simplifie les requêtes, il n’est plus nécessaire d’indiquer les
conditions de jointure

Format
SELECT *
FROM R1 natural join R2 ;

17/27
SQL

Jointure

Les deux requêtes sont équivalentes

SELECT *
FROM Inscription , Students
WHERE [Link] = [Link];

SELECT *
FROM Inscription natural join Students;

18/27
SQL

Renommage

Changer le nom de la colonne affiché dans un résultat

Associer des alias aux colonnes


SELECT A1 as nouveauNom, ... An
FROM R

select StudNb as NumEtu, NumEtu Nom Ville


Name as Nom, 1234 Martin Paris
12345 Garcia Orléans
City as Ville
from Students ;

19/27
SQL

Renommage

Renommage : les relations sont associées à des alias

Associer des alias aux relations


SELECT A1 ... An
FROM R r1 , R r2 ;
WHERE conditions de jointure;

Exemple 2
Information de tous les étudiants inscrits

select *
from Inscription s1 , Students s2
where [Link] = [Link];

20/27
SQL

Renommage

Requête sur la même table

Avec le renommage, il est possible d’avoir plusieurs fois la même


table dans la clause FROM, ce qui permet de répondre à certaines
requêtes :
Requête
Lister les couples d’étudiants qui habitent dans la même ville

City Name(1) Name (2)


SELECT [Link], [Link], [Link] Paris Martin Smith
FROM Student s1, Student s2 Orleans Garcia Dupont

WHERE [Link] = [Link];

21/27
SQL

Renommage

Quelques compléments de SQL

Des remarques sur SQL

22/27
SQL

Renommage

Les doublons

Suppression des doublons


Utilisation de l’instruction DISTINCT pour supprimer les doublons.

Lister les villes où habitent les étudiants


City
SELECT DISTINCT(City) Paris
FROM Student; Orleans

23/27
SQL

Renommage

L’ordre du résultat

Format
ORDER BY list of attributes

Usage
L’ordre est établi par rapport à la valeur d’un attribut.
Un deuxième attribut peut être utilisé pour résoudre les cas de
valeurs identiques et ainsi de suite.
Par défaut l’ordre est croissant mais nous pouvons demander
l’ordre décroissant avec l’instruction DESC.

24/27
SQL

Renommage

Exemple
Lister tous les numéro d’étudiants, les trier par leur nom
StudNb Name
1237 Dupont
select StudNB, Name
1236 Garcia
from Student
1234 Martin
order by Name;
1235 Smith

25/27
SQL

Renommage

Comparaison approximative de chaı̂nes

Format
SELECT A1, ..., An
FROM R
WHERE Ai LIKE pattern;

Pattern
Le pattern est une chaı̂ne de caractères qui peut contenir des
symboles spéciaux, à savoir :
% qui est un joker, remplace 0 ou plusieurs caractères.
remplace 1 seul caractère.
Nous pouvons aussi utiliser NOT LIKE

26/27
SQL

Renommage

Lister tous les noms d’étudiant dont le nom se termine par ’n’

SELECT distinct Name Name


FROM Students Martin
WHERE Name LIKE %n;

27/27

Vous aimerez peut-être aussi