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

Initiation Aux Bases de Données: Licence 1 MIASHS 2017-2018 Celine - Jost@

Transféré par

rickieleagueone
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)
11 vues31 pages

Initiation Aux Bases de Données: Licence 1 MIASHS 2017-2018 Celine - Jost@

Transféré par

rickieleagueone
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

Initiation aux bases de données

Licence 1 MIASHS
2017-2018
[email protected]
Dans la suite…

Comment les Applications


2. Modèle de données sont sur un 5. Cas pratique :
données relationnel organisées SGBD PostgreSQL

Comment les Langage pour


3. Algèbre requêtes sont écrire des 4. Langage SQL
relationnel structurées requêtes

07/03/2018 Initiation aux bases de données - L1 MIASHS 2


Structured Query Language, IBM, 1970

3. LE LANGAGE SQL

07/03/2018 Initiation aux bases de données - L1 MIASHS 3


Ressources

Exemple de livres numériques de P8 :

07/03/2018 Initiation aux bases de données - L1 MIASHS 4


Un peu d’histoire !

1970 SEQUEL (Structured English QUEry Language) développé par IBM

1975 SEQUEL officiellement renommé SQL

1986 Recommandation de l’ANSI (Institut de normalisation américaine)

1987 Norme internationale ISO

1999 Norme ISO/IEC 9075


2011

07/03/2018 Initiation aux bases de données - L1 MIASHS 5


Organisation du langage SQL

LDD LMD LCD


Langage de Langage de Langage de
Définition des Données Manipulation des Données Contrôle de Données

Créer une base de Insertion, modification,


données. suppression de Protection des
Modifier sa structure. données. données.
Supprimer la base. Extraction de données.

http://sql.sh/cours
07/03/2018 Initiation aux bases de données - L1 MIASHS 6
Fil rouge
GestionNotes

Coefficient
Etudiant
idCoef
valeur idE 1,1
1,1 prenom
#idCtrl

Matiere Controle Note

idM 1,1 idCtrl idN


nom 0, N nom 1,1 valeur
0,N
sujet #idCtrl
0, N 0, N
#idM #idE
date

07/03/2018 Initiation aux bases de données - L1 MIASHS 7


Requête de base

Quels sont les attributs à garder ?

SELECT [champs] Dans quelle(s) table(s)


s’effectue(nt) la requête ?
FROM [tables]

WHERE [condition]
Conditions permettant d’exprimer
; la nature de la requête.

Toujours un ; à la fin de la requête


pour la valider.

07/03/2018 Initiation aux bases de données - L1 MIASHS 8


La plus célèbre requête

SELECT *
FROM uneTable;

• * signifie
« tous les champs ».
• Cette requête affiche toutes les données
stockées dans la table uneTable.
• Permet d’avoir une bonne visibilité des
données.
Vous devez TOUJOURS avoir une bonne visibilité !!!

07/03/2018 Initiation aux bases de données - L1 MIASHS 9



÷ ρ

⋈ σ

× ∪
COMMENT EXPRIMER
- ∩
LES OPÉRATEURS ?

07/03/2018 Initiation aux bases de données - L1 MIASHS 10


Projection

÷
∏ ρ

SELECT c1, c2, …


⋈ σ
FROM nomTable

× ∪ ;

- ∩

07/03/2018 Initiation aux bases de données - L1 MIASHS 11


Renommage


÷ ρ SELECT c1 as
nouveauNom, c2, …
⋈ σ
FROM nomTable
× ∪
;
- ∩

07/03/2018 Initiation aux bases de données - L1 MIASHS 12


Sélection


÷ ρ
SELECT c1, c2, …

⋈ σ FROM nomTable

WHERE conditions
× ∪
;
- ∩

Conditions : =, <>, !=, >, <, >=, <=, AND, OR, NOT, IN, BETWEEN, LIKE, IS NULL, IS NOT NULL, …
07/03/2018 Initiation aux bases de données - L1 MIASHS 13
Union


÷ ρ
SELECT * FROM table1

⋈ σ UNION

SELECT * FROM table2


×
;
- ∩

UNION ALL permet d’afficher les doublons


07/03/2018 Initiation aux bases de données - L1 MIASHS 14
Intersection


÷ ρ
SELECT * FROM table1

⋈ σ INTERSECT

SELECT * FROM table2


× ∪
;
- ∩

07/03/2018 Initiation aux bases de données - L1 MIASHS 15


Différence


÷ ρ
SELECT * FROM table1

⋈ σ EXCEPT

SELECT * FROM table2


× ∪

-
;

Cette commande s’appelle MINUS dans d’autre SGBD.


07/03/2018 Initiation aux bases de données - L1 MIASHS 16
Produit cartésien


÷ ρ

SELECT *
⋈ σ
FROM table1, table2

× ∪ ;

- ∩

07/03/2018 Initiation aux bases de données - L1 MIASHS 17


Jointure

Jointure naturelle

÷ ρ
SELECT *

σ FROM table1

NATURAL JOIN table2


× ∪
;
- ∩

07/03/2018 Initiation aux bases de données - L1 MIASHS 18


Jointure

Thêta/équijointure

