Dynamic-Mess.com


"The world is a dynamic mess of jiggling things..."

MySQL: quelques commandes utiles

Article posté le 15-01-2017 dans la catégorie SQL

Se 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


Tweet
comments powered by Disqus