MATIERES

BASES DE DONNES

Tout ce qui te faut pour devenir le meilleur en Bases de Données !

Bases de données

Toutes les leçons proposées

BASE DE DONNEES

Apprendre plus

LES PRINCIPALES REQUETES

Apprendre plus

LE LANGAGE SQL

Apprendre plus

OPERATEURS DE COMPARAISONS

Apprendre plus

DIFFERENTES CONSTRUCTIONS D'UN LIKE

Apprendre plus

UTILISATION DE FONCTIONS DE STATISTIQUES

Apprendre plus

TYPES DE JOINTURES

Apprendre plus

CREATION D'UNE BASE DE DONNEES

Apprendre plus
BASES DE DONNEES

BASE DE DONNEES

RETOUR AUX DIFFERENTES LECONS

Qu'est-ce que les Bases de données ?

Qu'est-ce que les Bases de données ?

MySQL

MySQL est un serveur de bases de données relationnelle, libre et open source, distribué sous licence GNU (GPL). Une Base de Données relationnelle est une Base de Données dans laquelle les informations sont placées dans des tableaux à deux dimensions appelés tables.

MySQL et PHP sont souvent utilisés ensemble et font partie des offres d'hébergement proposées par les hébergeurs de sites Web.

MySQL permet, au sein d'une même base, d'utiliser des moteurs différents pour différentes tables. Parmi les nombreux moteurs existants, on rencontre notamment les moteurs MyISAM, InnoDB, CSV...


CSV

CSV est un moteur qui utilise des fichiers textes au format CSV pour stocker les données.


phpMyAdmin

