Maîtrisez MySQL pour administrer vos bases de données. Commandes CLI, scripting d'automatisation et gestion des bases de données.
mysql
Client MySQL en ligne de commande
--host-h--port-P--user-u--password-p--database-D--execute-e--batch-B--skip-column-names-N--raw-r--silent-s--verbose-v--html-H--xml-X--table-t--line-numbers-L--column-names--column-type-info--comments-c--compress-C--protocol--ssl--ssl-ca--ssl-cert--ssl-key--default-character-set--delimiter--help-?--version-V
mysql -u root -p
Se connecte à MySQL en tant que root
-h--host-P--port-D--database
mysql -u root -p -h localhost -P 3306
Connexion avec hôte et port spécifiques
-h-P
mysql -u root -p -D ma_base
Se connecte directement à une base de données
-D--database
mysql -u root -p -e "SHOW DATABASES"
Exécute une commande SQL sans entrer dans le client
-e--execute
mysql -u root -p < script.sql
Exécute un fichier SQL
mysql -u root -p -B -e "SELECT * FROM users" > output.txt
Exporte les résultats en mode batch
-B--batch-N--skip-column-names
mysql -u root -p --html -e "SELECT * FROM users"
Affiche les résultats au format HTML
--html-H
mysql -u root -p --xml -e "SELECT * FROM users"
Affiche les résultats au format XML
--xml-X
mysqladmin
Outil d'administration MySQL
--host-h--port-P--user-u--password-p--verbose-v--silent-s--help--version
mysqladmin -u root -p status
Affiche le statut du serveur MySQL
-h-P
mysqladmin -u root -p create ma_base
Crée une base de données
mysqladmin -u root -p drop ma_base
Supprime une base de données
-f--force
mysqladmin -u root -p password 'nouveau_mot_de_passe'
Change le mot de passe root
mysqladmin -u root -p ping
Vérifie si le serveur MySQL est en ligne
mysqladmin -u root -p processlist
Affiche les processus MySQL en cours
-i--sleep
mysqladmin -u root -p shutdown
Arrête le serveur MySQL
mysqladmin -u root -p variables
Affiche les variables de configuration
mysqladmin -u root -p extended-status
Affiche les statistiques étendues
-r--relative-i--sleep
mysqladmin -u root -p flush-privileges
Recharge les privilèges
mysqladmin -u root -p flush-hosts
Vide le cache des hôtes
mysqladmin -u root -p flush-logs
Vide les logs
mysqladmin -u root -p flush-status
Réinitialise les variables de statut
mysqladmin -u root -p flush-tables
Vide le cache des tables
mysqladmin -u root -p flush-threads
Vide le cache des threads
mysqladmin -u root -p refresh
Vide les tables et rouvre les logs
mysqladmin -u root -p kill id_processus
Tue un processus MySQL
mysqladmin -u root -p version
Affiche la version du serveur
mysqldump
Sauvegarde une base de données MySQL
--host-h--port-P--user-u--password-p--all-databases-A--databases-B--no-data-d--no-create-info-t--routines-R--triggers--events-E--add-drop-database--add-drop-table--add-drop-trigger--add-locks--allow-keywords--complete-insert-c--compress-C--create-options--default-character-set--disable-keys-K--extended-insert-e--fields-terminated-by--fields-enclosed-by--fields-optionally-enclosed-by--fields-escaped-by--flush-logs-F--flush-privileges--force-f--hex-blob--ignore-table--insert-ignore--lock-all-tables-x--lock-tables-l--log-error--master-data--max-allowed-packet--net-buffer-length--no-autocommit--no-create-db-n--no-set-names-N--opt--order-by-primary--port-P--protocol--quick-q--quote-names-Q--replace--result-file-r--routines-R--set-charset--single-transaction--skip-add-drop-table--skip-add-locks--skip-comments--skip-compact--skip-disable-keys--skip-extended-insert--skip-opt--skip-quick--skip-quote-names--skip-set-charset--skip-triggers--skip-tz-utc--tab-T--tables--triggers--tz-utc--verbose-v--version-V--where-w--xml-X
mysqldump -u root -p ma_base > sauvegarde.sql
Sauvegarde une base de données
--routines-R--triggers
mysqldump -u root -p --all-databases > toutes_bases.sql
Sauvegarde toutes les bases de données
-A--all-databases
mysqldump -u root -p --databases base1 base2 > sauvegarde.sql
Sauvegarde plusieurs bases spécifiques
-B--databases
mysqldump -u root -p --no-data ma_base > structure.sql
Sauvegarde uniquement la structure (sans données)
-d--no-data
mysqldump -u root -p --no-create-info ma_base > donnees.sql
Sauvegarde uniquement les données (sans structure)
-t--no-create-info
mysqldump -u root -p --single-transaction ma_base > sauvegarde.sql
Sauvegarde cohérente sans verrouiller les tables (InnoDB)
--single-transaction
mysqldump -u root -p --routines --triggers ma_base > sauvegarde_complete.sql
Sauvegarde avec procédures stockées et triggers
-R--routines--triggers
mysqldump -u root -p --where="id > 100" ma_base users > users_partial.sql
Sauvegarde avec condition WHERE
-w--where
mysqldump -u root -p --ignore-table=ma_base.logs ma_base > sauvegarde.sql
Sauvegarde en ignorant certaines tables
--ignore-table
mysqldump -u root -p --tab=/chemin/export ma_base
Exporte les tables en fichiers séparés (CSV)
-T--tab--fields-terminated-by--fields-enclosed-by
mysqlimport
Importe des fichiers CSV dans une base
--host-h--port-P--user-u--password-p--local-L--delete-d--force-f--ignore-i--replace-r--fields-terminated-by--fields-enclosed-by--fields-optionally-enclosed-by--fields-escaped-by--lines-terminated-by--ignore-lines--columns--compress-C--default-character-set--lock-tables-l--low-priority--verbose-v--version-V--help-?
mysqlimport -u root -p --local ma_base /chemin/users.csv
Importe un fichier CSV dans une table
--local-L--fields-terminated-by--lines-terminated-by
mysqlimport -u root -p --delete ma_base users.csv
Vide la table avant import
-d--delete
mysqlimport -u root -p --ignore ma_base users.csv
Ignore les lignes en double
-i--ignore
mysqlimport -u root -p --replace ma_base users.csv
Remplace les lignes en double
-r--replace
mysqlcheck
Vérifie, répare et optimise les tables
--host-h--port-P--user-u--password-p--all-databases-A--databases-B--analyze-a--auto-repair--check-c--check-only-changed-C--extended-e--fast-F--force-f--medium-check-m--optimize-o--quick-q--repair-r--skip-database--tables--use-frm--verbose-v--version-V--write-binlog--help-?
mysqlcheck -u root -p --all-databases
Vérifie toutes les bases de données
-A--all-databases
mysqlcheck -u root -p --check ma_base
Vérifie une base de données
-c--check
mysqlcheck -u root -p --analyze ma_base
Analyse les tables pour optimiser les index
-a--analyze
mysqlcheck -u root -p --optimize ma_base
Optimise les tables
-o--optimize
mysqlcheck -u root -p --repair ma_base
Répare les tables corrompues
-r--repair
mysqlcheck -u root -p --auto-repair ma_base
Répare automatiquement si nécessaire
--auto-repair
mysqld
Démon serveur MySQL
--basedir--datadir--port-P--socket--pid-file--log-error--general-log--general-log-file--slow-query-log--slow-query-log-file--long-query-time--bind-address--skip-networking--skip-grant-tables--skip-name-resolve--default-storage-engine--character-set-server--collation-server--max-connections--max-allowed-packet--innodb-buffer-pool-size--innodb-log-file-size--innodb-flush-method--innodb-file-per-table--query-cache-size--query-cache-type--thread-cache-size--table-open-cache--tmp-table-size--max-heap-table-size--wait-timeout--interactive-timeout--connect-timeout--console--help--verbose-v--version-V
mysqld --initialize
Initialise le répertoire de données MySQL
--user--basedir--datadir--initialize-insecure
mysqld --initialize-insecure
Initialise sans mot de passe root
--user--basedir--datadir
mysqld --console
Lance le serveur avec logs dans la console
--console
mysqld_safe
Script de démarrage sécurisé pour MySQL
--defaults-file--ledir--malloc-lib--nice--no-defaults--open-files-limit--pid-file--plugin-dir--port--skip-kill-mysqld--socket--syslog--skip-syslog--timezone--user--version
mysql_secure_installation
Sécurise l'installation MySQL (définit mot de passe root, supprime utilisateurs anonymes, etc.)
--host-h--port-P--user-u--password-p--use-default--defaults-file
mysql_config
Affiche les options de compilation de MySQL
--cflags--include--libs--libs_r--plugindir--port--socket--version--variable
mysqlshow
Affiche les bases de données et tables
--host-h--port-P--user-u--password-p--count-k--status-i--verbose-v--help
mysqlshow -u root -p
Liste toutes les bases de données
-v--verbose
mysqlshow -u root -p ma_base
Liste les tables d'une base
--count-k
mysqlshow -u root -p ma_base users
Affiche les colonnes d'une table
--status-i
mysqlbinlog
Lit les fichiers de logs binaires
--base64-output--bind-address--character-sets-dir--database-d--debug--disable-log-bin-D--force-if-open-F--force-read-f--hexdump-H--host-h--local-load-l--offset-o--password-p--port-P--protocol--read-from-remote-server-R--result-file-r--rewrite-db--server-id--set-charset--short-form-s--socket-S--start-datetime--start-position-j--stop-datetime--stop-never--stop-never-slave-server-id--stop-position--stop-when-heartbeat--table-t--to-last-log-t--user-u--verbose-v--verify-binlog-checksum-c--version-V
mysqlbinlog binlog.000001
Lit un fichier de log binaire
--start-datetime--stop-datetime--start-position--stop-position
mysqlbinlog --start-datetime="2024-01-01 00:00:00" binlog.000001
Lit à partir d'une date spécifique
--start-datetime
mysqlbinlog --database=ma_base binlog.000001
Filtre par base de données
-d--database
mysqlbinlog -R -h serveur -u user -p binlog.000001
Lit un log binaire distant
-R--read-from-remote-server
mysqlbinlog --verbose binlog.000001
Affiche les événements en pseudo-SQL
-v--verbose-vv
mysqlbinlog --hexdump binlog.000001
Affiche un dump hexadécimal
-H--hexdump
mysqlbinlog --result-file=output.sql binlog.000001
Sauvegarde le résultat dans un fichier
-r--result-file
mysqldumpslow
Analyse le log des requêtes lentes
-a--verbose-v--debug-d--help-h--host-s--order-t--limit-n--pattern
mysqldumpslow -s t /var/log/mysql/slow.log
Trie par temps d'exécution
-s--sort
mysqldumpslow -t 10 /var/log/mysql/slow.log
Affiche les 10 requêtes les plus lentes
-t--top
mysqldumpslow -a "SELECT * FROM users" /var/log/mysql/slow.log
Ne pas abstraire les valeurs
-a
perror
Affiche la description d'un code d'erreur MySQL
--help--info--ndb--silent--verbose--version
perror 1062
Affiche la signification de l'erreur 1062 (Duplicate entry)
SHOW DATABASES
[SQL] Affiche toutes les bases de données
LIKE
CREATE DATABASE ma_base
[SQL] Crée une base de données
CHARACTER SETCOLLATEIF NOT EXISTS
CREATE DATABASE IF NOT EXISTS ma_base CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
[SQL] Crée une base avec encodage UTF-8 complet
DROP DATABASE ma_base
[SQL] Supprime une base de données
IF EXISTS
USE ma_base
[SQL] Sélectionne une base de données
SHOW TABLES
[SQL] Affiche les tables de la base courante
FROMLIKE
SHOW TABLES FROM ma_base
[SQL] Affiche les tables d'une base spécifique
LIKE
CREATE TABLE users
[SQL] Crée une table
IF NOT EXISTSENGINEAUTO_INCREMENTDEFAULT CHARSETCOLLATECOMMENTROW_FORMATTABLESPACESTORAGEPARTITION BY
CREATE TABLE IF NOT EXISTS users (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100), email VARCHAR(255) UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP) ENGINE=InnoDB
[SQL] Exemple complet de création de table
DESCRIBE users
[SQL] Affiche la structure d'une table
DESC users
[SQL] Alias de DESCRIBE
SHOW COLUMNS FROM users
[SQL] Affiche les colonnes d'une table
FROMLIKEWHERE
SHOW CREATE TABLE users
[SQL] Affiche la commande CREATE TABLE complète
ALTER TABLE users ADD COLUMN age INT
[SQL] Ajoute une colonne
AFTERFIRST
ALTER TABLE users MODIFY COLUMN name VARCHAR(200) NOT NULL
[SQL] Modifie une colonne
ALTER TABLE users CHANGE COLUMN name full_name VARCHAR(100)
[SQL] Renomme une colonne
ALTER TABLE users DROP COLUMN age
[SQL] Supprime une colonne
ALTER TABLE users ADD INDEX idx_email (email)
[SQL] Ajoute un index
UNIQUEFULLTEXTSPATIAL
ALTER TABLE users DROP INDEX idx_email
[SQL] Supprime un index
ALTER TABLE users ADD PRIMARY KEY (id)
[SQL] Ajoute une clé primaire
ALTER TABLE users DROP PRIMARY KEY
[SQL] Supprime la clé primaire
ALTER TABLE users ADD FOREIGN KEY (role_id) REFERENCES roles(id)
[SQL] Ajoute une clé étrangère
ON DELETEON UPDATE
ALTER TABLE users DROP FOREIGN KEY fk_users_role
[SQL] Supprime une clé étrangère
ALTER TABLE users RENAME TO clients
[SQL] Renomme une table
RENAME TABLE users TO clients
[SQL] Renomme une table (syntaxe alternative)
TRUNCATE TABLE users
[SQL] Vide une table (réinitialise AUTO_INCREMENT)
DROP TABLE users
[SQL] Supprime une table
IF EXISTSRESTRICTCASCADE
INSERT INTO users (name, email) VALUES ('John', 'john@example.com')
[SQL] Insère une ligne
IGNOREON DUPLICATE KEY UPDATEDELAYEDLOW_PRIORITYHIGH_PRIORITY
INSERT INTO users (name, email) VALUES ('John', 'john@example.com'), ('Jane', 'jane@example.com')
[SQL] Insère plusieurs lignes
INSERT INTO users SET name='John', email='john@example.com'
[SQL] Insère avec syntaxe SET
INSERT IGNORE INTO users (name, email) VALUES ('John', 'john@example.com')
[SQL] Ignore les erreurs de duplication
INSERT INTO users (name, email) VALUES ('John', 'john@example.com') ON DUPLICATE KEY UPDATE name='John Updated'
[SQL] Met à jour si la clé existe déjà
REPLACE INTO users (id, name, email) VALUES (1, 'John', 'john@example.com')
[SQL] Insère ou remplace si la clé existe
SELECT * FROM users
[SQL] Sélectionne toutes les colonnes
DISTINCTALLHIGH_PRIORITYSTRAIGHT_JOINSQL_SMALL_RESULTSQL_BIG_RESULTSQL_BUFFER_RESULTSQL_NO_CACHESQL_CALC_FOUND_ROWS
SELECT id, name, email FROM users
[SQL] Sélectionne des colonnes spécifiques
AS
SELECT * FROM users WHERE id = 1
[SQL] Filtre avec WHERE
ANDORNOTINBETWEENLIKEREGEXPIS NULLIS NOT NULLEXISTS
SELECT * FROM users WHERE name LIKE 'J%'
[SQL] Recherche avec LIKE
%_
SELECT * FROM users WHERE id IN (1, 2, 3)
[SQL] Filtre avec IN
NOT IN
SELECT * FROM users WHERE created_at BETWEEN '2024-01-01' AND '2024-12-31'
[SQL] Filtre avec BETWEEN
SELECT * FROM users ORDER BY name ASC
[SQL] Trie les résultats
ASCDESCCOLLATEUSING
SELECT * FROM users ORDER BY created_at DESC, name ASC
[SQL] Trie sur plusieurs colonnes
SELECT * FROM users LIMIT 10
[SQL] Limite le nombre de résultats
OFFSET
SELECT * FROM users LIMIT 10 OFFSET 20
[SQL] Pagination (lignes 21 à 30)
SELECT * FROM users LIMIT 20, 10
[SQL] Syntaxe alternative (offset, limit)
SELECT COUNT(*) FROM users
[SQL] Compte le nombre de lignes
SELECT AVG(age), MIN(age), MAX(age), SUM(salary) FROM users
[SQL] Fonctions d'agrégation
GROUP_CONCATSTDSTDDEVVARIANCEBIT_ANDBIT_ORBIT_XOR
SELECT role, COUNT(*) FROM users GROUP BY role
[SQL] Regroupe les résultats
WITH ROLLUP
SELECT role, COUNT(*) FROM users GROUP BY role HAVING COUNT(*) > 5
[SQL] Filtre après GROUP BY
SELECT u.name, o.total FROM users u INNER JOIN orders o ON u.id = o.user_id
[SQL] Jointure interne
LEFT JOINRIGHT JOINCROSS JOINNATURAL JOINSTRAIGHT_JOIN
SELECT u.name, o.total FROM users u LEFT JOIN orders o ON u.id = o.user_id
[SQL] Jointure externe gauche
SELECT * FROM users UNION SELECT * FROM archived_users
[SQL] Union de requêtes
UNION ALLUNION DISTINCT
SELECT * FROM users WHERE id = (SELECT MAX(id) FROM users)
[SQL] Sous-requête
SELECT * FROM users WHERE EXISTS (SELECT 1 FROM orders WHERE orders.user_id = users.id)
[SQL] Sous-requête avec EXISTS
NOT EXISTS
UPDATE users SET email = 'new@example.com' WHERE id = 1
[SQL] Met à jour des lignes
IGNORELOW_PRIORITYORDER BYLIMIT
UPDATE users SET age = age + 1
[SQL] Met à jour avec expression
DELETE FROM users WHERE id = 1
[SQL] Supprime des lignes
IGNORELOW_PRIORITYQUICKORDER BYLIMIT
CREATE INDEX idx_name ON users(name)
[SQL] Crée un index
UNIQUEFULLTEXTSPATIALBTREEHASHCOMMENTVISIBLEINVISIBLE
CREATE UNIQUE INDEX idx_email ON users(email)
[SQL] Crée un index unique
CREATE FULLTEXT INDEX idx_content ON articles(title, body)
[SQL] Crée un index full-text
WITH PARSER
DROP INDEX idx_name ON users
[SQL] Supprime un index
ALGORITHMLOCK
SHOW INDEX FROM users
[SQL] Affiche les index d'une table
WHERE
CREATE VIEW user_emails AS SELECT id, email FROM users
[SQL] Crée une vue
OR REPLACEALGORITHMDEFINERSQL SECURITYWITH CHECK OPTION
DROP VIEW user_emails
[SQL] Supprime une vue
IF EXISTSRESTRICTCASCADE
SHOW CREATE VIEW user_emails
[SQL] Affiche la définition d'une vue
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'
[SQL] Crée un utilisateur
IDENTIFIED WITHPASSWORD EXPIREACCOUNT LOCKACCOUNT UNLOCKDEFAULT ROLEREQUIREWITH
CREATE USER 'newuser'@'%' IDENTIFIED BY 'password'
[SQL] Crée un utilisateur accessible de partout
DROP USER 'newuser'@'localhost'
[SQL] Supprime un utilisateur
IF EXISTS
RENAME USER 'olduser'@'localhost' TO 'newuser'@'localhost'
[SQL] Renomme un utilisateur
SET PASSWORD FOR 'user'@'localhost' = 'newpassword'
[SQL] Change le mot de passe d'un utilisateur
ALTER USER 'user'@'localhost' IDENTIFIED BY 'newpassword'
[SQL] Change le mot de passe (syntaxe moderne)
GRANT ALL PRIVILEGES ON ma_base.* TO 'user'@'localhost'
[SQL] Donne tous les privilèges sur une base
WITH GRANT OPTIONIDENTIFIED BY
GRANT SELECT, INSERT, UPDATE ON ma_base.users TO 'user'@'localhost'
[SQL] Donne des privilèges spécifiques
DELETECREATEDROPALTERINDEXEXECUTETRIGGERREFERENCESCREATE VIEWSHOW VIEWCREATE ROUTINEALTER ROUTINEEVENTFILEPROCESSRELOADREPLICATION CLIENTREPLICATION SLAVESHOW DATABASESSHUTDOWNSUPERUSAGE
REVOKE ALL PRIVILEGES ON ma_base.* FROM 'user'@'localhost'
[SQL] Révoque tous les privilèges
GRANT OPTION FOR
REVOKE INSERT, UPDATE ON ma_base.users FROM 'user'@'localhost'
[SQL] Révoque des privilèges spécifiques
SHOW GRANTS FOR 'user'@'localhost'
[SQL] Affiche les privilèges d'un utilisateur
SHOW GRANTS
[SQL] Affiche les privilèges de l'utilisateur courant
FLUSH PRIVILEGES
[SQL] Recharge les tables de privilèges
BEGIN
[SQL] Démarre une transaction
WORK
START TRANSACTION
[SQL] Démarre une transaction (syntaxe étendue)
READ ONLYREAD WRITEWITH CONSISTENT SNAPSHOT
COMMIT
[SQL] Valide une transaction
WORKAND CHAINRELEASE
ROLLBACK
[SQL] Annule une transaction
WORKAND CHAINRELEASETO SAVEPOINT
SAVEPOINT sp1
[SQL] Crée un point de sauvegarde
ROLLBACK TO SAVEPOINT sp1
[SQL] Revient à un point de sauvegarde
RELEASE SAVEPOINT sp1
[SQL] Supprime un point de sauvegarde
SET autocommit = 0
[SQL] Désactive l'autocommit
LOCK TABLES users READ, orders WRITE
[SQL] Verrouille des tables
READWRITEREAD LOCALLOW_PRIORITY WRITE
UNLOCK TABLES
[SQL] Déverrouille toutes les tables
EXPLAIN SELECT * FROM users WHERE email = 'test@example.com'
[SQL] Analyse le plan d'exécution d'une requête
FORMATANALYZEVERBOSEFOR CONNECTION
EXPLAIN FORMAT=JSON SELECT * FROM users
[SQL] Plan d'exécution au format JSON
FORMAT=TRADITIONALFORMAT=TREE
EXPLAIN ANALYZE SELECT * FROM users
[SQL] Exécute et analyse la requête
SHOW PROCESSLIST
[SQL] Affiche les processus en cours
FULL
KILL 123
[SQL] Tue un processus
CONNECTIONQUERY
SHOW STATUS
[SQL] Affiche les statistiques du serveur
LIKEGLOBALSESSION
SHOW STATUS LIKE '%Threads%'
[SQL] Filtre les statistiques
LIKE
SHOW VARIABLES
[SQL] Affiche les variables de configuration
LIKEGLOBALSESSION
SHOW VARIABLES LIKE 'max_connections'
[SQL] Affiche une variable spécifique
LIKE
SET GLOBAL max_connections = 200
[SQL] Modifie une variable globale
GLOBALSESSIONPERSISTPERSIST_ONLY
SHOW ENGINE INNODB STATUS
[SQL] Affiche le statut détaillé d'InnoDB
SHOW WARNINGS
[SQL] Affiche les avertissements de la dernière commande
LIMIT
SHOW ERRORS
[SQL] Affiche les erreurs de la dernière commande
LIMIT
SHOW BINARY LOGS
[SQL] Liste les logs binaires
SHOW MASTER STATUS
[SQL] Affiche le statut du master
SHOW SLAVE STATUS
[SQL] Affiche le statut du slave (réplication)
FOR CHANNEL
SHOW TRIGGERS
[SQL] Liste les triggers
FROMLIKEWHERE
CREATE TRIGGER before_user_insert BEFORE INSERT ON users FOR EACH ROW SET NEW.created_at = NOW()
[SQL] Crée un trigger
BEFOREAFTERINSERTUPDATEDELETEFOLLOWSPRECEDES
DROP TRIGGER before_user_insert
[SQL] Supprime un trigger
IF EXISTS
SHOW PROCEDURE STATUS
[SQL] Liste les procédures stockées
LIKEWHERE
SHOW FUNCTION STATUS
[SQL] Liste les fonctions
LIKEWHERE
DELIMITER //
[SQL] Change le délimiteur pour les procédures
CREATE PROCEDURE get_users() BEGIN SELECT * FROM users; END //
[SQL] Crée une procédure stockée
CALL get_users()
[SQL] Appelle une procédure stockée
DROP PROCEDURE get_users
[SQL] Supprime une procédure
IF EXISTS
CREATE FUNCTION calc_tax(price DECIMAL) RETURNS DECIMAL DETERMINISTIC RETURN price * 0.2
[SQL] Crée une fonction
DETERMINISTICNOT DETERMINISTICREADS SQL DATAMODIFIES SQL DATANO SQLCONTAINS SQL
DROP FUNCTION calc_tax
[SQL] Supprime une fonction
IF EXISTS
SHOW EVENTS
[SQL] Liste les événements planifiés
FROMLIKEWHERE
CREATE EVENT cleanup ON SCHEDULE EVERY 1 DAY DO DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY
[SQL] Crée un événement planifié
ON SCHEDULEON COMPLETIONENABLEDISABLECOMMENT
ALTER EVENT cleanup DISABLE
[SQL] Désactive un événement
ENABLEDISABLEON SCHEDULERENAME TOCOMMENT
DROP EVENT cleanup
[SQL] Supprime un événement
IF EXISTS
SHOW CREATE EVENT cleanup
[SQL] Affiche la définition d'un événement
SHOW TABLE STATUS
[SQL] Affiche des informations détaillées sur les tables
FROMLIKEWHERE
OPTIMIZE TABLE users
[SQL] Optimise une table
NO_WRITE_TO_BINLOGLOCAL
ANALYZE TABLE users
[SQL] Analyse et met à jour les statistiques d'index
NO_WRITE_TO_BINLOGLOCAL
CHECK TABLE users
[SQL] Vérifie une table pour les erreurs
FOR UPGRADEQUICKFASTMEDIUMEXTENDEDCHANGED
REPAIR TABLE users
[SQL] Répare une table corrompue
QUICKEXTENDEDUSE_FRM
CHECKSUM TABLE users
[SQL] Calcule la somme de contrôle d'une table
QUICKEXTENDED
BACKUP TABLE users TO '/backup/'
[SQL] Sauvegarde une table (déprécié, utiliser mysqldump)
RESTORE TABLE users FROM '/backup/'
[SQL] Restaure une table (déprécié)
LOAD DATA INFILE '/tmp/users.csv' INTO TABLE users FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' IGNORE 1 ROWS
[SQL] Importe des données depuis un fichier CSV
LOCALREPLACEIGNOREFIELDS TERMINATED BYENCLOSED BYESCAPED BYLINES TERMINATED BYSTARTING BYIGNORE ... LINESSET
LOAD DATA LOCAL INFILE 'users.csv' INTO TABLE users
[SQL] Importe un fichier local
LOCAL
SELECT ... INTO OUTFILE '/tmp/users.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'
[SQL] Exporte les résultats vers un fichier CSV
FIELDS TERMINATED BYENCLOSED BYESCAPED BYLINES TERMINATED BY
SELECT ... INTO DUMPFILE '/tmp/dump.sql'
[SQL] Écrit une seule ligne dans un fichier
SELECT ... INTO @var1, @var2
[SQL] Stocke les résultats dans des variables
SET @var = 123
[SQL] Définit une variable utilisateur
SELECT @var
[SQL] Affiche une variable utilisateur
PREPARE stmt FROM 'SELECT * FROM users WHERE id = ?'
[SQL] Prépare une requête
SET @id = 1
[SQL] Définit une variable pour requête préparée
EXECUTE stmt USING @id
[SQL] Exécute une requête préparée
DEALLOCATE PREPARE stmt
[SQL] Libère une requête préparée
SOURCE /chemin/script.sql
[SQL] Exécute un fichier SQL depuis le client mysql
\. /chemin/script.sql
[SQL] Alias de SOURCE
STATUS
[SQL] Affiche le statut de la connexion
\s
[SQL] Alias de STATUS
QUIT
[SQL] Quitte le client mysql
\q
[SQL] Alias de QUIT
EXIT
[SQL] Quitte le client mysql
CLEAR
[SQL] Efface l'écran (commande système)
\c
[SQL] Efface la requête en cours
\G
[SQL] Affiche les résultats verticalement
SELECT * FROM users \G
[SQL] Exemple d'affichage vertical
\T output.txt
[SQL] Redirige la sortie vers un fichier
\t
[SQL] Arrête la redirection de sortie
\P less
[SQL] Utilise un pager pour les résultats
\n
[SQL] Désactive le pager
\e
[SQL] Ouvre l'éditeur pour écrire une requête
\p
[SQL] Affiche la requête en cours
\r
[SQL] Change le statut de la connexion (reconnect)
\u ma_base
[SQL] Change de base de données
\C utf8mb4
[SQL] Change le jeu de caractères
\d
[SQL] Change le délimiteur
\w
[SQL] Affiche les avertissements après chaque requête
\W
[SQL] Désactive l'affichage des avertissements
NOW()
[SQL] Fonction : date et heure courante
CURDATE()
[SQL] Fonction : date courante
CURTIME()
[SQL] Fonction : heure courante
DATE_ADD(NOW(), INTERVAL 7 DAY)
[SQL] Fonction : ajoute un intervalle
INTERVALDAYHOURMINUTESECONDMONTHYEAR
DATEDIFF('2024-12-31', '2024-01-01')
[SQL] Fonction : différence en jours
DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s')
[SQL] Fonction : formate une date
%Y%m%d%H%i%s%W%M
CONCAT(first_name, ' ', last_name)
[SQL] Fonction : concatène des chaînes
CONCAT_WS
SUBSTRING(name, 1, 10)
[SQL] Fonction : extrait une sous-chaîne
LEFTRIGHTMID
LENGTH(name)
[SQL] Fonction : longueur en octets
CHAR_LENGTHCHARACTER_LENGTH
UPPER(name)
[SQL] Fonction : convertit en majuscules
LOWERLCASEUCASE
TRIM(name)
[SQL] Fonction : supprime les espaces
LTRIMRTRIMBOTHLEADINGTRAILING
REPLACE(text, 'old', 'new')
[SQL] Fonction : remplace du texte
IFNULL(colonne, 'default')
[SQL] Fonction : valeur par défaut si NULL
COALESCENULLIFISNULL