MySQL Tutoriel
Démarrer avec MySQL
Recherche…
Remarques
MySQL est un système de gestion de base de données relationnelle (SGBDR) open source développé et pris en charge par Oracle Corporation.
MySQL est pris en charge sur un grand nombre de plates-formes, y compris les variantes Linux, OS X et Windows. Il possède également des API pour un grand nombre de langages, notamment C, C ++, Java, Lua, .Net, Perl, PHP, Python et Ruby.
MariaDB est un fork de MySQL avec un ensemble de fonctionnalités légèrement différent . Il est entièrement compatible avec MySQL pour la plupart des applications.
Versions
Version | Date de sortie |
---|---|
1.0 | 1995-05-23 |
3.19 | 1996-12-01 |
3.20 | 1997-01-01 |
3.21 | 1998-10-01 |
3.22 | 1999-10-01 |
3.23 | 2001-01-22 |
4.0 | 2003-03-01 |
4.1 | 2004-10-01 |
5.0 | 2005-10-01 |
5.1 | 2008-11-27 |
5.5 | 2010-11-01 |
5.6 | 2013-02-01 |
5.7 | 2015-10-01 |
Commencer
Créer une base de données dans MySQL
CREATE DATABASE mydb;
Valeur de retour:
Requête OK, 1 ligne affectée (0.05 sec)
Utiliser la base de données créée mydb
USE mydb;
Valeur de retour:
Base de données modifiée
Créer une table dans MySQL
CREATE TABLE mytable
(
id int unsigned NOT NULL auto_increment,
username varchar(100) NOT NULL,
email varchar(100) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE mytable
va créer une nouvelle table appelée mytable
.
id int unsigned NOT NULL auto_increment
crée la colonne id
, ce type de champ assignera un identifiant numérique unique à chaque enregistrement de la table (ce qui signifie que deux lignes ne peuvent pas avoir le même id
dans ce cas), MySQL affectera automatiquement une nouvelle valeur unique dans le champ id
l'enregistrement (commençant par 1).
Valeur de retour:
Requête OK, 0 lignes affectées (0.10 sec)
Insérer une ligne dans une table MySQL
INSERT INTO mytable ( username, email )
VALUES ( "myuser", "[email protected]" );
Exemple de valeur de retour:
Requête OK, 1 ligne affectée (0.06 sec)
Les strings
varchar
aka peuvent également être insérées en utilisant des guillemets simples:
INSERT INTO mytable ( username, email )
VALUES ( 'username', '[email protected]' );
Mise à jour d'une ligne dans une table MySQL
UPDATE mytable SET username="myuser" WHERE id=8
Exemple de valeur de retour:
Requête OK, 1 ligne affectée (0.06 sec)
La valeur int
peut être insérée dans une requête sans guillemets. Les chaînes et les dates doivent être entre guillemets simples '
ou des guillemets doubles "
.
Supprimer une ligne dans une table MySQL
DELETE FROM mytable WHERE id=8
Exemple de valeur de retour:
Requête OK, 1 ligne affectée (0.06 sec)
Cela supprimera la ligne ayant l' id
est 8.
Sélection de lignes en fonction des conditions dans MySQL
SELECT * FROM mytable WHERE username = "myuser";
Valeur de retour:
+----+----------+---------------------+
| id | username | email |
+----+----------+---------------------+
| 1 | myuser | [email protected] |
+----+----------+---------------------+
1 rangée dans l'ensemble (0.00 sec)
Afficher la liste des bases de données existantes
SHOW databases;
Valeur de retour:
+-------------------+
| Databases |
+-------------------+
| information_schema|
| mydb |
+-------------------+
2 lignes dans l'ensemble (0.00 sec)
Vous pouvez penser à "information_schema" comme une "base de données principale" qui donne accès aux métadonnées de la base de données.
Afficher les tables dans une base de données existante
SHOW tables;
Valeur de retour:
+----------------+
| Tables_in_mydb |
+----------------+
| mytable |
+----------------+
1 rangée dans l'ensemble (0.00 sec)
Afficher tous les champs d'une table
DESCRIBE databaseName.tableName;
ou, si vous utilisez déjà une base de données:
DESCRIBE tableName;
Valeur de retour:
+-----------+----------------+--------+---------+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+----------------+--------+---------+-------------------+-------+
| fieldname | fieldvaluetype | NO/YES | keytype | defaultfieldvalue | |
+-----------+----------------+--------+---------+-------------------+-------+
Extra
peut contenir auto_increment
par exemple.
Key
fait référence au type de clé pouvant affecter le champ. Primaire (PRI), Unique (UNI) ...
n rangée dans l'ensemble (0.00 sec)
Où n est le nombre de champs de la table.
Créer un utilisateur
Tout d'abord, vous devez créer un utilisateur, puis attribuer à l'utilisateur des autorisations sur certaines bases de données / tables. Lors de la création de l'utilisateur, vous devez également spécifier d'où cet utilisateur peut se connecter.
CREATE USER 'user'@'localhost' IDENTIFIED BY 'some_password';
Permet de créer un utilisateur qui ne peut se connecter qu'à l'ordinateur local sur lequel la base de données est hébergée.
CREATE USER 'user'@'%' IDENTIFIED BY 'some_password';
Permet de créer un utilisateur pouvant se connecter de n'importe où (à l'exception de la machine locale).
Exemple de valeur de retour:
Requête OK, 0 lignes affectées (0.00 sec)
Ajouter des privilèges
Accordez à l'utilisateur des privilèges de base communs pour toutes les tables de la base de données spécifiée:
GRANT SELECT, INSERT, UPDATE ON databaseName.* TO 'userName'@'localhost';
Accordez tous les privilèges à l'utilisateur pour toutes les tables de toutes les bases de données (attention à ceci):
GRANT ALL ON *.* TO 'userName'@'localhost' WITH GRANT OPTION;
Comme démontré ci-dessus, *.*
Cible toutes les bases de données et tables, databaseName.*
Cible toutes les tables de la base de données spécifique. Il est également possible de spécifier la base de données et la table comme si vous aviez un nom de databaseName.tableName
.
WITH GRANT OPTION
doit être omis si l'utilisateur n'a pas besoin d'accorder des privilèges aux autres utilisateurs.
Les privilèges peuvent être soit
ALL
ou une combinaison des éléments suivants, chacun séparé par une virgule (liste non exhaustive).
SELECT
INSERT
UPDATE
DELETE
CREATE
DROP
Remarque
En règle générale, vous devez éviter d'utiliser des noms de colonnes ou de tables contenant des espaces ou des mots réservés en SQL. Par exemple, il est préférable d'éviter les noms tels que table
ou first name
.
Si vous devez utiliser de tels noms, placez-les entre des délimiteurs ``
back-tick ``
. Par exemple:
CREATE TABLE `table`
(
`first name` VARCHAR(30)
);
Une requête contenant les délimiteurs back-tick sur cette table pourrait être:
SELECT `first name` FROM `table` WHERE `first name` LIKE 'a%';
Exemples de schémas d'information
Liste des processus
Cela affichera toutes les requêtes actives et en sommeil dans cet ordre, puis de combien de temps.SELECT * FROM information_schema.PROCESSLIST ORDER BY INFO DESC, TIME DESC;
Ceci est un peu plus en détail sur les délais comme il est en secondes par défaut
SELECT ID, USER, HOST, DB, COMMAND,
TIME as time_seconds,
ROUND(TIME / 60, 2) as time_minutes,
ROUND(TIME / 60 / 60, 2) as time_hours,
STATE, INFO
FROM information_schema.PROCESSLIST ORDER BY INFO DESC, TIME DESC;
Procédure stockée Recherche
Recherchez facilement des mots et des caractères génériques dans toutes les Stored Procedures
.
SELECT * FROM information_schema.ROUTINES WHERE ROUTINE_DEFINITION LIKE '%word%';