SQL : introduction
Achref El Mouelhi
Docteur de l’université d’Aix-Marseille
Chercheur en programmation par contrainte (IA)
Ingénieur en génie logiciel
[email protected]
H & H: Research and Training 1 / 22
Plan
1 Définitions
2 Mise en place
3 Type de données
H & H: Research and Training 2 / 22
Définitions
SQL
Une base de données (BD) I c
H
EL de données
Une base de données (DataBase) est un ensemble U
O des mémoires afin de
L
archivées, d’une façon bien organisée,Mdans
r e E
faciliter la consultation et la fmodification aux diverses applications
informatiques prévuesc h pour elles.
c A
H & H: Research and Training 3 / 22
Définitions
SQL
Un système de gestion de base de données (SGBD)
c
Les bases de données sont gérées par des logiciels spécialisés
E LHI
appelés systèmes de gestion de bases de données (DataBase
Management Systems) : U
L MO
f E
ajouter des nouvelles données
Ac hre
modifier ou supprimer des données existantes
c
gérer les utilisateurs (les rôles)
assurer la sécurité d’accès aux données...
H & H: Research and Training 4 / 22
Définitions
SQL
Plusieurs exemples en pratique
MySQL (Open Source)
c
SQL Server (Microsoft)
E LHI
Oracle (Oracle) U
L MO
Access (Microsoft)
f E
chre
c A
Sybase (Sybase puis SAP Company)
DB/2 (IBM)
PostgreSQL (Open Source)
...
H & H: Research and Training 5 / 22
Définitions
SQL
Caractéristiques de données
c
Grandes : dépassent dans certains cas la taille de la mémoire
I
ordinateur
EL H
Persistantes : ont une longueur M de vie
U
O indépendante de
l’exécution des programmes
f L
E qu’elles utilisent
Partagées : ch
r e
c A
il faut disposer de mécanismes d’autorisation d’accès
il faut disposer de mécanismes de contrôle de la concurrence
H & H: Research and Training 6 / 22
Définitions
Un système de gestion de base de données
Plusieurs types de modèles
Modèle hiérarchique
Modèle relationnel (SQL) c
E LHI
Modèle orienté objet
U
L
Modèle objet relationnel MO
f E
Modèle NoSQL hre
c
c A
H & H: Research and Training 7 / 22
Définitions
Un système de gestion de base de données
Plusieurs types de modèles
Modèle hiérarchique
Modèle relationnel (SQL) c
E LHI
Modèle orienté objet
U
L
Modèle objet relationnel MO
f E
Modèle NoSQL hre
c
c A
Ici
on s’intéresse au modèle relationnel
H & H: Research and Training 7 / 22
Définitions
SQL
Modèle relationnel
basé sur un concept connu en mathématiques : algèbre
relationnel
I c
en BD, une relation correspond à une table
L H
Edans
O
le concept relation a été repris par la U
suite plusieurs autres
disciplines telles que : L M
re f E
h
la théorie des graphes
c
c A artificielle
l’intelligence
H & H: Research and Training 8 / 22
Définitions
SQL
Modèle relationnel
basé sur un concept connu en mathématiques : algèbre
relationnel
I c
en BD, une relation correspond à une table
L H
Edans
O
le concept relation a été repris par la U
suite plusieurs autres
disciplines telles que : L M
re f E
h
la théorie des graphes
c
c A artificielle
l’intelligence
Tous les SGBDR utilisent le langage SQL pour interroger les bases de
données
H & H: Research and Training 8 / 22
Définitions
SQL
Définition
I c
SQL : Structured Query Language
EL H
U
introduit par IBM dans les années
L M70O
h r
basé sur la notion dee f Eêtes
requ
Acrelationnel (intersection, union, jointure...)
c èbre
utilise l’alg
H & H: Research and Training 9 / 22
Définitions
SQL
SQL
c
E LHI
U
L MO
f E
Langage
c hre
Langage Langage Langage Langage
de Définition
de Données c A de Manipulation
de Données
d’Interrogation
de Données
de Contrôle
de Données
de Contrôle
de Transaction
CREATE INSERT SELECT GRANT COMMIT
DROP DELETE REVOKE ROLLBACK
ALTER UPDATE
H & H: Research and Training 10 / 22
Définitions
SQL
Définitions de base
Une base de données est composée de plusieurs tables
Une table comporte plusieurs colonnes
I c
Chaque ligne d’une table est appelée tupleL H
E (n-uplet )
O U
Chaque table doit posséder une
L Mclé
E
ésf pour une table, on en choisit une et elle
S’il existe plusieursrcle
c h
c Aclé primaire
sera appelée
Une clé primaire est un ensemble de colonne minimale qui
identifie les tuples
Une colonne d’une table est dite clé étrangère si elle est clé
primaire dans une autre table
H & H: Research and Training 11 / 22
Définitions
SQL
Les propriétés A.C.I.D.
Atomicité : une transaction se fait au complet ou pas du tout.
c
LHI
Cohérence : chaque transaction amènera la base d’un état valide
E
U
MO
à un autre état valide.
f E L
Isolation : Toute transaction doit s’exécuter comme si elle était la
hre
seule sur le système. Ses modifications ne sont accessibles que
c
c A
lorsque la transaction a été validée.
Durabilité : Une fois la transaction validée, elle demeure
enregistrée même à la suite d’une panne ou autre.
H & H: Research and Training 12 / 22
Mise en place
SQL
Téléchargement et installation
I c
Aller sur le lien H
EL et choisir la
https://dev.mysql.com/downloads/mysql/ U
O d’exploitation
L Mème
r e E
version à télécharger selon le
ffichier
syst
A c h
Lancer l’installation du MSI sous windows (fichier pkg de
l’archivecDMG sous MAC)
H & H: Research and Training 13 / 22
Mise en place
SQL
Configuration
Ajouter le répertoire bin de MySQL (l’installation) au path de
Widows
I c
EL H
Dans la barre de recherche, chercher Système ensuite cliquer
U
MO ensuite dans
Paramètres système avancés
L
f E cliquer sur Nouvelle
Choisir Variables d’environnement
r e
Variables utilisateur
h
c nom de variable PATH et comme valeur le chemin
c A
Saisir comme
absolu du répertoire bin de MySQL
Sous MAC, il faut juste exécuter la commande echo ’export
PATH=/usr/local/mysql/bin:$PATH’ >> ∼/.profile
dans le terminal et le redémarrer
H & H: Research and Training 14 / 22
Mise en place
SQL
Connexion à MySQL
I c
H
Démarrer une console (invite de commandes ou Cmder)
ELselon vos données
U
MO
Ensuite il faut modifier la commande suivante
et l’exécuter : L
f E --user=root
r
mysql --host=localhost
h e
ou tout c
Ac
--password=motdepassetopsecret
simplement
mysql -h localhost -u root -p
H & H: Research and Training 15 / 22
Mise en place
SQL
Propriété
Le nom d’une base de données est sensible à la casse sur Unix et
pas sur Windows
c
LHI
Le noms dune table est sensible à la casse sur Unix et pas non
E
U
MO
sur Windows
f E L
c hre
c A
H & H: Research and Training 16 / 22
Mise en place
SQL
Propriété
Le nom d’une base de données est sensible à la casse sur Unix et
pas sur Windows
c
LHI
Le noms dune table est sensible à la casse sur Unix et pas non
E
U
MO
sur Windows
f E L
c hre
c A
Il vaut mieux considérer que MySQL est sensible à la casse
Pour la portabilité du code
Pour éviter des éventuels problèmes avec les langages de
programmation sensibles à la casse
H & H: Research and Training 16 / 22
Mise en place
SQL
c
E LHI
Documentation en français
U
http://sql.sh/ L MO
f E
c hre
c A
H & H: Research and Training 17 / 22
Type de données
SQL
Nombres entiers
INT : enregistré sur 4 octets (valeurs autorisées entre
-2147483648 et 2147483647)
I c
E
il existe plusieurs autres variations : TINYINT H
L(1 octet),
U
SMALLINT (2 octets), MEDIUMINT (3
L MOoctets) et BIGINT (8
entiers)
h r e fE
positifs c A c
l’attribut unsigned indique qu’on prend seulement les nombres
l’attribut zerofill indique le nombre de chiffre à afficher (par
exemple si ma valeur est 15 et si j’ai déclaré int(3) zerofill, il
affiche 015)
H & H: Research and Training 18 / 22
Type de données
SQL
Nombres décimaux
numeric et decimal acceptent deux paramètres (n, m) : n
c
étant le nombre de chiffre dont m après la virgule. En cas de
I
EL H
précision d’un seul paramètre, la valeur de m considérée sera 0
U
real et double n’acceptent pas de
L MOparamètres
r e
float peut aussi être Eé sans ou avec paramètre
futilis
c h
c etAdecimal sont stockés sous forme de chaı̂ne de
numeric
caractères
pour les autres une valeur approchée sera enregistrée (attention à
la comparaison)
H & H: Research and Training 19 / 22
Type de données
SQL
Chaı̂nes de caractères
I c
char et varchar : limités à 255 caractères.L H
E il faut indiquer le
U
nombre de caractère maximal
L MO
16
f Eoctets)
text (2 octets), tinytext
h r e
8
(2 octets), mediumtext (2 24
c255 caractères : pour enregistrer du texte
octets) ou longtext
A (2 32
c
dépassant les
H & H: Research and Training 20 / 22
Type de données
SQL
Les dates
I c
date : date (sous format année-mois-jour)
E L H
U
MO
time : heure (sous format heure-minute-seconde)
L
e fE
datetime : date et heure
h r
timestampA
c
c
01/01/1970
: nombre de secondes écoulées depuis le
H & H: Research and Training 21 / 22
Type de données
SQL
I c
Les énumérations
E L H
U
MO
enum ou set : pour définir une liste sport enum(”football”,
L
”tennis”, ”hockey”, ”volleyball”)
fE
c h r
types propres à MySQLe
c A
H & H: Research and Training 22 / 22