SELECT *
÷ ρ

FROM table1
σ
INNER JOIN table2

× ∪ ON condition

- ∩ ;

Exemple de condition : table1.id = table2.idT


Autres jointures : http://sql.sh/cours/jointures
07/03/2018 Initiation aux bases de données - L1 MIASHS 19
Division


÷ ρ

⋈ σ
Pas d’équivalent direct

× ∪

- ∩

Voyons les autres spécificités du langage SQL avant de réfléchir à la division.


07/03/2018 Initiation aux bases de données - L1 MIASHS 20
UTILISATION AVANCÉE

07/03/2018 Initiation aux bases de données - L1 MIASHS 21


Les fonctions
Agrégation

• MAX() : valeur maximum


• MIN() : valeur minimum SELECT fonction(champs)
as nomChamps
• COUNT() : nombre
d’élément FROM nomTable

• AVG() : moyenne ;
• SUM() : somme

Exemple : select prenom, AVG(select …) as moyenne from etudiant;


07/03/2018 Initiation aux bases de données - L1 MIASHS 22
Les fonctions
Chaîne de caractère

• UPPER() : majuscule
• LOWER() : minuscule
• LENGTH() : nombre de SELECT fonction(champs)
caractères as nomChamps

• TRIM() : suppression des FROM nomTable


espaces (début et fin)
• POSITION() : position d’une ;
sous-chaîne
• …

07/03/2018 Initiation aux bases de données - L1 MIASHS 23


Les fonctions
Mathématiques

• ABS() : valeur absolues


• COS() : cosinus
SELECT fonction(champs)
• SIN() : sinus as nomChamps
• FLOOR() : arrondi en
dessous FROM nomTable

• ROUND(): arrondi au plus ;


proche
• …

07/03/2018 Initiation aux bases de données - L1 MIASHS 24


Les fonctions
Dates et heures

• AGE() : âge calculé par la


différence entre deux dates
SELECT fonction(champs)
• CURRENT_DATE() : date as nomChamps
actuelle
• CURRENT_TIME() : heure FROM nomTable
actuelle
;
• NOW() : date et heure actuelle
• …

07/03/2018 Initiation aux bases de données - L1 MIASHS 25


Eliminer les doublons
concernant un champs

Etudiant
prénom
Alex
Alex
Eric
Sabine SELECT DISTINCT champs
Sabine
FROM nomTable
SELECT DISTINCT prénom
FROM Etudiant;
;
Etudiant
prénom
Alex
Eric
Sabine

07/03/2018 Initiation aux bases de données - L1 MIASHS 26


Eliminer les doublons
concernant un n-uplet entier

Etudiant
prénom moyenne
Alex 13,5
Alex 13,5 SELECT c1, c2, c3, …
Eric 17
Sabine 15,5 FROM nomTable
Sabine 15,5

SELECT prénom, moyenne
FROM Etudiant
GROUP BY prénom, GROUP BY c1
Etudiant
;
prénom moyenne
Alex 13,5
Eric 17
Sabine 15,5

07/03/2018 Initiation aux bases de données - L1 MIASHS 27


Conditions
utilisant les fonctions d’agrégation

Etudiant
prénom note
Alex 11,5
Alex 13,5
Alex 9,5
Martin 5 SELECT [champs]
Martin 11
FROM [tables]
GROUP BY champs
Martine 9,5
HAVING conditions
Léa 9,5 ;
SELECT prénom
From Etudiant
GROUP BY prénom
HAVING AVG(note) > 10;

Etudiant
prénom
Alex

07/03/2018 Initiation aux bases de données - L1 MIASHS 28


Classement du résultat
Etudiant
prénom
Marc
Sabine
Eric
SELECT [champs]
Alex

SELECT prénom FROM [tables]


From Etudiant
ORDER BY prénom ASC; …
ORDER BY champs ASC
Etudiant
;
prénom
Alex
Eric
Marc
Sabine
ASC : ascendant – DESC : descendant
07/03/2018 Initiation aux bases de données - L1 MIASHS 29
Sélection
d’un sous-ensemble

• LIMIT : nombre de n-uplets


maximum à renvoyer. SELECT [champs]
• OFFSET : numéro du n-
FROM [tables]
uplets à partir duquel on
commence la liste ORDER BY c1 DESC

LIMIT n1 OFFSET n2
→Le résultat est composé de n1 n-
;
uplets à partir du n2ème n-uplet du
résultat de base.

07/03/2018 Initiation aux bases de données - L1 MIASHS 30


La prochaine fois

• Suite du cours
• TP sur les requêtes SQL
• Retour sur les schémas relationnels du mini-projet
• Suite du cours

Nouvelle version du mini-projet à rendre avant lundi 12 mars 20h.


Ceux qui ne respectent pas les règles suivantes auront 0 :
• Le mini-projet doit se trouver dans un fichier PDF.
• Les titres doivent être ceux qui vous ont imposés avec la
numérotation qui a été imposée.
• Seul le schéma relationnel est autorisé sous forme d’une photo.

07/03/2018 Initiation aux bases de données - L1 MIASHS 31

Vous aimerez peut-être aussi