Mysql (et Mariadb son clone), sont des services de gestion de bases de données relationnelles. La plupart des commandes usuelles sont indiquées ici:
BASES DE DONNÉES
# Crée une base de données
CREATE DATABASE superbase;
# Supprime une base de donnés
DROP DATABASE superbase;
# Définir la base de donnée courante
USE superbase;
UTILISATEURS
# Crée un utilisateur, quelque soit l’hôte
CREATE USER ‘utilisateur’@’%’ IDENTIFIED BY ‘motdepasse’;
# Crée un utilisateur, sur localhost seulement
CREATE USER ‘utilisateur’@’localhost’ IDENTIFIED BY ‘motdepasse’;
# Attribue à un utilisateur, tous les droits (comme un second ‘root’ mysql) :
GRANT ALL PRIVILEGES ON * . * TO ‘utilisateur’@’localhost’ IDENTIFIED BY ‘motdepasse’ WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
# Attribue à un utilisateur, la lecture seule, (toutes bases)
GRANT SELECT ON * . * TO ‘utilisateur’@’localhost’ IDENTIFIED BY ‘motdepasse’ ;
# Révoque les droits d’un utilisateur
REVOKE ALL ON *.* FROM ‘utilisateur’@’localhost’;
# Attribue tous les droits à un utilisateur
UPDATE mysql.USER SET password=PASSWORD(« nouveau ») WHERE USER= »utilisateur »;
# Liste des utilisateurs
SELECT USER,host,password FROM mysql.USER;
# Voir les droits des utilisateurs
SHOW GRANTS FOR « * »@ »localhost »;
OPÉRATIONS SUR LES TABLES
# Création d’une table
CREATE TABLE matable (
id INT(20) NOT NULL AUTO_INCREMENT,
datecreation DATETIME NOT NULL,
titre VARCHAR(32),
contenu TEXT,
PRIMARY KEY (id)
) DEFAULT CHARSET=utf8;
# Affiche certains champs d’une table
SELECT colonne_1, colonne_2, colonne_3, colonne_4
FROM nom_table [ AS alias ]
WHERE condition
[ GROUP BY colonne_1, colonne_2 ]
[ HAVING condition ]
ORDER BY colonne_1, colonne_2 ASC | DESC
# Affiche tous les champs d’une table
SELECT *
FROM nom_table [ AS alias ]
WHERE condition
[ GROUP BY colonne1, colonne2 ]
[ HAVING condition ]
ORDER BY colonne1, colonne2 ASC | DESC
FROM : Cette clause spécifie les tables sur lesquelles porte la requête.
WHERE :Cette clause permet de filtrer les n-uplets en imposant une condition à remplir pour qu’ils soient présents dans le résultat de la requête.
GROUP BY : Cette clause permet de définir des groupes.
HAVING : Cette clause permet de spécifier un filtre (condition de regroupement des lignes), et ne portant que sur celles du résultat.
ORDER BY : Cette clause permet de trier les lignes du résultat.
ASC / DESC Résultat trié de manière ascendante ou Descendante
# Crée une ligne dans la table
INSERT INTO nom_table
# … Liste des champs ….
(nom_col_1, nom_col_2, nom_col_3, nom_col₄)
# … valeurs associées
VALUES
(val_1, val_2, val_3, val₄)
# Modifie une ligne dans la table
UPDATE nom_table
SET colonne_1 = expression_1, # … nouvelle valeur de champs 1
colonne_2 = expression_2 # … nouvelle valeur de champs 2
WHERE condition
# Supprime une ligne dans la table
DELETE FROM nom_table
WHERE condition
# ajouter une colonne à cette table
ALTER TABLE nom_table ADD COLUMN (colonne VARCHAR(32) NOT NULL);
# Modifier le type d’une colonne
ALTER TABLE nom_table MODIFY colonne INT(32) NOT NULL;
# Supprimer une colonne de cette table
ALTER TABLE nom_table DROP COLUMN colonne;
# Renommer une colonne
ALTER TABLE nom_table CHANGE colonne manewcol INTEGER(10);
# Renommer une table
RENAME TABLE table1 TO table2;