25
SQL : introduction Achref El Mouelhi Docteur de l’universit ´ e d’Aix-Marseille Chercheur en programmation par contrainte (IA) Ing ´ enieur en g ´ enie logiciel [email protected] 15 F ´ evrier 2017, H & H: Research and Training 1 / 22

SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

SQL : introduction

Achref El Mouelhi

Docteur de l’universite d’Aix-MarseilleChercheur en programmation par contrainte (IA)

Ingenieur en genie logiciel

[email protected]

15 Fevrier 2017, H & H: Research and Training 1 / 22

Page 2: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Plan

1 Definitions

2 Mise en place

3 Type de donnees

15 Fevrier 2017, H & H: Research and Training 2 / 22

Page 3: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Definitions

SQL

Une base de donnees (BD)

Une base de donnees (DataBase) est un ensemble de donneesarchivees, d’une facon bien organisee, dans des memoires afin defaciliter la consultation et la modification aux diverses applicationsinformatiques prevues pour elles.

15 Fevrier 2017, H & H: Research and Training 3 / 22

Page 4: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Definitions

SQL

Un systeme de gestion de base de donnees (SGBD)

Les bases de donnees sont gerees par des logiciels specialisesappeles systemes de gestion de bases de donnees (DataBaseManagement Systems) :

ajouter des nouvelles donnees

modifier ou supprimer des donnees existantes

gerer les utilisateurs (les roles)

assurer la securite d’acces aux donnees...

15 Fevrier 2017, H & H: Research and Training 4 / 22

Page 5: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Definitions

SQL

Plusieurs exemples en pratique

MySQL (Open Source)

SQL Server (Microsoft)

Oracle (Oracle)

Access (Microsoft)

Sybase (Sybase puis SAP Company)

DB/2 (IBM)

PostgreSQL (Open Source)

...

15 Fevrier 2017, H & H: Research and Training 5 / 22

Page 6: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Definitions

SQL

Caracteristiques de donnees

Grandes : depassent dans certains cas la taille de la memoireordinateur

Persistantes : ont une longueur de vie independante del’execution des programmes qu’elles utilisent

Partagees :

il faut disposer de mecanismes d’autorisation d’acces

il faut disposer de mecanismes de controle de la concurrence

15 Fevrier 2017, H & H: Research and Training 6 / 22

Page 7: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Definitions

Un systeme de gestion de base de donnees

Plusieurs types de modeles

Modele hierarchique

Modele relationnel (SQL)

Modele oriente objet

Modele objet relationnel

Modele NoSQL

Ici

on s’interesse au modele relationnel

15 Fevrier 2017, H & H: Research and Training 7 / 22

Page 8: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Definitions

Un systeme de gestion de base de donnees

Plusieurs types de modeles

Modele hierarchique

Modele relationnel (SQL)

Modele oriente objet

Modele objet relationnel

Modele NoSQL

Ici

on s’interesse au modele relationnel

15 Fevrier 2017, H & H: Research and Training 7 / 22

Page 9: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Definitions

SQL

Modele relationnel

base sur un concept connu en mathematiques : algebrerelationnel

en BD, une relation correspond a une table

le concept relation a ete repris par la suite dans plusieurs autresdisciplines telles que :

la theorie des graphes

l’intelligence artificielle

Tous les SGBDR utilisent le langage SQL pour interroger les bases dedonnees

15 Fevrier 2017, H & H: Research and Training 8 / 22

Page 10: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Definitions

SQL

Modele relationnel

base sur un concept connu en mathematiques : algebrerelationnel

en BD, une relation correspond a une table

le concept relation a ete repris par la suite dans plusieurs autresdisciplines telles que :

la theorie des graphes

l’intelligence artificielle

Tous les SGBDR utilisent le langage SQL pour interroger les bases dedonnees

15 Fevrier 2017, H & H: Research and Training 8 / 22

Page 11: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Definitions

SQL

Definition

SQL : Structured Query Language

introduit par IBM dans les annees 70

base sur la notion de requetes

utilise l’algebre relationnel (intersection, union, jointure...)

15 Fevrier 2017, H & H: Research and Training 9 / 22

Page 12: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Definitions

SQL

SQL

Langagede Definitionde Donnees

CREATE

DROP

ALTER

Langagede Manipulation

de Donnees

INSERT

DELETE

UPDATE

Langaged’Interrogation

de Donnees

SELECT

Langagede Controlede Donnees

GRANT

REVOKE

Langagede Controle

de Transaction

COMMIT

ROLLBACK

15 Fevrier 2017, H & H: Research and Training 10 / 22

Page 13: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Definitions

SQL

Definitions de base

Une base de donnees est composee de plusieurs tables

Une table comporte plusieurs colonnes

Chaque ligne d’une table est appelee tuple (n-uplet )

Chaque table doit posseder une cle

S’il existe plusieurs cles pour une table, on en choisit une et ellesera appelee cle primaire

Une cle primaire est un ensemble de colonne minimale quiidentifie les tuples

Une colonne d’une table est dite cle etrangere si elle est cleprimaire dans une autre table

15 Fevrier 2017, H & H: Research and Training 11 / 22

Page 14: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Definitions

SQL

Les proprietes A.C.I.D.

