Vous êtes sur la page 1sur 7

Mmento MySQL

Guillaume Allgre <guillaume.allegre@silecs.info>


Grenoble INP - Formation Continue
Date : 2008-10-02 18 :00 :40 +0200 (jeu, 02 oct 2008)
Version 1.1.0 - Rev : 301
Introduction
Ce document est un aide-mmoire sur les principales commandes et conventions de MySQL. Il traite essentiellement
de linterface en ligne de commande, et se base sur les versions 5.0.x de lapplication.
Crdits
Ce document est sous licence Creative Commons, Attribution-Share alike 3.0. Voir la description :
http://creativecommons.org/licenses/by-sa/3.0/deed.fr
Documents ayant servi dinspiration ou de source :
http://dev.mysql.com/doc/, documentation ofcielle en franais et anglais
pages de man de mysql, mysqladmin...
Conformment la philosophie du logiciel libre, vous tes encourags rutiliser, reproduire et modier ce document,
sous les conditions de la licence Creative Commons, Attribution-Share alike 3.0.
Jaccepte volontiers les remarques, suggestions damliorations, corrections et contributions ce document.
Table des matires
1 Contrle des donnes 2
1.1 Privilges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Commandes privilges et utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Structure des donnes 3
2.1 Types de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Dnition des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 SHOW - Informations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 Manipulation des donnes 4
3.1 Commandes de manipulation des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2 Oprations mathmatiques et logiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.3 Oprations sur les chanes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.4 Dates et heures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.5 Agrgation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.6 Autres fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4 Utilitaires en ligne de commande 7
4.1 Commande mysqladmin (abrge) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1
1 Contrle des donnes
1.1 Privilges
Niveaux : Serveur (S : *.*), dataBase (B : db.*), Table (T : db.table), Colonne (C : table.column).
Privilges Serveur
SHOW DATABASES S droit de voir toutes les bases du serveur
PROCESS S droit de voir tous les processus en cours
FILE S droit de sortir les rsultats dans un chier
RELOAD S droit dutiliser la commande FLUSH
SUPER S tous les droits dadministration (KILL, SET GLOBAL...)
SHUTDOWN S droit darrter le service
REPLICATION SLAVE S droit de savoir o sont les matres et esclaves
REPLICATION CLIENT S ncessaire pour les esclaves de rplication
Privilges Contrle des accs aux donnes
CREATE USER S droit de crer un utilisateur
GRANT OPTION - droit de dlguer ses droits dautres utilisateurs
ALL - tous les droits, sauf GRANT
Privilges Dnition des donnes (structure)
CREATE B, T droit de crer une base ou une table (selon le niveau)
DROP B, T droit de supprimer une base ou une table (selon le niveau)
INDEX T droit de crer et de supprimer des index sur une table
ALTER T droit de modier la structure de la table
CREATE TEMPORARY TABLES B, T droit de crer des tables temporaires
Privilges Manipulation de donnes
SELECT T,C droit de lire des donnes
LOCK TABLES B droit de verrouiller les tables (droit SELECT requis)
INSERT T droit dajouter un enregistrement dans une table
UPDATE T,C droit de mettre jour des donnes dans une table
DELETE T droit de supprimer un enregistrement
REFERENCES B,T,C inutilis (rserv pour le futur)
Privilges SQL Procdural
CREATE ROUTINE S (5.0+) droit de crer des procdures stockes et fonctions
ALTER ROUTINE S (5.0+) droit de modier les procdures stockes prsentes
EXECUTE S (5.0+) droit dexcuter les procdures stockes
CREATE VIEW B, T (5.0+) droit de crer une vue
SHOW VIEW B, T (5.0+) droit de consulter la dnition de la vue
1.2 Commandes privilges et utilisateurs
Utilisateurs et privilges
CREATE USER user [IDENTIFIED BY password], ...
DROP USER user [, user] ...
RENAME USER old-user TO new-user, ...
SET PASSWORD [FOR user] = PASSWORD(secret)
GRANT priv-type [(col-list)] ON ... TO user [IDENTIFIED BY password] ... [WITH GRANT OPTION]
REVOKE priv-type ON [table | * | *.* | base.*] FROM user ...
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user
2
2 Structure des donnes
2.1 Types de donnes
Numriques : [UNSIGNED] [ZEROFILL]
BIT[()] (var) champ de bits, de 1 64 bits
TINYINT[()] entier (1 octet)
BOOL entier (1 octet) synonyme de TINYINT
SMALLINT[()] entier (2 octets)
MEDIUMINT[()] entier (3 octets)
INT[()] entier (4 octets)
BIGINT[()] entier (8 octets)
FLOAT[(M,D)] nombre en virgule ottante simple prcision
DOUBLE[(M,D)] nombre en virgule ottante double prcision
DECIMAL[(M[,D])] nombre dcimal en prcision absolue (chane)
Horodatage
DATE format YYYY-MM-DD, de 1000-01-01 9999-12-31
TIME format HH :MM :SS, de -838 :59 :59 838 :59 :59 !
DATETIME YYYY-MM-DD HH :MM :SS, combinaison des deux prcdents
TIMESTAMP 1970-01-01 00 :00 :01 2038-01-09 03 :14 :07, horodatage UNIX
YEAR[(2|4)] de 1901 2155 (4 chiffres) ou de 70-99 (1970-1999) 00-69 (2000-2069)
Chanes de caractres [CHARACTER SET ...] [COLLATE ...]
CHAR(N) chane de caractres de longueur xe (1 255)
VARCHAR(N) chane de caractres de longueur variable (1 255)
ENUM(a,b) une valeur parmi la liste prdnie
SET(a,b) une ou plusieurs valeurs parmi la liste
TINYTEXT(N) chane maxi 255 caractres
TEXT(N) chane longue, maxi 64 K caractres
MEDIUMTEXT(N) chane longue, maxi 16 M caractres
LONGTEXT(N) chane longue, maxi 4 G caractres
BLOB() var. TINYBLOB, MEDIUMBLOB, LONGBLOB (Binary Large OBject)
2.2 Dnition des donnes
Bases
CREATE DATABASE | SCHEMA [IF NOT EXISTS] base ...
DROP DATABASE | SCHEMA [IF EXISTS] base
ALTER DATABASE | SCHEMA [base]
Tables
CREATE [TEMP.] TABLE [I.N.E] table (create-def)
CREATE [TEMP.] TABLE [I.N.E] table [(create-def)] SELECT ...
CREATE [TEMP.] TABLE [I.N.E] table LIKE old-table
DROP [TEMPORARY] TABLE [IF EXISTS] table
ALTER [IGNORE] TABLE table ...
RENAME TABLE table1 TO table2, ...
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX nom [...] ON table(col1,...)
DROP INDEX nom ON table
lments stocks
CREATE [OR REPLACE] VIEW vue [(col-list)] AS select-statement
DROP VIEW [IF EXISTS] vue, vue2...
ALTER VIEW vue [(col-list)] AS select-statement id. CREATE OR REPLACE
CREATE [...] PROCEDURE nom ([params...]) ...
CREATE [...] FUNCTION nom ([params...]) RETURNS type...
DROP PROCEDURE [IF EXISTS] nom
DROP FUNCTION [IF EXISTS] nom
CREATE [...] TRIGGER nom ...
DROP TRIGGER [IF EXISTS] nom
3
2.3 SHOW - Informations
Infos serveur
SHOW ENGINES
SHOW ENGINE engine-name LOGS | STATUS
SHOW MUTEX STATUS spcique InnoDB
SHOW [GLOBAL | SESSION] STATUS [like-or-where]
SHOW [GLOBAL | SESSION] VARIABLES [like-or-where]
SHOW CHARACTER SET [like-or-where]
SHOW COLLATION [like-or-where]
SHOW PRIVILEGES
SHOW GRANTS FOR user
SHOW [FULL] PROCESSLIST
SHOW [ERRORS | WARNINGS] [LIMIT [offset,] row-count]
SHOW PROFILE [types] [FOR QUERY n] [OFFSET n] [LIMIT n]
SHOW PROFILES
SHOW BINARY LOGS
SHOW BINLOG EVENTS [IN logle]...
Infos routines...
SHOW [PROCEDURE | FUNCTION] CODE sp-name
SHOW [PROCEDURE | FUNCTION] STATUS [like-or-where]
SHOW CREATE [PROCEDURE|FUNCTION] name
SHOW CREATE VIEW name
Infos bases
SHOW DATABASES [like-or-where]
SHOW CREATE DATABASE db
SHOW TRIGGERS [FROM db] [like-or-where]
Infos tables
SHOW [FULL] COLUMNS FROM table [FROM db] [like-or-where]
SHOW OPEN TABLES [FROM db] [like-or-where]
SHOW TABLE STATUS [FROM db] [like-or-where]
SHOW TABLES [FROM db] [like-or-where]
SHOW CREATE TABLE table
SHOW INDEX FROM table [FROM db]
3 Manipulation des donnes
3.1 Commandes de manipulation des donnes
SELECT [DISTINCT] ... [FROM ...] [WHERE ...] [ORDER BY ...] [LIMIT ...]
SELECT [GROUP BY ... [WITH ROLLUP] [HAVING ...]
SELECT INTO [ OUTFILE | DUMPFILE | variable... ]
INSERT INTO table (col1, col2, ...) VALUES (val1, val2, ...), ...
INSERT INTO table SET col1=val1, col2=val2 ...
INSERT INTO table (col1, col2, ...) SELECT ...
INSERT INTO table ON DUPLICATE KEY UPDATE ...
REPLACE simil. INSERT ... ON DUPLICATE KEY UPDATE
LOAD DATA INFILE chier [REPLACE | IGNORE] INTO TABLE table...
UPDATE ... table SET col1=val1 ... [WHERE ...] [ORDER BY ...] [LIMIT ...]
UPDATE table-refs SET col1=val1 [, col2=val2 ...] [WHERE ...]
DELETE [...] FROM table [WHERE ...] [ORDER BY ...] [LIMIT N]
DELETE tcible1 [, tcible2] ... FROM table-refs [WHERE ...]
DELETE FROM tcible1 [, tcible2] ... USING table-refs [WHERE ...]
TRUNCATE TABLE table : vide la table
4
3.2 Oprations mathmatiques et logiques
Oprateurs arithmtiques
+, -, *, / oprations courantes
MOD, % modulo : reste de la division entire
DIV quotient de la division entire
( ) gestion des priorits
Oprateurs logiques
TRUE, FALSE, UNKNOWN les trois tats en logique SQL
!, NOT NON logique
||, OR OU logique
&&, AND ET logique
XOR OU exclusif logique
Oprateurs boolens bit bit
~ NON bit bit
| OU bit bit
& ET bit bit
^ OU exclusif bit bit
Oprateurs de comparaison
= galit
!= ou <> ingalit
<, <=, >, >= infrieur (ou gal), suprieur (ou gal)
IS, IS NOT (bool) test de correspondance un boolen
(NOT) IN (val1, val2...) galit avec une valeur de la liste
(NOT) BETWEEN ... AND ... test dintervalle (double ingalit large)
<=> galit grant la valeur NULL
IS NULL, IS NOT NULL tests sur la valeur NULL
Fonctions de comparaison
ISNULL(val) test sur la valeur NULL
LEAST(n1, n2, n3...) la valeur minimale de la liste
GREATEST(n1, n2, n3...) la valeur maximale de la liste
COALESCE(val1, val2, val3...) la premire valeur non NULL de la liste
INTERVAL(N,N1,N2,N3,...) lindex de N dans la liste ordonne des Ni
Fonctions mathmatiques
ABS(nbr) valeur absolue
SIGN(nbr) signe : 0, 1, -1
FLOOR, CEILING, ROUND (nbr) arrondi : infrieur, suprieur, plus proche
ROUND, TRUNCATE (nbr,D) retourne larrondi ou la troncature D dcimales
EXP(nbr) exponentielle de nbr
POW(nbr, expo) nbr la puissance expo
LOG, LOG2, LOG10 (nbr) logarithme naturel, en base 2, en base 10
SQRT(nbr) racine carre de nbr
COS, SIN, TAN, COT (nbr) cosinus, sinus, tangente, cotangente
ACOS, ASIN, ATAN (nbr) trigonomtrie inverse
DEGREES(nbr), RADIANS(nbr) conversion dangle en degrs, en radians
PI() le nombre
RAND() nombre alatoire en virgule ottante entre 0 et 1
3.3 Oprations sur les chanes
Oprateurs sur les chanes
%, _ mtacaractre de recherche multiple, unique
\ caractre dchappement, pour protger un mtacaractre
(NOT) LIKE (BINARY) comparaison selon un motif ; BINARY=respecte la casse
(NOT) REGEXP comparaison avec une expression rgulire
SOUNDS LIKE comparaison de prononciation (approximatif)
5
Fonctions sur les chanes
ASCII(a), CHAR(N) conversion de caractre en entier, et inversement
CONCAT(a,b), CONCAT_WS( :,a,b) concatne les chanes (avec sparateur)
LENGTH, CHAR_LENGTH (chane) longueur en octets (=7), en caractres (=6)
ELT(N,str1,str2...) retourne la chane correspondant lindex
FIELD(str,str1,str2...) retourne lindex de str dans la liste des strN
FIND_IN_SET(str,strlist) retourne lindex de str dans la chane-liste, sparateur=,
LOCATE(substr,str,pos) position de la 1ere occurrence >pos de substr dans str
LEFT, RIGHT (str,N) retourne la partie gauche, droite de longueur N
SUBSTR(str,pos,len) extrat une partie interne de la chane
SUBSTRING_INDEX(str,delim,N) la portion de la chane situe avant N occurrences de delim
LOWER(), UPPER() retourne la chane en minuscules, en majuscules
LPAD, RPAD (str,len,padstr) complte une chane par des espaces gauche, droite
LTRIM, RTRIM, TRIM supprime les espaces gauche, droite, aux deux extrmits
REPEAT(str,count) retourne une chane compose de str rpte
REPLACE(str,from-str,to-str) remplace dans str from-str par to-str
SPACE(N) une chane de N espaces
3.4 Dates et heures
Horodatage courant
NOW() date et heure courantes
CURDATE() date courante
CURTIME() heure courante
UNIX_TIMESTAMP() horodatage Unix (nb de secondes depuis le 01/01/1970 00 :00)
Fonctions de conversion
DATE_FORMAT(date, format) permet de prciser nement le format ; cf doc
DAYOFWEEK(date) le numro du jour dans la semaine
DAYOFMONTH, DAYOFYEAR (date) numro du jour dans le mois, dans lanne
MONTH(date) le numro du mois
DAYNAME(date) le nom du jour
MONTHNAME(date) le nom du mois
QUARTER(date) le numro du trimestre
WEEK(date) numro de la semaine dans lanne
YEAR(date) lanne
HOUR, MINUTE, SECOND (date)
TO_DAYS(date) nb de jours depuis lan 0
FROM_DAYS(N) linverse du prcdent
FROM_UNIXTIME(N) conversion en date et heure dun horodatage Unix
Fonctions de conversion
DATE_ADD, DATE_SUB (date, duree) arithmtique de dates
DATEDIFF(d1,d2) dure entre deux dates
3.5 Agrgation
Fonctions dagrgation (GROUP BY)
AVG() moyenne arithmtique
BIT_AND, BIT_OR, BIT_XOR() oprations boolennes bit bit
COUNT(*) compte les lignes (NULL ou pas)
COUNT([DISTINCT] col) compte les valeurs non NULL (distinctes)
STD() lcart-type
SUM() la somme
VARIANCE() la variance
GROUP_CONCAT() concatnation des chanes
6
3.6 Autres fonctions
Fonctions de Cast (transtypage)
BINARY str comparaison binaire (majuscules != minuscules)...
CAST(expr AS type) transtypage standard
CONVERT(expr,type) idem, syntaxe ODBC
CONVERT(expr USING charset) changement de jeu de caractres
Fonction dinformation MySQL
VERSION() version du serveur MySQL
CONNECTION_ID() identiant de la connexion courante
DATABASE() base de donnes courante
USER() utilisateur (tel que pass en ligne de commande)
CURRENT_USER() utilisateur (tel quauthenti)
LAST_INSERT_ID() dernier retour dun champ AUTO_INCREMENT
ROW_COUNT() nb de lignes concernes par la dernire requte
FOUND_ROWS() nb de lignes sans LIMIT; voir SELECT SQL_CALC_FOUND_ROWS
4 Utilitaires en ligne de commande
4.1 Commande mysqladmin (abrge)
mysqladmin <sous-commande> [arguments]
ush-hosts vide tous les htes en cache
ush-logs vide de la mmoire tous les logs
ush-status remet zro les variables dtat
ush-tables vide de la mmoire toutes les tables
ush-threads vide le cache des threads
reload recharge les tables de privilges
refresh vide de la mmoire toutes les tables puis rouvre les logs
create databasename crer une nouvelle base
debug crire les infos de dbogage dans les logs
drop databasename supprimer une base (et ses tables)
extended-status afche un rapport dtat dtaill du serveur
kill id,id,... termine un thread Mysql
password new-password change le mot de passe de lutilisateur connect
ping vrie si mysqld tourne
processlist afche la liste des threads actifs sur le serveur
shutdown arrte le serveur
status afche un bref message dtat du serveur
start-slave dmarre lesclave de rplication
stop-slave arrte lesclave de rplication
variables afche les variables disponibles
version afche la version du serveur
7

Vous aimerez peut-être aussi