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

Introduction aux bases de données SQL

Le document présente une initiation aux bases de données relationnelles et au langage SQL, expliquant les concepts fondamentaux tels que les SGBD et SGBDR. Il détaille les commandes SQL pour la création de tables, l'insertion de données et la sélection d'informations, avec des exemples pratiques. Les instructions incluent également des opérations de sélection avancées et l'utilisation de fonctions pour manipuler les données.

Transféré par

Hassnae Daniba
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)
56 vues15 pages

Introduction aux bases de données SQL

Le document présente une initiation aux bases de données relationnelles et au langage SQL, expliquant les concepts fondamentaux tels que les SGBD et SGBDR. Il détaille les commandes SQL pour la création de tables, l'insertion de données et la sélection d'informations, avec des exemples pratiques. Les instructions incluent également des opérations de sélection avancées et l'utilisation de fonctions pour manipuler les données.

Transféré par

Hassnae Daniba
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

Bases de données

relationnelles &
langage SQL

Initiation aux bases de données

Bases de données relationnelles

 Une Base de Données (en anglais : Relational Database) est un


ensemble d’informations qui sont organisées et stockées dans
des fichiers selon un mode précis par un SGBD

 Système de gestion de base de données (SGBD):[En anglais:


Database Management System – DBMS]
Un SGBD est un logiciel qui regroupe des programmes pour la
gestion de bases de données (Organisation et stockage des
données, Extraction d’information à partir des données, …)

Initiation aux bases de données 2


Bases de données relationnelles

 Système de gestion de base de données relationnelles (SGBDR):


[En anglais: Relational Database Management System – RDBMS]
Un SGBDR est un SGBD dont les bases de données sont
relationnelles.

 Exemples de SGBDRs:
- MySQL
- Oracle
- IBM DB2
-…

Initiation aux bases de données 3

Langage SQL des SGBDR

 SQL (Structured Query Language) est le langage utilisé par les


SGBDRs pour la création, la manipulation et l’interrogation de
bases de données relationnelles.

 SQL offre des instructions pour :


- la création de tables
- l’insertion de lignes dans les tables
- la mise à jour des donnés de tables
-…

Initiation aux bases de données 4


SQL – Création de tables
NumMod NomMod
NumEt NomEt

Etudiant inscrit Module

DateNaiss
Note
ProfRes

But :
Professeur
Représenter dans des tables les
données relatives au déroulement
Bureau
des enseignement du semestre NumProf
NomProf Salaire
actuel.

Initiation aux bases de données 5

SQL – Création de tables


Chaque ligne de la table/relation "Etudiant" correspond à un étudiant.
Chaque étudiant a les attributs "NumEt" pour son numéro d’étudiant, "Nom" pour son
nom de famille, "Prenom" pour son prénom et "DateNaiss" pour sa date de naissance.
Ces attributs sont les colonnes de la table "Etudiant".

CREATE TABLE Etudiant( Le domaine d’un attribut


NumEt INTEGER, est l’ensemble des
valeurs possibles que
Nom VARCHAR(50), peut avoir cet attribut.
Prenom VARCHAR(80), Le domaine de l’attribut
DateNaiss DATE "NumEt" est l’ensemble
); des entiers positifs.

L’attribut "DateNaiss" est Le type "VARCHAR(80)"


déclaré de type "DATE" représente les chaînes de
caractères pouvant avoir
jusqu’à 80 caractères

Initiation aux bases de données 6


SQL – Création de tables

CREATE TABLE Professeur(


NumProf INTEGER,
NomProf VARCHAR(50),
Bureau VARCHAR(10),
Salaire FLOAT
)

Les attributs de la relation "Professeur" sont :


- "NumProf" : numéro d’un professeur
- "NomProf" : nom complet d’un professeur
- "Bureau" : numéro de bureau d’un professeur
- "Salaire" : salaire d’un professeur

Initiation aux bases de données 7

SQL – Création de tables

CREATE TABLE Module(


NumMod INTEGER,
NomMod VARCHAR(50),
NumProfRes INTEGER
)

Les attributs de la relation "Module" sont :


- "NumMod" : numéro d’un module
- "NomMod" : intitulé d’un module
- "NumProfRes" : numéro du professeur responsable d’un module

Initiation aux bases de données 8


SQL – Création de tables
NumMod NomMod
CREATE TABLE Module(
NumMod INTEGER,
NomMod VARCHAR(50), Module
NumProfRes INTEGER
)
ProfRes

