MySQL: quelques commandes utiles
Article posté le 15-01-2017 dans la catégorie
SQL
Article mis à jour le : 05-05-2022
Quelques commandes utiles pour MySQLSe connecter
mysql -u monLogin -p
Vous demandera alors le mot de passe pour vous connecter.
Il est possible de se positionner directement sur une BDD:
mysql -u monLogin -p maBase
Se positionner sur une base de données
USE maBase;
Créer une base de données
CREATE DATABASE maBase;
Ou plus détaillé:
CREATE DATABASE mabase DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
Montrer toutes les bases disponibles
SHOW DATABASES;
Créer un utilisateur
CREATE USER 'monUser'@'localhost' IDENTIFIED BY '@monMotDePasse';
Donner tous les droits à un utilisateur pour une base précise
GRANT ALL PRIVILEGES ON maBase.* To 'monUser'@'localhost'
FLUSH PRIVILEGES; // Permet de recharger les privilèges en mémoire, sinon vous devrez attendre de redémarrer le serveur!
Montrer les tables présentes
SHOW TABLES;
Créer une table
CREATE TABLE matable;
Exemple:
CREATE TABLE matable (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT , nom VARCHAR(20), prenom VARCHAR(30));
Décrire une table
DESCRIBE matable;
Supprimer une table
DROP matable;
Montrer les index d'une table
SHOW INDEX FROM matable;
Exporter une table ou une base
mysqldump -u <db_username> -h <db_host> -p db_name table_name > table_name.sql
Note 1 : pour exporter juste la base en entier, retirer la variable table_name.
Note 2 : il est possible d'exclure des tables des l'export.
mysqldump -u USERNAME -pPASSWORD --ignore-table=database.table1 > database.sql
Ceci est bien expliqué dans ce post.
Note 3 : pour importer: juste changer le sens du chevron.
Si la table est un peu grosse, vous pouvez la compresser à la volée:
Export:
mysqldump db_name table_name | gzip > table_name.sql.gz
Importer:
gunzip < table_name.sql.gz | mysql -u username -p db_name
Exporter un résultat dans un fichier
SELECT order_id,product_name,qty FROM orders
INTO OUTFILE '/tmp/orders.txt'
Voir comment est constuire une requête
Utiliser le mot-clef EXPLAIN devant votre requête :
EXPLAIN SELECT * FROM subscription, user WHERE subscription.user = user.id and user.id = 4;
Plus de détais dans ce bel article sur le mot clef EXPLAIN.
Afficher la liste de tous les process en cours
SHOW PROCESS LIST
Tuer un process en cours
Jouer la commande SQL suivante en remplaçant MyReq par l'id du process à tuer
kill MyReq
Cet article vous a plu? Découvrez d'autres articles :