Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours bases de données

Introduction à MySQL pas à pas

Introduction à MySQL pas à pas
Participez au vote ☆☆☆☆☆★★★★★

Initiation

au SGBD MySQL

Valérie Bellynck

INPG-EFPG, Maître de conférences en Informatique

LIG-GETALP

Où en est-on ? On a vu :

les modèles conceptuel et logique, l'algèbre relationnelle,

la construction des objets d'Access, la réalisation d'un base de données réaliste avec Access, la prise en compte des différents points de vue et tâches associés aux utilisateurs, avec quelques fois la fenêtre SQL (pour les requêtes, les formulaires ou les états)

Ce qu'on va voir :

une très courte introduction à la syntaxe du langage SQL, utilisé dans les serveurs MySQL le lien avec son utilisation dans des sites Web

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

27/09/11 10:01

  Introduction  <<  >>

SQL

("Structured Query Language" en anglais,

ce qui signifie Langage d'interrogation structuré , ou en simplifiant langage de requête) est un langage de définition et de manipulation de bases de données relationnelles ;

Il définit un standard qui a été normalisé (ANSI) ; chaque produit SQL réalise différement et plus ou moins strictement la norme .

MySQL

est un serveur de base de données exploitant un langage qui dérive directement de SQL,

en reprennant la syntaxe,

mais pas toutes les fonctionnalités (clés imbriquées, clés étrangères...)

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

27/09/11 10:01

Introduction

Historique de SQL

1970

découverte de l'algèbre relationnelle ( E.F.Codd)

jusqu'en 1977

SEQUEL (IBM)

-> SEQUEL/2 (serveur System/R d'IBM) 1981

Relational Software

Oracle (premier SGBD relationnel implémentant SQL) 1986 normalisation de SQL

-> SQL/86 1992 nombreuses améliorations -> modification de la norme

-> SQL/92 = SQL2

1999

Expressions rationnelles, requêtes récursives, déclencheurs, types non-scalaires et quelques fonctions orientées objet

-> SQL-99 ou SQL3 2003

fonctions pour la manipulation XML,« window functions », ordres standardisés et colonnes avec valeurs auto-produites

-> SQL:2003

La première version de SQL a été développée à IBM en premier en 1970 par Donald D. Chamberlin et Raymond F. Boyce. Cette version,d'origine était appelé SEQUEL, a été conçue pour manipuler et éditer des données emmagasinées dans la base de données relationel IBM : le Système R. le nom SEQUEL a été abandonné car c'est celui d'un système Pick.

En 1979, Relational Software, Inc. (actuellement Oracle Corporation) présenta la première version commercialement disponible de SQL, rapidement imité par d'autres fournisseurs. Malgré le succès du langage SQL qui a suivi, Edgar F. Codd dénoncera cet outil qu'il considère comme une interprétation incorrecte de ses théories.

SQL a été adopté comme recommandation par l'Institut de normalisation américaine (ANSI) en 1986, puis comme norme internationale par l'ISO en 1987 sous le nom de ISO/CEI 9075 - Technologies de l'information - Langages de base de données - SQL.

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

27/09/11 10:04

Introduction

Les sous-langages de SQL

LDD : Langage de Définition des Données

(DDL: Data Definition Language en anglais)

-> permet de créer, modifier ou supprimer les définitions des tables de la base de modifier la structure de la base de données

LMD : Langage de Manipulation des Données

(DML: Data Manipulation Language)

-> permet de manipuler les données dans les tables de consulter / modifier le contenu de la base de données LCD : Langage de Contrôle des Données

(DCL: Data Control Language)

-> permet de gérer les protections d'accès aux tables de gérer les privilèges, ie les droits des utilisateurs

LCT : Langage de Contrôle des Transactions

(TCL: Transaction Control Language)

-> permet de gérer les interruptions en cours de traitement et permettre de remettre la base de données dans un état cohérent de gérer les transactions, c'est-à-dire rendre automatique divers ordres enchaînés en séquence

SQL procédural,

dont PSM Persistent Stored Module, CLI Call Level Interface et SQL embarqué (Embedded SQL en anglais),

-> permet d'interfacer SQL avec des langages hôtes

exploiter un ensemble d'outils

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

27/09/11 10:05

MySQL pour le Web : Architecture 3-tiers

MySQL est très utilisé pour le développement de sites Web dynamique, et proposé par des hébergeurs gratuits comme free, lycos, OVH, ...

Mais il n'est pas le seul (postgreSQL, msql, SQLplus, ...) et peut être utilisé en dehors du context des sites Web.

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

27/09/11 10:05

La communication avec un serveur nécessite une phase de connexion, avec identifiant et mot de passe

Il existe en gros 3 niveaux de permission pour les utilisateurs :

les Administrateursles Concepteursles Utilisateurs peuvent agir sur

peuvent agir surpeuvent agir sur les bases de données, les structures des tables,les contenus des tables, et donc l'accès

et donc les colonneset donc les lignes et l'existence des tables

Chaque niveau exploite principalement un des sous-langages SQL

LCD, LCT,

LDDLMD

SQL procédural

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL

TOC

27/09/11 10:06

Tâches des Administrateurs

limiter le nombre de requêtes/mises-à-jour/connexions par jour et par utilisateur démarrer/arrêter le serveur créer/gérer les utilisateurs

accéder à toutes les tables, et bloquer l'utilisation de certaines tables sauver/restaurer tout ou partie des bases de données créer des processus pour automatiser des tâches

donc agir sur les tables

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

27/09/11 10:06

Tâches des Concepteurs / Réalisateurs

créer/supprimer des tables, et des tables temporaires

modifier leurs structures, dont changer de statut à des attributs (index) exécuter des processus donc agir sur les colonnes

Tâches des Utilisateurs / Visiteurs

voir le contenu des tables aux quelles ils sont autorisés, même sur plusieurs tables à la fois (jointures) ajouter/supprimer des valeurs à certaines tables

...

donc agir sur les lignes

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

Les utilisateurs et leurs niveaux de permission sont mémorisés par le serveur

dans une base de données parmi celles qu'il gère

drôle, non ?

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

Algèbre relationnelle

Rappels de vocabulaire

Domaine : ensemble de valeurs d’un même type, pouvant toutes caractériser/qualifier une propriété récurrente. Table relationnelle :  table à 2 dimensions, chaque colonne étant caractérisée par un nom.

Relation (Table relationnelle) : sous ensemble du produit cartésien d’une liste de domaines. Le résultat est un tableau à deux dimensions dont les colonnes correspondent aux domaines, et sont nommées, et dont les lignes contiennent des tuples.

Attribut :  une colonne d’une relation, caractérisé par un (son) nom. tUple :  liste des valeurs d’une ligne d’une table relationnelle.

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

Algèbre relationnelle

Les opérations de base

  Projection :  sélection d’un ou plusieurs attributs d’une relation.

Exemple : n’afficher que les colonnes Nom et Prenom d'une table Personnes.

  Jointure :  création d'une nouvelle relation à partir de 2 ou plusieurs autres

en prenant comme pivot 1 ou plusieurs attributs.

Exemple : concaténer deux tables d’adresses en fonction du nom de famille pour obtenir dans une seule table les informations provenant des 2 tables (c’est typiquement du recoupement de fichiers).

 Sélection :  sélection de tous les tuples ou bien seulement d'une partie en fonction de critères de sélection qui portent sur les valeurs des attributs.

Exemple : n’afficher que les lignes de la table Personnes qui vérifient la condition suivante : le nom ne commence pas par la lettre ‘C’.

Cette algèbre est facilement possible avec les commandes de MySQL

(SELECT FROM WHERE)

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

Types des données

Chaque attribut peut porter des valeurs d'un seul et même type.

Les types utilisables peuvent nécessiter plus ou moins de place en mémoire.

Pour pouvoir ajuster au plus près le type des données aux besoins des situations réelles, MySQL supporte des types très différents :

Nombre entier signé ou non (température, quantité commandée, âge)

Nombre à virgule (prix, taille)

Chaîne de caractères (nom, adresse, article de presse)

Date et heure (date de naissance, heure de parution)

Enumération (une couleur parmi une liste prédéfinie)

Ensemble (une ou des monnaies parmi une liste prédéfinie)

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

Types des données

Chaque attribut peut porter des valeurs d'un seul et même type.

Les types utilisables peuvent nécessiter plus ou moins de place en mémoire.

Pour pouvoir ajuster au plus près le type des données aux besoins des situations réelles, MySQL supporte des types très différents :

Nombre entier signé ou non (température, quantité commandée, âge)

Nombre à virgule (prix, taille)

Chaîne de caractères (nom, adresse, article de presse)

Date et heure (date de naissance, heure de parution)

Enumération (une couleur parmi une liste prédéfinie)

Ensemble (une ou des monnaies parmi une liste prédéfinie)

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

Exemple du type entier

  nom  borne inférieure  borne supérieure

  TINYINT  -128127

  TINYINT UNSIGNED  0255

  SMALLINT  -3276832767

  SMALLINT UNSIGNED  065535

  MEDIUMINT  -83886088388607

  MEDIUMINT UNSIGNED  016777215

  INT*  -21474836482147483647

  INT* UNSIGNED  04294967295

  BIGINT  -92233720368547758089223372036854775807

  BIGINT UNSIGNED  018446744073709551615

INTEGER est un synonyme de INT.

UNSIGNED permet d’avoir un type non signé.

ZEROFILL : remplissage des zéros non significatifs.

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

Exemple du type caractère

  nom  longueur

Chaîne de taille fixée à M, où 1<M<255, complétée avec des espaces si nécessaire.

Idem, mais insensible à la casse lors des tris et recherches.

Chaîne de taille variable, de taille maximum M, où 1<M<255, complété avec des espaces si nécessaire.

CHAR(M)

CHAR(M) BINARY

VARCHAR(M)

TINYTEXT

TEXT

MEDIUMTEXT

LONGTEXT

DECIMAL(M,D)

NUMERIC(M,D)

VARCHAR(M) BINARYIdem, mais insensible à la casse lors des tris et recherches.

Longueur maximale de 255 caractères.

Longueur maximale de 65535 caractères.

Longueur maximale de 16777215 caractères.

Longueur maximale de 4294967295 caractères.

Simule un nombre flottant de D chiffres après la virgule et de M chiffres au maximum. Chaque chiffre ainsi que la virgule et le signe moins (pas le plus) occupe un caractère.

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

Niveau Utilisateur agissant sur le contenu d'une table

(DELETE )

(INSERT )

(UPDATE )

SELECTINSERTUPDATEDELETE

SELECT `date` , `val`

FROM èssai`

LIMIT 0 , 30

et les autres... (FILE)

SELECT, INSERT, UPDATE, DELETE, FILE

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

Niveau Utilisateur agissant sur le contenu d'une table

(DELETE )

(INSERT )

(UPDATE )

SELECTINSERTUPDATEDELETE

SELECT `date` , `val`

FROM èssai`

LIMIT 0 , 30

et les autres... (FILE)

SELECT, INSERT, UPDATE, DELETE, FILE

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

Niveau Concepteur

agissant sur la structure d'une table

CREATE

CREATE TABLE èssai` (

(DROP )

`no` SMALLINT NOT NULLALTERDROP

AUTO_INCREMENT PRIMARY KEY ,

ALTER TABLE èssai` ADD `test` VARCHAR

`val` VARCHAR ( 32 ) NULL ,

( 64 ) NOT NULL AFTER `val` ;

`date` DATE NULL

) ENGINE = MYISAM ;

CREATE, ALTER, INDEX, DROP, CREATE TEMPORARY TABLES CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

Niveau Administrateur agissant sur les bases de données et les utilisateurs

 

(CREATE USER )

 

(SHOW DATABASES )

 

(LOCK TABLES )

CREATE USER  SHOW DATABASES  LOCK TABLES

SHOW DATABASES, LOCK TABLES, REFERENCES, REPLICATION CLIENT, REPLICATION SLAVE CREATE USER

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

Niveau Administrateur agissant sur le serveur lui-même

 

(SHUTDOWN )

 

(RELOAD )

 

(GRANT )

SHUTDOWN  RELOAD  GRANT

GRANT, SUPER, PROCESS, RELOAD, SHUTDOWN

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

phpMyAdmin

Pour les tâches de construction des bases de données en MySQL, généralement on utilise un ensemble de pages Web résultant de l'exécution de scripts en PHP.

phpMyAdmin est issu d'un développement "open source" (logiciels libre). Il permet de spécifier des requêtes MySQL en remplissant des formulaires HTML

Démo

Voir directement sur "site" chez l'hébergeur "free" :, sous le compte bfricottin ou "en local" phpMyAdmin sur mon ordi.

s'identifier -> connexion, 1 ou plusieurs BD, (+) nouvelle BD page de garde -> encodage + tri, aide MySQL en ligne choix d'une BD -> liste des tables, et accès à leur gestion choix d'un table -> présentation de sa structure, "

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

  Références  << (21 of 21)

Bibliographie

Des bases de données à l'Internet, Philippe Mathieu , Passeport pour l'informatique, Ed. Vuibert, 2000

Oracle SQL*Plus, Jonathan Gennick (traduction de Lionel Montmayeur), précis et concis, Ed. O'Reilly

Webographie

Remarque : il est très pratique d'utiliser wikipédia pour aborder un nouveau sujet, et s'en faire une idée assez précise. Par contre, il faut se méfier de la véracité des information qu'on y trouve :

d'une part, ce sont plus souvent des personnes en phase de construction de leur savoir qui participent, et moins des experts du domaine

d'autre part, beaucoup de contenus résultent de traduction de documents en anglais, et le vocabulaire n'est pas toujours constitué des termes choisis par les experts du le domaine.

[Valérie Bellynck], [11 octobre 2007] - Initiation à MySQL  TOC

Decouvrir ces documents

  • Cours php MyAdmin et MySQL : introduction aux bases

    Cours php MyAdmin et MySQL : introduction aux bases

  • Tutoriel avancé sur les bases du langage MySQL

    Tutoriel avancé sur les bases du langage MySQL

  • Introduction à la programmation web php mysql

    Introduction à la programmation web php mysql

  • Cours internet debutant

    Cours internet debutant

  • Document Introduction au PHP

    Document Introduction au PHP

  • EXCEL data entry tutorial

    EXCEL data entry tutorial

  • Introduction a l’economie circulaire

    Introduction a l’economie circulaire

  • Introduction au management des connaissances

    Introduction au management des connaissances

Articles connexes

  • Tuto Python : manipuler une base de donnée MySQL
  • Questionnaire MS Access -introduction
  • Comment faire une introduction pour une analyse de texte philosophique ?
  • TD ASRA: introduction à l'utilisation de pf avec correction
  • TD 8 : Introduction aux bases de données Le langage SQL
  • Exercice introduction aux systèmes de gestion de base de données
  • Comment rédiger un rapport de stage ?
  • Comment élaborer un rétroplanning commercial ?
  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02