CREATE TABLE Professeur( Professeur


NumProf INTEGER,
NomProf VARCHAR(50), Bureau
NumProf
Bureau VARCHAR(10), NomProf Salaire
Salaire FLOAT
)

Initiation aux bases de données 9

SQL – Création de tables


NumMod NomMod
NumEt NomEt

Etudiant inscrit Module

DateNaiss Note

Un étudiant peut être


CREATE TABLE Inscrit( inscrit dans plusieurs
NumEt INTEGER, modules.
Plusieurs étudiants
NumMod VARCHAR(15),
peuvent être inscrits à un
Note FLOAT module.
)

"Note" représente la note obtenue par l’étudiant qui a le numéro "NumEt" en le module
avec le numéro "NumMod".

Initiation aux bases de données 10


SQL – Insertion de données
etudiant
NumEt Nom prenom datenaiss

INSERT INTO etudiant


VALUES(50013, ‘Alili‘, ‘Ali’ , ‘2002-07-25’) ;

etudiant
NumEt Nom prenom datenaiss
50013 ‘Alili‘ ‘Ali’ ‘2002-07-25’

Initiation aux bases de données 11

SQL – Insertion de données

professeur
NumProf NomProf bureau salaire

INSERT INTO professeur


VALUES(3100, 'Ahmed Hamdi', 'E402', 50000) ;

professeur
NumProf NomProf bureau salaire
3100 'Ahmed 'E402' 50000.5
Hamdi'

Initiation aux bases de données 12


SQL – Insertion de données
professeur
NumProf NomProf bureau salaire
3100 'Ahmed Hamdi' 'E402' 50000.0

On peut aussi insérer


INSERT INTO professeur plusieurs lignes à la
VALUES(3101, 'Aicha Madihi', 'E403', 60000), fois avec une seule
(3102, 'Fadoua Malaki', 'F404', 70000.6) ; requête INSERT.

professeur
NumProf NomProf bureau salaire
3100 'Ahmed Hamdi' 'E402' 50000
3101 'Aicha Madihi' 'E403' 60000
3102 ‘Fadoua Malaki' 'E404' 70000.6

Initiation aux bases de données 13

SQL – Insertion de données


module
NumMod NomMod NumProfRes

INSERT INTO module VALUES


