Commandes Essentielles MySQL

Ce guide présente une sélection de commandes MySQL couramment utilisées pour la gestion et l'administration des bases de données.

Gestion des Bases de Données et des Tables

Afficher les bases de données

SHOW DATABASES;

Afficher le port de la base de données

SHOW VARIABLES LIKE 'port';

Sélectionner une base de données

USE nom_de_la_base;

Afficher les tables d'une base de données

SHOW TABLES;

Afficher le contenu d'une table

SELECT * FROM nom_de_la_table;

Manipulation des Données

Mettre à jour une colonne spécifique dans une table

Cette commande modifie une valeur dans une colonne pour une ligne spécifique basée sur un critère.

UPDATE exemple_table
SET colonne_a_modifier = 'nouvelle_valeur'
WHERE identifiant_colonne = 'valeur_identifiant';

Suppression de Données et de Structures

  • DELETE : Supprime des lignes d'une table sans modifier la structure, les index ou les contraintes.
DELETE FROM nom_de_la_table;
  1. TRUNCATE : Supprime toutes les lignes d'une table, réinitialise les compteurs auto-incrémentés et est généralement plus rapide que DELETE pour des tables volumineuses. La structure de la table reste intacte.
TRUNCATE TABLE nom_de_la_table;
  1. DROP : Supprime définitivement une base de données ou une table entière, y compris sa structure et ses données.
DROP DATABASE nom_de_la_base;
DROP TABLE nom_de_la_table;

Requêtes d'Information Avancées

Afficher les tables d'une base de données spécifique

Utilisation de la table système information_schema.tables.

[root@localhost /]# mysql -u utilisateur -p'mot_de_passe' -e "SELECT table_name FROM information_schema.tables WHERE table_schema='nom_de_la_base'"
# Filtrage de la sortie pour une meilleure lisibilité
[root@localhost /]# mysql -u utilisateur -p'mot_de_passe' -e "SELECT table_name FROM information_schema.tables WHERE table_schema='nom_de_la_base'" | awk '!/table_name/ {print $1}'

Compter le nombre de lignes dans une table

SELECT COUNT(*) FROM nom_de_la_table;

Modification de la Structure des Tables

Ajouter une colonne

La syntaxe générale est : ALTER TABLE table_name ADD COLUMN column_name column_definition [FIRST | AFTER existing_column];

-- Ajout d'une colonne 'age' de type INT à la table 'demo'
ALTER TABLE demo ADD COLUMN age INT;

-- Ajout d'une colonne 'date_embauche' de type DATE avec une valeur par défaut à la table 'demo'
ALTER TABLE demo ADD COLUMN date_embauche DATE DEFAULT CURRENT_DATE;

-- Ajout d'une colonne 'departement' après la colonne 'nom' dans la table 'demo'
ALTER TABLE demo ADD COLUMN departement VARCHAR(50) AFTER nom;

-- Ajout d'une colonne 'id_employe' de type INT en première position dans la table 'demo'
ALTER TABLE demo ADD COLUMN id_employe INT FIRST;

Supprimer une colonne

La syntaxe générale est : ALTER TABLE table_name DROP COLUMN column_name;

-- Suppression de la colonne 'age' de la table 'demo'
ALTER TABLE demo DROP COLUMN age;

-- Suppression de plusieurs colonnes
ALTER TABLE demo DROP COLUMN age, DROP COLUMN nom;

Modifier le type d'une colonne

La syntaxe générale est : ALTER TABLE table_name MODIFY COLUMN column_name new_column_definition;

-- Modification du type de la colonne 'salaire' en DECIMAL(10, 2) dans la table 'demo'
ALTER TABLE demo MODIFY COLUMN salaire DECIMAL(10, 2);

Renommer et modifier une colonne

La syntaxe générale est : ALTER TABLE table_name CHANGE COLUMN old_column_name new_column_name new_column_definition;

-- Renommer 'date_embauche' en 'date_debut' et changer son type en DATETIME dans la table 'demo'
ALTER TABLE demo CHANGE COLUMN date_embauche date_debut DATETIME;

