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.

 


Cet article vous a plu? Découvrez d'autres articles


Tweet
comments powered by Disqus