FAQ MySQLConsultez toutes les FAQ
Nombre d'auteurs : 15, nombre de questions : 155, dernière mise à jour : 22 avril 2014 Ajouter une question
Cette FAQ a été conçue à partir des questions fréquemment posées sur le forum MySQL de Developpez.com. Elle ne prétend pas à être exhaustive et peut contenir des erreurs occasionnelles. Si vous relevez une coquille, n'hésitez pas à nous le faire savoir.
Pour participer à cette FAQ, veuillez envoyer vos réponses sur le forum.
- Comment obtenir des renseignements sur une table (colonnes, index, contraintes...) ?
- Comment avoir la description d'une colonne (nom, taille, valeurs possibles d'un enum...) ?
- Comment connaitre le nombre de tables dans ma base ?
- Comment visualiser les tables d'une base de données ?
- Comment vérifier l'existence d'une table dans une base ?
- Comment spécifier qu'un objet (procédure, fonction, table, trigger, vue) doit être remplacé si il existe déjà ?
- Comment connaître le nombre de lignes dans une table ?
- Comment renommer une table ?
- Comment ajouter, supprimer ou modifier une colonne dans une table ?
- Comment ajouter une contrainte à une table ?
- Comment paramétrer la longueur des champs de type BLOB ou LONGTEXT en créant une table ?
- Comment consulter l'espace pris par une table ?
- Comment créer une nouvelle table dans une base de données?
- Grâce à la commande DESC <table> qui renvoie un enregistrement pour chaque champ avec son type, si NULL est autorisé, sa valeur par défaut...
- Avec SHOW CREATE TABLE <table> qui renvoie un seul enregistrement contenant la requête complète de création de la table.
- Pour une liste des index de la table, on peut utiliser SHOW INDEX FROM <table>.
- A partir de MySQL 5.0, en se référant au dictionnaire de données INFORMATION_SCHEMA, plus conforme au standard (reportez-vous à ce tutoriel).
Pour afficher des informations de description d'une colonne, vous pouvez utiliser la commande :
Code sql : | Sélectionner tout |
SHOW COLUMNS FROM nom_table LIKE 'nom_colonne';
Code sql : | Sélectionner tout |
1 2 3 | SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'nom_table' AND COLUMN_NAME = 'nom_colonne' |
MySQL >= 5.0
Code sql : | Sélectionner tout |
1 2 | SELECT count(table_name) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'nom_de_la_base_de_donnee' |
Code sql : | Sélectionner tout |
SHOW TABLES FROM nom_de_la_base_de_donnee
- PHP librairie standard : mysql_num_rows (PHP 3, PHP 4, PHP 5) -- Retourne le nombre de lignes d'un résultat MySQL
- PHP librairie améliorée : mysqli_num_rows (PHP 5) -- Retourne le nombre de lignes dans un résultat
- PHP librairie PDO : PDOStatement::rowCount (PHP 5) PDOStatement::rowCount -- Retourne le nombre de lignes affectées par le dernier appel à la fonction PDOStatement::execute()
- API MySQL en C : mysql_stmt_num_rows() -- Retourne le nombre de lignes dans le jeu de résultat. my_ulonglong mysql_stmt_num_rows(MYSQL_STMT *stmt)
Pour afficher toutes les tables non temporaires d'une base de données :
Code sql : | Sélectionner tout |
SHOW TABLE FROM nom_base
Code sql : | Sélectionner tout |
1 2 3 4 | SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'nom_base' AND table_type = 'BASE TABLE' |
Pour vérifier l'existence d'une table dans une base, tapez la commande :
Code sql : | Sélectionner tout |
SHOW TABLES FROM nom_base LIKE 'nom_table';
Code sql : | Sélectionner tout |
1 2 3 4 | SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'nom_base' AND TABLE_NAME = 'nom_table'; |
En utilisant la clause IF EXISTS.
Voici un exemple avec une fonction :
Code sql : | Sélectionner tout |
1 2 3 4 5 | DROP FUNCTION IF EXISTS `nomFonction`; CREATE FUNCTION `nomFonction`(...) RETURNS INT BEGIN ... END; |
Pour connaître le nombre de lignes contenues par une table, vous pouvez utiliser la requête suivante :
Code sql : | Sélectionner tout |
SELECT COUNT(*) FROM ma_table
Avec la commande
Code sql : | Sélectionner tout |
ALTER TABLE latable RENAME AS nouveau_nom
Code sql : | Sélectionner tout |
RENAME TABLE latable TO nouveau_nom
Code sql : | Sélectionner tout |
1 2 | ALTER TABLE latable ADD / MODIFY / DROP / RENAME lacolonne [nouvelle définition de la colonne] |
- Contrainte de colonne : voir syntaxe précédente, avec un MODIFY précisant la nouvelle contrainte sur le champ.
- Contrainte de table : idem, avec un ALTER TABLE ... ADD CONSTRAINT ...
Les champs suivants: TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT contrairement à CHAR et VARCHAR ne doivent pas être utilisés en spécifiant une taille.
Considérez pour simplifier qu'ils sont à taille variable, avec une taille maximum qui dépend de votre version et implémentation de MySQL.
Grâce à la commande
Code sql : | Sélectionner tout |
SHOW TABLE STATUS [FROM labase] LIKE 'latable'
Pour les versions MySQL >= 5.0.2, vous pouvez également utiliser une requête sur le catalogue de MySQL :
Code sql : | Sélectionner tout |
1 2 3 | SELECT table_name, data_length FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 'latable' |
En utilisant create table sur la base de données dans laquelle créer la table.
Attention de bien avoir les droits nécessaires à la création de table sur la base de données.
Exemple:
Code sql : | Sélectionner tout |
CREATE TABLE nom_table (champs1 int, champs2 varchar (255), champs3 datetime);
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.