Inspection des Tables

Afficher la structure d'une table (colonnes)

Trois méthodes équivalentes :

DESCRIBE nom_de_la_table;
DESC nom_de_la_table;
SHOW COLUMNS FROM nom_de_la_table;

Gestion des Événements

Afficher les événements d'une base de données

-- Afficher les événements pour la base de données 'demo'
SHOW EVENTS FROM `demo`;

-- Alternative via information_schema
SELECT *
FROM `information_schema`.`EVENTS`
WHERE `EVENT_SCHEMA` = 'demo';

Suppression de Lignes Spécifiques

Supprimer un intervalle de lignes basé sur un identifiant ordonné

-- Supprimer les lignes dont l'ID est compris entre 1 et 45 dans la table 'utilisateur'
DELETE FROM utilisateur WHERE id BETWEEN 1 AND 45;

Sauvegarde et Restauration

Sauvegarder une base de données

mysqldump -u utilisateur -p'mot_de_passe' nom_de_la_base > fichier_sauvegarde.sql

Restaurer une base de données

mysql -u utilisateur -p'mot_de_passe' nom_de_la_base < fichier_sauvegarde.sql

Gestion des Uitlisateurs et Permissions

Créer un utilisateur avec des privilèges d'administrateur

-- Création de l'utilisateur 'nouvel_utilisateur' avec mot de passe 'mot_de_passe_securise'
CREATE USER 'nouvel_utilisateur'@'localhost' IDENTIFIED BY 'mot_de_passe_securise';

-- Octroi de tous les privilèges sur toutes les bases et tables
GRANT ALL PRIVILEGES ON *.* TO 'nouvel_utilisateur'@'localhost' WITH GRANT OPTION;

-- Actualisation des privilèges pour qu'ils prennent effet
FLUSH PRIVILEGES;

-- Pour accorder des privilèges sur une base spécifique :
-- GRANT ALL PRIVILEGES ON nom_de_la_base.* TO 'nouvel_utilisateur'@'localhost' WITH GRANT OPTION;

-- Pour accorder des privilèges sur une table spécifique :
-- GRANT ALL PRIVILEGES ON nom_de_la_base.nom_de_la_table TO 'nouvel_utilisateur'@'localhost' WITH GRANT OPTION;
  • 'localhost' peut être remplacé par '%' pour autoriser les connexions depuis n'imoprte où, ou par une adresse IP spécifique.
  • WITH GRANT OPTION permet à l'utilisateur d'accorder ses privilèges à d'autres.

Configuration de l'Accès à Distance

Autorsier les connexions depuis n'importe quelle adresse IP

-- Sélectionner la base de données mysql pour les modifications de privilèges
USE mysql;

-- Afficher les utilisateurs et leurs hôtes autorisés (pour vérification)
SELECT user, host FROM user;

-- Modifier l'hôte pour permettre la connexion depuis n'importe où ('%') pour un utilisateur spécifique
UPDATE user SET host='%' WHERE user='nom_utilisateur_a_modifier';

-- Actualiser les privilèges
FLUSH PRIVILEGES;

-- Pour les versions de MariaDB 10.4+ utilisant mysql.global_priv :
UPDATE mysql.global_priv SET host='%' WHERE user='nom_utilisateur_a_modifier';
FLUSH PRIVILEGES;

Vérification des Paramètres Système

Paramètres de connexion et de timeout

-- Délai d'attente de connexion
SHOW VARIABLES LIKE 'connect_timeout';

-- Délai d'attente avant fermeture d'une connexion inactive
SHOW VARIABLES LIKE 'wait_timeout';

-- Délai d'attente de lecture réseau
SHOW VARIABLES LIKE 'net_read_timeout';

-- Délai d'attente d'écriture réseau
SHOW VARIABLES LIKE 'net_write_timeout';

-- Délai d'attente pour l'acquisition d'un verrou de ligne dans InnoDB
SHOW VARIABLES LIKE 'innodb_lock_wait_timeout';

Étiquettes: MySQL SQL commandes gestion base de données administration

Publié le 27 juin à 05h50