(570, 'XML', 3100),
(580, 'Java', 3100),
(590, ‘Prolog', 3102) ;

module
NumMod NomMod NumProfRes
570 'XML' 3100
580 'Java' 3100
590 'Prolog' 3102

Initiation aux bases de données 14


SQL – Insertion de données
etudiant module
NumEt ... NumMod ...
50013 ... 570 ...
50014 ... 580 ...
... ... ... ...

inscrit
INSERT INTO inscrit VALUES
NumEt NumMod Note
(50013, 570, NULL),
50013 570 NULL
(50014, 570, 13.5),
(50013, 580, 12.25); 50014 570 13.5
50013 580 12.25

Initiation aux bases de données 15

SQL – Sélection

Sélection de tous les tuples de la table "Etudiant"


(Sélection de tous les étudiants) :

SELECT *
FROM etudiant ;

ou, en précisant la liste de tous les attributs de la table


"Etudiant" :

SELECT numet, nom, prenom, datenaiss


FROM etudiant ;

Initiation aux bases de données 16


SQL – Sélection etudiant
NumEt Nom prenom datenaiss
50013 ‘Alili‘ ‘Ali’ ‘2002-07-25’
Sélection avec clause WHERE :
50014 'Bajaji' 'Mouna' ‘2000-11-19’

SELECT * On sélectionne de table


FROM etudiant "Etudiant" l’étudiant qui
WHERE numEt = 50013; a le numéro : 50013

Résultat :
NumEt Nom Prenom datenaiss
50013 ‘Alili‘ ‘Ali’ ‘2002-07-25’

Initiation aux bases de données 17

SQL – Sélection Professeur


NumProf NomProf bureau salaire
Sélection à partir de 3100 'Ahmed Hamdi' 'E402' 50000
plusieurs tables 3101 'Aicha Madihi' 'E403' 60000
Produit cartésien :
module
NumMod NomMod NumProfRes
SELECT *
FROM Module, Professeur ; 570 'XML' 3100
580 'Java' 3100
Produire toutes les combinaisons
possibles des lignes de "Module"
avec les lignes de "Professeur"
Module  Professeur

NumMod NomMod NumProfRes NumProf NomProf bureau salaire


570 'XML' 3100 3100 'Ahmed Hamdi' 'E402' 50000
570 'XML' 3100 3101 'Aicha Madihi' 'E403' 60000
580 'Java' 3100 3100 'Ahmed Hamdi' 'E402' 50000
580 'Java' 3100 3101 'Aicha Madihi' 'E403' 60000

Initiation aux bases de données 18


SQL – Sélection Professeur
NumProf NomProf bureau salaire
Sélection à partir de 3100 'Ahmed Hamdi' 'E402' 50000
plusieurs tables 3101 'Aicha Madihi' 'E403' 60000
module
Donner chaque module avec NumMod NomMod NumProfRes
les informations du 570 'XML' 3100
professeur responsable : 580 'Java' 3100
SELECT *
FROM Module, Professeur Module  Professeur
WHERE NumProfRes=NumProf;
NumProfRes= NumProf

NumMod NomMod NumProfRes NumProf NomProf bureau salaire


570 'XML' 3100 3100 'Ahmed Hamdi' 'E402' 50000
580 'Java' 3100 3100 'Ahmed Hamdi' 'E402' 50000

Initiation aux bases de données 19

SQL – Sélection Professeur


NumProf NomProf bureau salaire
3100 'Ahmed Hamdi' 'E402' 50000
3101 'Aicha Madihi' 'E403' 60000
Donner les numéros et les
3102 ‘Fadoua Malaki' ‘F404' 70000.6
intitulés des modules dont le
professeur responsable est module
'Fadoua Malaki' : NumMod NomMod NumProfRes
570 'XML' 3100
580 'Java' 3100
SELECT NumMod, NomMod
590 'Prolog' 3102
FROM Module, Professeur
WHERE NumProfRes=NumProf
AND NomProf=‘Fadoua Malaki';

NumMod NomMod
590 'Prolog'

Initiation aux bases de données 20


SQL – Sélection Professeur
NumProf NomProf bureau salaire
Renomage 3100 'Ahmed Hamdi' 'E402' 50000
3101 'Aicha Madihi' 'E403' 60000
Donner les numéros et les
3102 ‘Fadoua Malaki' ‘F404' 70000.6
intitulés des modules
(numero, intitule) dont le module
professeur responsable est NumMod NomMod NumProfRes
'Fadoua Malaki' : 570 'XML' 3100
580 'Java' 3100
SELECT NumMod AS numero,
590 'Prolog' 3102
NomMod AS intitule
FROM Module, Professeur
WHERE NumProfRes=NumProf
AND NomProf=‘Fadoua Malaki';

numero intitule
590 'Prolog'

Initiation aux bases de données 21

SQL – Sélection etudiant


NumEt Nom prenom datenaiss
DISTINCT 50013 ‘Alili‘ ‘Ali’ ‘2002-07-25’
50014 'Bajaji' 'Mouna' ‘2000-11-19’
Donner les différents
50015 'Hafidi' 'Hafid' ‘2003-01-01’
prénoms des étudiants (sans
50030 'Mjidi' 'Hafid' ‘2003-01-01’
redondance):

DISTINCT permet d’éviter les


SELECT DISTINCT prenom répétitions
FROM etudiant

prenom
'Ali'
'Mouna'
Hafid

Initiation aux bases de données 22


SQL – Sélection etudiant
NumEt Nom prenom datenaiss
Valeurs NULL 50013 ‘Alili‘ ‘Ali’ ‘2002-07-25’
50014 'Bajaji' 'Mouna' ‘2000-11-19’
Donner les étudiants
50015 'Hafidi' 'Hafid' ‘2003-01-01’
(NumEt, Nom, Prenom) qui
n’ont pas encore de note inscrit
dans le module avec numéro NumEt NumMod Note
570 : 50014 570 NULL
50013 570 13.5
SELECT e.NumEt, Nom, Prenom 50015 580 12.25
FROM etudiant e, inscrit i
WHERE e.NumEt=i.NumEt Le contraire de "IS NULL" est
AND NumMod=570 "IS NOT NULL"
AND note IS NULL

NumEt Nom prenom


50014 'Bajaji' 'Mouna'

Initiation aux bases de données 23

SQL – Sélection
Fonctions et opérateurs :
Professeur
NumProf NomProf bureau salaire
- MAX(), MIN(), AVG(), … 3100 'Ahmed Hamdi' 'E402' 50000
-,,,,,...
3101 'Aicha Madihi' 'E403' 60000
-… 3102 ‘Fadoua Malaki' ‘F404' 70000.6

Donner le salaire maximum


des salaires des professeurs :
SELECT MAX(salaire) AS salairemax
FROM Professeur ;

salairemax
70000.7

Initiation aux bases de données 24


SQL – Sélection
Fonctions et opérateurs :
Professeur
NumProf NomProf bureau salaire
- MAX(), MIN(), AVG(), …
3100 'Ahmed Hamdi' 'E402' 50000
- ,,,,,,... 3101 'Aicha Madihi' 'E403' 60000
3102 ‘Fadoua Malaki' ‘F404' 70000.6

Donner le salaire maximum


des salaires des professeurs :
SELECT AVG(salaire) AS salairemoyen
FROM Professeur ;

salairemoyen
70000.2

Initiation aux bases de données 25

SQL – Sélection
Fonctions et opérateurs :
Professeur
NumProf NomProf bureau salaire
3100 'Ahmed Hamdi' 'E402' 50000
3101 'Aicha Madihi' 'E403' 60000
3102 ‘Fadoua Malaki' ‘F404' 70000.6

Donner le nombre des


professeurs :
SELECT COUNT(*) AS nombreprofs
FROM Professeur ;

nombreprofs
3

Initiation aux bases de données 26


SQL – Sélection
Fonctions et opérateurs : etudiant
NumEt Nom prenom datenaiss
50013 ‘Alili‘ ‘Ali’ ‘2002-07-25’
Donner les étudiants 50014 'Bajaji' 'Mouna' ‘2000-11-19’
(NumEt, Nom, Prenom) qui 50015 'Hafidi' 'Hafid' ‘2003-01-01’
sont nés avant l’an 2002 :

SELECT NumEt, Nom, Prenom


FROM etudiant
WHERE YEAR(datenaiss) < 2002 ;

NumEt Nom prenom


50014 'Bajaji' 'Mouna'

Initiation aux bases de données 27

SQL – Sélection
Fonctions et
Professeur
opérateurs : NumProf NomProf bureau salaire
3100 'Ahmed Hamdi' 'E402' 50000
3101 'Aicha Madihi' 'E403' 60000
Donner les professeurs 3102 ‘Fadoua Malaki' ‘F404' 70000.6
dont le numéro de bureau
commence par 'E' :
SELECT *
FROM Professeur
WHERE bureau LIKE 'E%‘ ;

NumProf NomProf bureau salaire


3100 'Ahmed Hamdi' 'E402' 50000
3101 'Aicha Madihi' 'E403' 60000

Initiation aux bases de données 28


SQL – Sélection
Fonctions et opérateurs : etudiant
NumEt Nom prenom datenaiss
50013 ‘Alili‘ ‘Ali’ ‘2002-07-25’
Donner les étudiants qui 50014 'Bajaji' 'Mouna' ‘2000-11-19’
sont nés dans les années 50015 'Hafidi' 'Hafid' ‘2003-01-01’
allant de 2002 à 2003:
SELECT *
FROM etudiant
WHERE YEAR(datenaiss) = 2002
OR YEAR(datenaiss) = 2003;

NumEt Nom prenom datenaiss


50013 ‘Alili‘ ‘Ali’ ‘2002-07-25’
50015 'Hafidi' 'Hafid' ‘2003-01-01’

Initiation aux bases de données 29

SQL – Sélection
Fonctions et opérateurs : etudiant
NumEt Nom prenom datenaiss
50013 ‘Alili‘ ‘Ali’ ‘2002-07-25’
Donner les étudiants qui 50014 'Bajaji' 'Mouna' ‘2000-11-19’
sont nés dans les années 50015 'Hafidi' 'Hafid' ‘2003-01-01’
allant de 2002 à 2003:
SELECT *
FROM etudiant
WHERE YEAR(datenaiss) BETWEEN 2002 AND 2003;

NumEt Nom prenom datenaiss


50013 ‘Alili‘ ‘Ali’ ‘2002-07-25’
50015 'Hafidi' 'Hafid' ‘2003-01-01’

Initiation aux bases de données 30

Vous aimerez peut-être aussi