phpMyAdmin est un outil proposé par les hébergeurs (dans leurs offres d'hergement de sites web) qui permet de gérer facilement depuis le navigateur de l'internaute, à l'aide d'une interface graphique, les bases MySQL qui font partie de l'offre d'hébergement.


Créer et utiliser une base de données MySQL

Lorsque l'internaute envoie une requête HTTP à internet (quand il appelle une page web depuis son navigateur), internet transmet cette requête au serveur PHP de l'hébergeur qui héberge cette page. Le serveur PHP de l'hébergeur récupère alors la page correspondante. Si celle-ci est écrite en langage PHP, il la transforme en langage HTML avant de la renvoyer sinon il la renvoi telle quelle. Si le code PHP de la page contient des requêtes MySQL, le serveur PHP adresse ces requêtes au serveur MySQL concerné qui (selon la requête) écrit ou lit dans la base de données et renvoi au serveur PHP les données demandées. Le serveur PHP met alors la réponse sous forme HTML et l'envoie à l'internaute. Le schéma suivant illustre ce fonctionnement d'ensemble.

BASES DE DONNEES

LES PRINCIPALES REQUETES

RETOUR AUX DIFFERENTES LECONS

Les principales requêtes !

Quelles sont les principales requêtes ?

Pour obtenir la liste des tables :

SELECT nom_du_champ

FROM nom_table

Pour explorer une table :

SELECT nom_du_champ

FROM nom_table

Pour réaliser une jointure entre deux tables :

SELECT *

FROM nom_table

JOIN table ON table.id

Pour filtrer les données :

SELECT nom_du_champ

FROM nom_table

WHERE condition

Pour trier les résultats par ordre croissant :

SELECT colonne1, colonne2

FROM nom_table

ORDER BY colonne1 ASC ;

Pour trier les résultats par ordre décroissant :

SELECT colonne1, colonne2

FROM nom_table

ORDER BY colonne1 DESC ;

Pour obtenir la description d'une table :

DESC table ;

Création d’une table nommée « chaise » dans la base de données :

CREATE TABLE chaise

Suppression de la table :

DROP TABLE nom_table

Insertion d’un enregistrement dans une table :

INSERT INTO nom_table

VALUES ('valeur1', 'valeur2', ...)

Modification d’une ou plusieurs valeurs attributs :

UPDATE nom_table

SET nom_colonne1 = 'nouvelle valeur'

WHERE condition

Suppression d’un enregistrement dans une table :

DELETE FROM nom_table

WHERE condition

Sélection d’un ou plusieurs attributs dans une table :

SELECT nom_du_champ

FROM nom_table

Classification des données selon un ou plusieurs attributs :

SELECT colonne1, colonne2

FROM nom_table

ORDER BY colonne1

Suppression des doublons sur un attribut :

SELECT DISTINCT ma_colonne

FROM nom_table

Pour changer l’adresse mail de l’enregistrement dont l’id est 1 :

UPDATE nom_table

SET email ...

WHERE id=1

Jointure interne :

SELECT *

FROM table1

INNER JOIN table2 ON table1.id

Jointure externe :

SELECT *

FROM table1

[LEFT|RIGHT] OUTER JOIN table2 ON table1.id

Produit cartésien :

SELECT *

FROM table1

CROSS JOIN table2

Compter :

SELECT COUNT nom_colonne AS nom_colonne

FROM nom_table

WHERE condition

Ajouter :

SELECT SUM nom_colonne AS nom_colonne

FROM nom_table

Effectuer une moyenne :

SELECT AVG nom_colonne AS nom_colonne

FROM nom_table

Maximum et minimum :

SELECT MIN nom_colonne AS nom_colonne

MAX nom_colonne AS nom_colonne

FROM nom_table

BASES DE DONNEES

LE LANGAGE SQL

RETOUR AUX DIFFERENTES LECONS

Les requêtes SQL !

Quelles sont les requêtes SQL ?

Une requête SQL affiche les contenus de champs qui appartiennent à des tables pour les afficher selon certains critères.

SELECT ... FROM ...

Cette requête va sélectionner (SELECT) le champ "nom_du_champ" provenant (FROM) du tableau appelé "nom_du_tableau".

SELECT nom_du_champ

FROM nom_table

SELECT DISTINCT ...

Cette requête sélectionne le champ "ma_colonne" de la table "nom_du_tableau" en évitant de retourner des doublons.

SELECT DISTINCT ma_colonne

FROM nom_table

... AS ...

Cette requête permet de renommer le nom d'une colonne.

SELECT colonne1 AS c1, colonne2

FROM nom_table

... AS ...

Cette requête permet de renommer le nom d'une table.

SELECT *

FROM nom_table AS t1

WHERE ...

Cette requête permet d’extraire les lignes d’une base de données qui respectent une condition. Cela permet d’obtenir uniquement les informations désirées.

SELECT nom_du_champ

FROM nom_table

WHERE condition

Les opérateurs de comparaisons du WHERE sont ici !

WHERE ... AND ...

L’opérateur AND permet de s’assurer que la condition1 ET la condition2 sont vrai :

SELECT nom_colonnes

FROM nom_table

WHERE condition1 AND condition2

WHERE ... OR ...

L’opérateur OR vérifie que la condition1 OU la condition2 est vrai :

SELECT nom_colonnes

FROM nom_table

WHERE condition1 OR condition2

WHERE ... AND & OR ...

Ces opérateurs peuvent être combinés à l’infini ou mélangés. L’exemple ci-dessous filtre les résultats de la table "nom_table" si condition1 ET condition2 OU condition3 est vrai :

SELECT nom_colonnes

FROM nom_table

WHERE condition1 AND (condition2 OR condition3)

WHERE ... IN ...

Pour chercher toutes les lignes où la colonne "nom_colonne" est égale à ‘valeur1’ OU ‘valeur2’.

SELECT nom_colonne

FROM nom_table

WHERE nom_colonne IN (valeur1, valeur2, ...)

WHERE ... BETWEEN ...

Cette requête retourne toutes les lignes dont la valeur de la colonne "nom_colonne" sera comprise entre ‘valeur1’ et ‘valeur2’.

SELECT *

FROM nom_table

WHERE nom_colonne BETWEEN ‘valeur1’ AND ‘valeur2’

WHERE ... LIKE ...

Cette requête permet d’effectuer une recherche sur un modèle particulier. Il est par exemple possible de rechercher les enregistrements dont la valeur d’une colonne commence par telle ou telle lettre.

SELECT *

FROM nom_table

WHERE nom_colonne LIKE ‘modele’

Les différentes syntaxes du LIKE sont ici !

WHERE ... IS NULL

Pour filtrer les résultats où les champs d’une colonne sont à null :

SELECT *

FROM nom_table

WHERE nom_colonne IS NULL

WHERE ... IS NOT NULL

Pour filtrer les résultats et obtenir uniquement les enregistrements qui ne sont pas null :

SELECT *

FROM nom_table

WHERE nom_colonne IS NOT NULL

GROUP BY …

Cette requête permet de grouper plusieurs résultats et utiliser une fonction de totaux sur un groupe de résultat :

SELECT colonne1, nom_function(colonne2)

FROM nom_table

GROUP BY colonne1

Les autres fonctions de statistiques du GROUPE BY sont ici !

HAVING ...

Cette requête permet de SÉLECTIONNER les colonnes DE la table "nom_table" en GROUPANT les lignes qui ont des valeurs identiques sur la colonne "colonne1" et que la condition de HAVING soit respectée.

SELECT colonne1, SUM(colonne2)

FROM nom_table

GROUPE BY colonne1

HAVING fonction(colonne2) operateur valeur

ORDER BY ...

Cette requête permet de trier les lignes. Il est possible de trier les données sur une ou plusieurs colonnes, par ordre ascendant ou descendant.

SELECT colonne1, colonne2

FROM nom_table

ORDER BY colonne1 DESC/ASC

LIMIT ...

Cette requête est utilisée pour spécifier le nombre maximum de résultats que l’on souhaite obtenir. Cette requête est souvent associée à un OFFSET, c’est-à-dire effectuer un décalage sur le jeu dé résultat. Ces deux requête ne permettent pas exemple d’effectuer des système de pagination (récupérer les 10 articles de la page 4).

SELECT *

FROM nom_table

LIMIT 10

La requête LIMIT est souvent associée à un OFFSET, c’est-à-dire effectuer un décalage sur le jeu de résultat. Ces deux requête ne permettent pas exemple d’effectuer des système de pagination (récupérer les 10 articles de la page 4).

SELECT *

FROM nom_table

LIMIT 10 OFFSET 5

Le premier nombre est l’OFFSET tandis que le suivant est la limite.

SELECT *

FROM nom_table

LIMIT 5, 10

CASE ... WHEN ...

Cette requête permet d’utiliser des conditions de type "si / sinon" (if / else) similaire à un langage de programmation pour retourner un résultat disponible entre plusieurs possibilités. Le CASE peut être utilisé dans n’importe quelle instruction ou requête, telle que SELECT, UPDATE, DELETE, WHERE, ORDER BY ou HAVING.

Comparer une colonne à un set de résultat :

CASE a

WHEN 1 THEN ‘un’

WHEN 2 THEN ‘deux’

WHEN 3 THEN ‘trois’

ELSE ‘autre’

END

Élaborer une série de conditions booléennes pour déterminer un résultat :

CASE

WHEN a=b THEN ‘A égal à B’

WHEN a>b THEN ‘A supérieur à B’

ELSE ‘A inférieur à B’

END

... UNION ...

Cette commande permet de mettre bout-à-bout les résultats de plusieurs requêtes utilisant elles-mêmes la commande SELECT. C’est donc une commande qui permet de concaténer les résultats de deux requêtes ou plus. Pour l’utiliser, il est nécessaire que chacune des requêtes à concaténer retournes le même nombre de colonnes, avec les mêmes types de données et dans le même ordre.

SELECT * FROM table1

UNION

SELECT * FROM table2

... UNION ALL ...

Cette commande permet de concaténer les enregistrements de plusieurs requêtes, à la seule différence que cette commande permet d’inclure tous les enregistrements, même les doublons. Ainsi, si un même enregistrement est présent normalement dans les résultats des deux requêtes concaténées, alors l’union des deux avec UNION ALL retournera deux fois ce même résultat.

SELECT * FROM table1

UNION ALL

SELECT * FROM table2

... INTERSECT ...

Cette commande permet d’obtenir l’interdiction des résultats de deux requêtes. Cette commande permet donc de récupérer les enregistrements communs à deux requêtes. Cela peut s’avérer utile lorsqu’il faut trouver s’il y a des données similaires sur deux tables distinctes.

SELECT * FROM table1

INTERSECT

SELECT * FROM table2

... EXCEPT ...

Cette commande permet de récupérer les enregistrements de la première instruction sans inclure les résultats de la seconde requête. Si un même enregistrement devait être présent dans les résultats des deux syntaxes, ils ne seront pas présents dans le résultat final.

SELECT * FROM table1

EXCEPT

SELECT * FROM table2

INSERT INTO ...

Cette commande permet au choix d'inclure une seule ligne à la base existante ou plusieurs lignes d'un coup. Deux commandes possibles :

Insérer une ligne en indiquant les informations pour chaque colonne existante (en respectant l'ordre).

INSERT INTO nom_table

VALUES (‘valeur1’, ‘valeur2’...)

Insérer une ligne en spécifiant les colonnes que vous souhaiter compléter.

INSERT INTO nom_table

(nom_colonne1, nom_colonne2, ...)

VALUES (‘valeur1’, ‘valeur2’, ...)

ON DUPLICATE KEY UPDATE ...

Cette commande permet de mettre à jour des données lorsqu'un enregistrement existe déjà dans une table.

INSERT INTO nom_table (nom_col1, nom_col2, ...)

VALUES (‘valeur1’, ‘valeur2’, ...)

ON DUPLICATE KEY UPDATE nom_col1=nom_col1+val1

WHERE nom_colonne BETWEEN ‘valeur1’ AND ‘valeur2’

UPDATE ...

Cette commande permet d'effectuer des modifications sur des lignes existantes. Très souvent utilisée avec WHERE pour spécifier sur quelles lignes doivent porter la ou les modifications.

UPDATE nom_table

SET nom_colonne1=‘nouvelle_valeur’

WHERE condition

DELETE ...

Cette commande permet de supprimer des lignes dans une table. En utilisant WHERE, il est possible de sélectionner les lignes concernées qui seront supprimées.

DELETE FROM nom_table

WHERE condition

TRUNCATE TABLE ...

Cette commande permet de supprimer toutes les données d'une table sans supprimer la table en elle-même.

TRUNCATE TABLE nom_table

DROP DATABASE ...

Cette commande permet de supprimer totalement une base de données et tout ce qu'elle contient. Attention, cela va supprimer toutes les tables et toutes les données de cette base.

DROP DATABASE ma_base

CREATE DATABASE ...

Cette commande permet de créer une base de données qui sera appelé "ma_base".

CREATE DATABASE ma_base

L'option IF NOT EXISTS permet juste de ne pas retourner d'erreur si une base du même nom existe déjà. La base de données ne sera pas écrasée.

CREATE DATABASE IF NOT EXISTS ma_base

DROP TABLE ...

Cette commande permet de supprimer définitivement une table d'une base de données. Cela supprime en même temps les éventuels index, trigger, contraintes et permissions associées à cette table.

DROP TABLE nom_table

CREATE TABLE ...

Cette commande permet de créer une table SQL.

CREATE TABLE nom_de_la_table

(

colonne1 type_donnees,

colonne2 type_donnees,

colonne3 type_donnees,

colonne4 type_donnees

)

Le mot-clé ‘type_donnees’ sera à remplacé par un mot-clé pour définir le type de données (INT, DATE; TEXT...).

ALTER TABLE ...

Cette commande permet de modifier une table existante. Il est ainsi possible d'ajouter une colonne, d'en supprimer une ou de modifier une colonne existante, par exemple pour changer le type.

ALTER TABLE nom_table

instruction

Ajouter une colonne.

ALTER TABLE nom_table

ADD nom_colonne type_donnees

Supprimer une colonne.

ALTER TABLE nom_table

DROP nom_colonne

Modifier une colonne.

ALTER TABLE nom_table

MODIFY nom_colonne

Renommer une colonne.

ALTER TABLE nom_table

CHANGE col_ancien_nom col_new_nom type_donnees

MERGE ...

Cette commande permet d'insérer ou de mettre à jour des données dans une table.

MERGE INTO table1

USING table_reference

ON (conditions)

WHEN MATCHED THEN

UPDATE SET table1.colonne1 = valeur1, table1.colonne2 = valeur2

DELETE WHERE conditions2

WHEN NOT MATCHED THEN

INSERT (colonnes1, colonne3)

VALUES (valeur1, valeur3)

Voici les explications détaillées de cette requête :

• MERGE INTO permet de sélectionner la table à modifier

• USING et ON permet de lister les données sources et la condition de correspondance

• WHEN MATCHED permet de définir la condition de mise à jour lorsque la condition est vérifiée

• WHEN NOT MATCHED permet de définir la condition d’insertion lorsque la condition n’est pas vérifiée

BASES DE DONNEES

OPERATEURS DE COMPARAISONS

RETOUR AUX DIFFERENTES LECONS

Les opérateurs de comparaisons !

Quels sont les opérateurs de comparaisons ?

OPERATEURS

DESCRIPTION

=

Égale

<>

Pas égale

!=

Pas égale

>

Supérieur

<

Inférieur

<=

Supérieur ou égale

>=

Inférieur ou égale

IN

Liste de plusieurs valeurs possibles

BETWEEN

Valeur comprise dans un intervalle donnée (utile pour les nombres ou dates)

LIKE

Recherche en spécifiant le début, milieu ou fin d'un mot

IS NULL

Valeur est nulle

IS NOT NULL

Valeur n'est pas nulle

BASES DE DONNEES

DIFFERENTES CONSTRUCTIONS D'UN LIKE

RETOUR AUX DIFFERENTES LECONS

Les différentes constructions d'un LIKE !

Quels sont les différentes constructions d'un LIKE ?

Dans l’exemple ci-dessus, le « modele » n’a pas été défini, mais il ressemble très généralement à l’un des exemple suivants.

MODELE

DESCRIPTION

LIKE ‘%a’

Permet de rechercher toutes les chaines de caractère qui se termine par "a".

LIKE ‘a%’

Permet de rechercher toutes les lignes de "colonne" qui commence par "a".

LIKE ‘%a%’

Permet de rechercher tous les enregistrement qui utilisent le caractère "a".

LIKE ‘pa%on’

Permet de rechercher les chaines qui commence par "pa" et qui se termine par "on", comme "pantalon" ou "pardon".

LIKE ‘a_c’

Permet de remplacer n’importe quel caractère, mais un seul caractère uniquement (alors que le symbole "%" peut être remplacé par un nombre incalculable de caractères, ainsi, ce modèle permet de retourner les lignes "aac", "abc" ou "azc".

BASES DE DONNEES

UTILISATION DE FONCTIONS DE STATISTIQUES

RETOUR AUX DIFFERENTES LECONS

Utilisation de fonctions de statistiques !

Utilisation de fonctions de statistiques (GROUP BY) ?

Il existe plusieurs fonctions qui peuvent être utilisées pour manipuler plusieurs enregistrements, il s’agit des fonctions d’agrégations statiques, les principales sont les suivantes. Ces petites fonctions se révèlent rapidement indispensables pour travailler sur des données.

FONCTIONS

DESCRIPTION

AVG()

Permet de calculer la moyenne d’un set de valeur.

Permet de connaitre le prix du panier moyen pour chaque client.

COUNT()

Permet de compter le nombre de lignes concernées.

Permet de savoir combien d’achats a été effectué par chaque client.

MAX()

Permet de récupérer la plus haute valeur.

Pratique pour savoir l’achat le plus cher.

MIN()

Permet de récupérer la plus petite valeur.

Permet par exemple de connaitre la date du premier achat d’un client.

SUM()

Permet de calculer la somme de plusieurs lignes.

Permet par exemple de connaitre le total de tous les achat d’un client.

BASES DE DONNEES

TYPES DE JOINTURES

RETOUR AUX DIFFERENTES LECONS

Les types de jointures !

Quelles sont les types de jointures ?

Les jointures en SQL permettent d’associer plusieurs tables dans une même requête. Cela permet d’exploiter la puissance des bases de données relationnelles pour obtenir des résultats qui combinent les données de plusieurs tables de manière efficace.

Il y a plusieurs méthodes pour associer deux tables ensemble. Voici la liste des différentes techniques qui sont utilisées :

METHODE

DESCRIPTION

INNER JOIN

Jointure interne pour retourner les enregistrements quand la condition est vraie dans les deux tables.

CROSS JOIN

Jointure croisée permettant de faire le produit cartésien de deux tables. Elle permet de joindre chaque lignes d’une table avec chaque lignes d’une seconde table.

LEFT JOIN

LEFT OUTER JOIN

Jointure externe pour retourner tous les enregistrement de la table de gauche même si la condition n’est pas vérifiée dans l’autre table.

RIGHT JOIN

RIGHT OUTER JOIN

Jointure externe pour retourner tous les enregistrements de la table de droite même si la condition n’est pas vérifiée dans l’autre table.

FULL JOIN

FULL OUTER JOIN

Jointure externe pour retourner les résultats quand la condition est vraie dans au moins une des deux tables.

SELF JOIN

Permet d’effectuer une jointure d’une table avec elle-même comme si c’était une autre table.

NATURAL JOIN

Jointure naturelle entre deux tables s’il y a au moins une colonne qui porte le même nom entre les deux tables SQL.

UNION JOIN

Jointure d’union.

INNER JOIN ...

Cette commande permet de lier plusieurs tables entre-elles. Elle retourne les enregistrements lorsqu'il y a au moins une ligne dans chaque colonne qui correspond à la condition.

SELECT *

FROM table1

INNER JOIN table2 ON table1.id = table2.fk_id

La syntaxe stipule qu’il faut sélectionner les enregistrements des tables table1 et table2 lorsque les données de la colonne « id » de table1 est égal aux données de la colonne fk_id de table2.

CROSS JOIN ...

Cette commande permet de retourner le produit cartésien. Autrement dit, cela permet de retourner chaque ligne d’une table avec chaque ligne d’une autre table.

SELECT *

FROM table1

CROSS JOIN table2

Méthode alternative pour retourner les mêmes résultats.

SELECT *

FROM table1, table2

LEFT JOIN ...

Cette commande permet de lister tous les résultats de la table de gauche (left = gauche) même s’il n’y a pas de correspondance dans la deuxième tables.

SELECT *

FROM table1

LEFT JOIN table2 ON table1.id = table2.fk_id

RIGHT JOIN ...

Cette commande permet de retourner tous les enregistrements de la table de droite (right = droite) même s’il n’y a pas de correspondance avec la table de gauche.

SELECT *

FROM table1

RIGHT JOIN table2 ON table1.id = table2.fk_id

FULL JOIN ...

Cette commande permet de faire une jointure entre 2 tables. L’utilisation de cette commande permet de combiner les résultats des 2 tables, les associer entre eux grâce à une condition et remplir avec des valeurs NULL si la condition n’est pas respectée.

SELECT *

FROM table1

FULL JOIN table2 ON table1.id = table2.fk_id

SELF JOIN ...

Cette commande permet de faire une jointure d'une table avec elle-même.

SELECT ‘t1’.‘nom_colonne1’, ‘t1’.‘nom_colonne2’, ‘t2’.‘nom_colonne1’, ‘t2’.‘nom_colonne2’

FROM ‘table’ as ‘t1’

FULL JOIN ‘table’ as ‘t2’ ON ‘t2’.‘fk_id’ = ‘t1’.‘id’

NATURAL JOIN ...

Cette commande permet de faire une jointure naturelle entre 2 tables. Cette jointure s’effectue à la condition qu’il y ai des colonnes du même nom et de même type dans les 2 tables.

SELECT *

FROM table1

NATURAL JOIN table2

BASES DE DONNÉES

CREATION D'UNE BASE DE DONNEES

RETOUR AUX DIFFERENTES LECONS

Création d'une base de données !

Création d'une base de données !

Quel est la procédure à suivre pour créer une base de données MySQL ?

MySQL est un système de gestion de bases de données relationnelles (SGBDR) open source. Ce SGBDR d’Oracle est basé sur le langage SQL (Structured Query Language) et fonctionne sur pratiquement toutes les plates-forme, comme Linux, UNIX et Windows.

MySQL est basé sur un modèle client-serveur, où le serveur MySQL gère toutes les instructions. Le but originel de ce système de gestion de base de données relationnelle est d’administrer efficacement de grandes bases de données.

De nombreux sites et applications web connus utilisent MySQL, tel que Facebook, Twitter ou encore YouTube.

1. CRÉER UNE BASE DE DONNÉES MySQL

Apprendre plus

2. UTILISATION DE FICHIERS DE SCRIPT SQL

Apprendre plus

3. SUPPRIMER LES TABLES ET BDD MySQL

Apprendre plus
BASE DE DONNÉES

COMMENT CRÉER UNE BASE DE DONNÉES MySQL

RETOUR AUX DIFFERENTES LECONS

Création d'une base de données MySQL !

Comment créer une base de données MySQL ?

Pour créer des bases de données et des utilisateurs MySQL, voici la procédure à suivre :

En ligne de commande, connectez-vous à MySQL en tant qu'utilisateur root :

> mysql -u racine -p

Saisissez le mot de passe MySQL root, puis appuyez sur Entrée.
Pour créer un utilisateur de base de données, tapez la commande suivante. Remplacez le nom d'utilisateur par l'utilisateur que vous voulez créer, et remplacez le mot de passe par celui de l'utilisateur :

> GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';

Cette commande accorde à l'utilisateur tous les privilèges. Cependant, vous pouvez accorder des privilèges spécifiques pour maintenir un contrôle précis sur l'accès à la base de données.

Tapez \q pour quitter le programme mysql.
Pour vous connecter à MySQL en tant qu'utilisateur que vous venez de créer, tapez la commande suivante. Remplacez le nom d'utilisateur par le nom de l'utilisateur que vous avez créé à l'étape 3 :

> mysql -u nom d'utilisateur -p

Saisissez le mot de passe de l'utilisateur, puis appuyez sur Entrée.
Pour créer une base de données, tapez la commande suivante. Remplacez dbname par le nom de la base de données que vous voulez créer :

> CREATE DATABASE dbname;

Pour travailler avec la nouvelle base de données, tapez la commande suivante. Remplacez dbname par le nom de la base de données que vous avez créée à l'étape 7 :

> USE dbname;

Vous pouvez maintenant travailler avec la base de données. Par exemple, les commandes suivantes montrent comment créer une table de base nommée exemple, et comment y insérer des données :

> CREATE TABLE example ( id smallint unsigned not null auto_increment, name varchar(20) not null, constraint pk_example primary key (id) );

> INSERT INTO example ( id, name ) VALUES ( null, 'Sample data' );

BASE DE DONNÉES

UTILISATION DE FICHIERS DE SCRIPT SQL

RETOUR AUX DIFFERENTES LECONS

Utilisation de fichiers de script SQL !

Comment utiliser des fichiers de script SQL ?

Vous avez appris à créer et remplir une base de données MySQL en tapant chaque commande de manière interactive avec le programme MySQL. Cependant, vous pouvez aussi combiner les commandes dans un fichier script SQL. Voici la procédure à suivre :

Créez un utilisateur pour la base de données. Pour ce faire, tapez les commandes suivantes :

> mysql -u root -p

> GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';

> \q \q

Créez un fichier nommé example.sql et ouvrez-le dans un éditeur de texte. Copiez et collez le texte suivant dans le fichier :

> CREATE DATABASE dbname;

> USE dbname;

> CREATE TABLE tablename ( id smallint unsigned not null auto_increment, name varchar(20) not null, constraint pk_example primary key (id) );

> INSERT INTO tablename ( id, name ) VALUES ( null, 'Sample data' );

Remplacez dbname par le nom de la base de données que vous voulez créer, et tablename par le nom de la table que vous voulez créer.

Vous pouvez modifier l'exemple de fichier script pour créer plusieurs bases de données et tables à la fois. De plus, l'exemple de script crée un tableau très simple. Vous aurez probablement besoin de données supplémentaires pour vos tableaux.

Sauvegardez les modifications apportées au fichier exemple.sql et quittez l'éditeur de texte.
Pour traiter le script SQL, tapez la commande suivante. Remplacez le nom d'utilisateur par le nom de l'utilisateur que vous avez créé à l'étape 1 :

> mysql -u username -p < example.sql

Le programme mysql traite le fichier script instruction par instruction. Lorsqu'elle est terminée, la base de données et la table sont créées et la table contient les données que vous avez spécifiées dans les instructions SELECT.

BASE DE DONNÉES

SUPPRIMER LES TABLES ET BASES DE DONNÉES MySQL

RETOUR AUX DIFFERENTES LECONS

Supprimer les tables et bases de données MySQL !

Supprimer les tables et bases de données MySQL ?

Pour créer des bases de données et des utilisateurs MySQL, voici la procédure à suivre :

Pour supprimer une table, tapez la commande suivante dans mysql> prompt. Remplacez tablename par le nom de la table que vous voulez supprimer :

> DROP TABLE tablename;

Cette commande suppose que vous avez déjà sélectionné une base de données en utilisant l'instruction USE.
De même, pour supprimer une base de données entière, tapez la commande suivante dans mysql> prompt. Remplacez dbname par le nom de la base de données que vous voulez supprimer :

> DROP DATABASE dbname;

Le programme mysql ne demande pas de confirmation lorsque vous utilisez cette commande. Dès que vous appuyez sur Entrée, MySQL supprime la base de données et toutes les données qu'elle contient. :

Delete MySQL Users

Pour afficher une liste de tous les utilisateurs, tapez la commande suivante dans mysql> prompt :

> SELECT user FROM mysql.user GROUP BY user;

Pour supprimer un utilisateur spécifique, tapez la commande suivante dans mysql> prompt. Remplacez le nom d'utilisateur par le nom de l'utilisateur que vous voulez supprimer :

> DELETE FROM mysql.user WHERE user ='username';