Atomicite : une transaction se fait au complet ou pas du tout.

Coherence : chaque transaction amenera la base d’un etat validea un autre etat valide.

Isolation : Toute transaction doit s’executer comme si elle etait laseule sur le systeme. Ses modifications ne sont accessibles quelorsque la transaction a ete validee.

Durabilite : Une fois la transaction validee, elle demeureenregistree meme a la suite d’une panne ou autre.

15 Fevrier 2017, H & H: Research and Training 12 / 22

Page 15: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Mise en place

SQL

Telechargement et installation

Aller sur le lienhttps://dev.mysql.com/downloads/mysql/ et choisir laversion a telecharger selon le systeme d’exploitation

Lancer l’installation du fichier MSI sous windows (fichier pkg del’archive DMG sous MAC)

15 Fevrier 2017, H & H: Research and Training 13 / 22

Page 16: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Mise en place

SQL

Configuration

Ajouter le repertoire bin de MySQL (l’installation) au path deWidows

Dans la barre de recherche, chercher Systeme ensuite cliquerParametres systeme avances

Choisir Variables d’environnement ensuite dansVariables utilisateur cliquer sur Nouvelle

Saisir comme nom de variable PATH et comme valeur le cheminabsolu du repertoire bin de MySQL

Sous MAC, il faut juste executer la commande echo ’exportPATH=/usr/local/mysql/bin:$PATH’ >> ∼/.profiledans le terminal et le redemarrer

15 Fevrier 2017, H & H: Research and Training 14 / 22

Page 17: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Mise en place

SQL

Connexion a MySQL

Demarrer une console (invite de commandes ou Cmder)

Ensuite il faut modifier la commande suivante selon vos donneeset l’executer :mysql --host=localhost --user=root--password=motdepassetopsecretou tout simplementmysql -h localhost -u root -p

15 Fevrier 2017, H & H: Research and Training 15 / 22

Page 18: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Mise en place

SQL

Propriete

Le nom d’une base de donnees est sensible a la casse sur Unix etpas sur Windows

Le noms dune table est sensible a la casse sur Unix et pas nonsur Windows

Il vaut mieux considerer que MySQL est sensible a la casse

Pour la portabilite du code

Pour eviter des eventuels problemes avec les langages deprogrammation sensibles a la casse

15 Fevrier 2017, H & H: Research and Training 16 / 22

Page 19: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Mise en place

SQL

Propriete

Le nom d’une base de donnees est sensible a la casse sur Unix etpas sur Windows

Le noms dune table est sensible a la casse sur Unix et pas nonsur Windows

Il vaut mieux considerer que MySQL est sensible a la casse

Pour la portabilite du code

Pour eviter des eventuels problemes avec les langages deprogrammation sensibles a la casse

15 Fevrier 2017, H & H: Research and Training 16 / 22

Page 20: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Mise en place

SQL

Documentation en francais

http://sql.sh/

15 Fevrier 2017, H & H: Research and Training 17 / 22

Page 21: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Type de donnees

SQL

Nombres entiers

INT : enregistre sur 4 octets (valeurs autorisees entre-2147483648 et 2147483647)

il existe plusieurs autres variations : TINYINT (1 octet),SMALLINT (2 octets), MEDIUMINT (3 octets) et BIGINT (8entiers)

l’attribut unsigned indique qu’on prend seulement les nombrespositifs

l’attribut zerofill indique le nombre de chiffre a afficher (parexemple si ma valeur est 15 et si j’ai declare int(3) zerofill, ilaffiche 015)

15 Fevrier 2017, H & H: Research and Training 18 / 22

Page 22: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Type de donnees

SQL

Nombres decimaux

numeric et decimal acceptent deux parametres (n, m) : netant le nombre de chiffre dont m apres la virgule. En cas deprecision d’un seul parametre, la valeur de m consideree sera 0

real et double n’acceptent pas de parametres

float peut aussi etre utilise sans ou avec parametre

numeric et decimal sont stockes sous forme de chaıne decaracteres

pour les autres une valeur approchee sera enregistree (attention ala comparaison)

15 Fevrier 2017, H & H: Research and Training 19 / 22

Page 23: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Type de donnees

SQL

Chaınes de caracteres

char et varchar : limites a 255 caracteres. il faut indiquer lenombre de caractere maximal

text (216 octets), tinytext (28 octets), mediumtext (224

octets) ou longtext (232 octets) : pour enregistrer du textedepassant les 255 caracteres

15 Fevrier 2017, H & H: Research and Training 20 / 22

Page 24: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Type de donnees

SQL

Les dates

date : date (sous format annee-mois-jour)

time : heure (sous format heure-minute-seconde)

datetime : date et heure

timestamp : nombre de secondes ecoulees depuis le01/01/1970

15 Fevrier 2017, H & H: Research and Training 21 / 22

Page 25: SQL : introduction · Ajouter le repertoire´ binde MySQL (l’installation) au path de Widows Dans la barre de recherche, chercher Syst`eme ensuite cliquer Param`etres syst `eme

Type de donnees

SQL

Les enumerations

enum ou set : pour definir une liste sport enum(”football”,”tennis”, ”hockey”, ”volleyball”)

types propres a MySQL

15 Fevrier 2017, H & H: Research and Training 22 / 22