Recherche…


Remarques

Logo MySQL

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%';


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow