Table of Contents

MySQL: aide-memoire

Commandes MySQL pratiques

Description Commande
Pour se connecter (à partir du shell Unix), utiliser -h uniquement si nécessaire. [mysql dir]/bin/mysql -h hostname -u root -p
Créer une base de données sur le serveur SQL. create database [nom de la base de donnée];
Pour voir toutes les bases de données sur le serveur SQL. show databases;
Basculer vers une base de données. use [nom de la base de donnée];
Pour voir toutes les tables de la base de données. show tables;
Pour voir les formats de champ de la base de données. describe [table name];
Pour supprimer une base de données. drop database [nom de la base de données];
Pour supprimer une table. drop table [nom de la table];
Afficher toutes les données dans un tableau. SELECT * FROM [nom de la table];
Renvoie les colonnes et les informations de colonne relatives à la table désignée. show columns from [nom de la table];
Afficher certaines lignes sélectionnées avec la valeur «whatever». SELECT * FROM [table name] WHERE [field name] = "whatever";
Afficher tous les enregistrements contenant le nom «Bob» ET le numéro de téléphone «3444444». SELECT * FROM [table name] WHERE name = "Bob" AND phone_number = '3444444';
Afficher tous les enregistrements ne contenant pas le nom «Bob» ET le numéro de téléphone «3444444» dans le champ phone_number. SELECT * FROM [table name] WHERE name != "Bob" AND phone_number = '3444444' order by phone_number;
Afficher tous les enregistrements commençant par les lettres «bob» ET le numéro de téléphone «3444444». SELECT * FROM [table name] WHERE name like "Bob%" AND phone_number = '3444444';
Utiliser une expression régulière pour rechercher des enregistrements. Utiliser “REGEXP BINARY” pour forcer le respect de la casse. Cela trouve tout enregistrement commençant par un. SELECT * FROM [table name] WHERE rec RLIKE "^a$";
Afficher les enregistrements uniques. SELECT DISTINCT [column name] FROM [table name];
Afficher les enregistrements sélectionnés triés par ordre croissant (asc) ou décroissant (desc). SELECT [col1],[col2] FROM [table name] ORDER BY [col2] DESC;
Compter les lignes. SELECT COUNT(*) FROM [table name];
Joindre des tables sur des colonnes communes. select lookup.illustrationid, lookup.personid,person.birthday from lookup left join person on lookup.personid=person.personid=statement to join birthday in person table with primary illustration id;
Basculer vers la base de données mysql. Créer un nouvel utilisateur. INSERT INTO [table name] (Host,User,Password) VALUES('%','user',PASSWORD('password'));
Changer le mot de passe d'un utilisateur (à partir du shell unix). [mysql dir]/bin/mysqladmin -u root -h hostname.blah.org -p password 'new-password'
Modifier le mot de passe d'un utilisateur (à partir de l'invite MySQL). SET PASSWORD FOR 'user'@'hostname' = PASSWORD('passwordhere');
Basculer vers mysql db.Donner des privilèges utilisateur pour une base de données. INSERT INTO [table name] (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv) VALUES ('%','db','user','Y','Y','Y','Y','Y','N');
Pour mettre à jour les informations déjà dans un tableau. UPDATE [table name] SET Select_priv = 'Y',Insert_priv = 'Y',Update_priv = 'Y' where [field name] = 'user';
Supprimer une ou plusieurs lignes d'un tableau. DELETE from [table name] where [field name] = 'whatever';
Metter à jour les autorisations/privilèges de la base de données. FLUSH PRIVILEGES;
Supprimer une colonne. alter table [table name] drop column [column name];
Ajouter une nouvelle colonne à db. alter table [table name] add column [new column name] varchar (20);
Changer le nom de la colonne. alter table [table name] change [old column name] [new column name] varchar (50);
Créer une colonne unique pour ne pas avoir de doubles. alter table [table name] add unique ([column name]);
Agrandir une colonne. alter table [table name] modify [column name] VARCHAR(3);
Supprimer l'index de la table. alter table [table name] drop index [colmn name];
Charger un fichier CSV dans une table. LOAD DATA INFILE '/tmp/filename.csv' replace INTO TABLE [table name] FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (field1,field2,field3);
Dump toutes les bases de données pour la sauvegarde. Le fichier de sauvegarde contient des commandes sql pour recréer toutes les bases de données. [mysql dir]/bin/mysqldump -u root -ppassword --opt >/tmp/alldatabases.sql
Dump d'une base de données pour la sauvegarde. [mysql dir]/bin/mysqldump -u username -ppassword --databases databasename >/tmp/databasename.sql
Dump d'une table d'une base de données. [mysql dir]/bin/mysqldump -c -u username -ppassword databasename tablename > /tmp/databasename.tablename.sql
Restaurer la base de données (ou la table de base de données) à partir de la sauvegarde. [mysql dir]/bin/mysql -u username -ppassword databasename < /tmp/databasename.sql
Exemple de création de table 1. CREATE TABLE [table name] (firstname VARCHAR(20), middleinitial VARCHAR(3), lastname VARCHAR(35),suffix VARCHAR(3), | officeid VARCHAR(10),userid VARCHAR(15),username VARCHAR(8),email VARCHAR(35),phone VARCHAR(25), groups | VARCHAR(15),datestamp DATE,timestamp time,pgpemail VARCHAR(255));
Exemple de création de table 2. create table [table name] (personid int(50) not null auto_increment primary key,firstname varchar(35),middlename varchar(50),lastname varchar(50) default 'bato');

Commandes par thèmes

commandes générales
Fonctions d'agrégat
Manipuler plusieurs tables
Fonctions utilisateurs
Découvrir l'adresse IP de l'hôte Mysql

SHOW VARIABLES WHERE Nom_variable = 'nom_hôte';